Programming in PL/I

Top  Previous  Next

XCICS supports PL/I programs that have been compiled using Liant OpenPL/I. Compiled objects must be linked in a shared library.

If OPTIONS(MAIN) is specified in an application program, that program can be the first program of a transaction, or control can be passed to it by means of a LINK or XCTL command.

In application programs where OPTIONS(MAIN) is not specified, it cannot be the first program in a transaction, nor can it have control passed to it by an LINK or XCTL command, but it can be link-edited to a main program.

PL/I programming restrictions

The following restrictions apply to a PL/I program that is to be used as a CICS application program.

You cannot use the multitasking built-in functions.

You cannot use the multitasking options.

You should not use the PL/I statements:

EXIT
STOP

You are provided with EXEC CICS commands for the storage and retrieval of data, and for communication with terminals. (However, you can use CLOSE, PUT, and OPEN, for SYSPRINT.)

Do not define variables or structures with variable names that are the same as variable names generated by the translator. These begin with DFH. Care must be taken with the LIKE keyword to avoid implicitly generating such variable names.

All PROCEDURE statements must be in upper case, with the exception of the PROCEDURE name, which may be in lower case.

If a CICS command uses the SUBSTR built-in function in defining a data value, it should include a LENGTH option to specify the data length, unless the translator option NOLENGTH is specified.