When you are developing programs for execution under CICS, all the EXEC CICS commands must be translated in one of two ways:
To use the CICS preprocessor, you must also specify the PP(CICS) compile-time option.
Unless you specify CICS as one of the suboptions of the PP(CICS) option, the compiler will flag any EXEC CICS statements in the source. Similarly, it will flag any EXEC CPSM or EXEC DLI statements if you do not specify CPSM or DLI respectively as a suboption of the PP(CICS) option.
If your CICS program is a MAIN procedure, you must also compile it with the SYSTEM(CICS) or the SYSTEM(MVS) option. If compiled with SYSTEM(MVS), the PTFs for runtime APAR PQ91318 must be applied. NOEXECOPS is implied with this option and all parameters passed to the MAIN procedure must be POINTERs. For a description of the SYSTEM compile-time option, see SYSTEM.
If your want your CICS program to be reentrant and if your program uses FILEs or CONTROLLED variables, then you must compile it with the NOWRITABLE as well.
If your CICS program includes any files or uses any macros that contain EXEC CICS statements, you must also run the MACRO preprocessor before your code is translated (in either of the ways described above). If you are using the CICS preprocessor, you can specify this with one PP option as illustrated in the following example:
pp (macro(...) cics(...) )
Finally, in order to use the CICS preprocessor, you must have the CICS SDFHLOAD dataset as part of the STEPLIB DD for the PL/I compiler.