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)

(1) T/F execution conditions

(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)

Sets True/False Status Indicator

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.

Resident?

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.

End?

The END? parameter is currently ignored.

Fail

See the FAIL (or FT) Parameter section for a complete discussion of this parameter.

Using the Statement

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.

Passing Values

The CALL statement passes the current PASS list, if any. Refer to the PASS Lists section for details.

Related Statements

PASS, RUN

Example

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.