CALL
You use the CALL statement to invoke a program function or routine written in any non-APPX programming language (such as COBOL, “C,” or assembler). Some systems require non-APPX code to be linked to APPX. You can pass values or parameters to the called routine, and share (receive back) them in the calling process. You do this by including one or more PASS statements before specifying the CALL. The sequence of PASS statements is very important, and controls which values are used and passed between the calling process and the called routine. The returned value from CALL functions is put into a four-byte binary predefined field called RETURN CODE.
••••• CALL
••• •••••••••••••••••••••• ••• RESIDENT? • END? • FAIL
•
(1)
(2) (3) (4) (5) (6)
(7)
(5) Resident? (Y/N) | |
(2) Application ID |
(6) End? (Y/N) |
(3) Program name (field/constant) |
(7) Fail action (0=nothing, 1=warning, |
(4) Occurrence (constant/index) |
2=error, 3=cancel) |
If the called routine cannot be invoked, the next true/false status indicator is set to false. If the invocation completes successfully, the next true/false indicator is set to true. If the routine cannot be invoked successfully, the FAIL parameter determines what additional action to take.
On machines that run dynamic loading, a Y in this field determines whether or not the non-APPX program will stay loaded for future use.
The END? parameter is currently ignored.
See the FAIL (or FT) Parameter section for a complete discussion of this parameter.
You specify a program to be called by supplying the program as a constant or by supplying an application ID and a field name containing the program name. The format for the program/routine name is system-specific. See the APPX installation guide for your type of system for information on how to structure this field.
The CALL statement passes the current PASS list, if any. Refer to the PASS Lists section for details.
The following group of statements calls a routine (as named in TAR field INT CALCULATOR) which is used to compute the total interest on a loan. You need to pass the principal, annual rate of interest, and term of the loan in months.
PASS TAR
RATE PRINCIPAL FIELD SHARE?
N
PASS TAR
RATE ANNL INT FIELD SHARE?
N
PASS TAR
RATE TERM MONTHS FIELD SHARE?
N
PASS TAR
RATE TOTAL INTEREST FIELD SHARE?
Y
CALL TAR
INT CALCULATOR RESIDENT?
Y END? N FAIL 3
Notice that the SHARE? specification is Y (yes) for the total interest field, so that the calling process can receive the computed value back.