Installing PL/I application programs

Figure 15 illustrates the flow of control in the cataloged procedures for PL/I programs.

For more information about preparing PL/I programs, see the PL/I Programming Guide.

Sample JCL to install PL/I application programs

You can use the job control statements shown in Figure 18 to process PL/I application programs with a separate translator.

In the procedure name, the value of "x" depends on whether it is a CICS® application program or an EXCI batch program. For the names of the CICS-supplied procedures, see Table 6.

Figure 18. Sample job control statements to call the DFHYxTPL procedures
//jobname    JOB  accounting info,name,MSGLEVEL=1
//           EXEC PROC=DFHYxTPL                                    1 
//TRN.SYSIN  DD      *                                             2 
*PROCESS    XOPTS(translator options...)PL/I compiler options...;  3 
               .
             PL/I source statements                                4 
               .
/*
//LKED.SYSIN DD      *                                             5 
               NAME    anyname(R)
/*
//
where anyname is your load module name

Notes for installing a PL/I program:

 1  The PL/I COUNT runtime option is not supported by Language Environment®. The REPORT option is replaced by the RPTSTG and RPTUPTS Language Environment options. See the z/OS Language Environment Migration Guide.

 2  If you have no input for the translator, you can specify DD DUMMY instead of DD *. However, if you specify DD DUMMY also code a suitable DCB operand. (The translator does not supply all the data control block information for the SYSIN data set.)

 3  Translator and compiler options:

For information about the translator options you can include on the XOPTS statement, see Defining translator options.

Ignore the message from the PL/I compiler: "IEL0548I PARAMETER TO MAIN PROCEDURE NOT VARYING CHARACTER STRING".

Warning messages may appear from the PL/I compiler stating that arguments and parameters do not match for calls to procedure DFHxxxx. These messages indicate that arguments specified in operands to CICS commands may not have the correct data type. Carefully check all fields mentioned in these messages, especially receiver fields.

 4  If you include the CALL PLIDUMP statement in an application program, output goes to the CESE transient data destination. The CICS supplied resource definition group, in the CSD, DFHDCTG, contains an entry for CESE.

 5  Link-edit considerations:

You can ignore weak external references unresolved by the link-edit.

If you are installing a program into either of the read-only DSAs, see Running application programs in the RDSAs for more details.

If you are installing a program that is to be used from the LPA, add the RENT and REFR options to the LNKPARM parameter on the call to the DFHYxTPL procedure. (See Running applications in the link pack area for more information.)

PL/I procedure with an integrated translator

To use the new procedure DFHZITPL to invoke the integrated translator, you can use the following sample JCL:

Figure 19. Sample job control statements to use the DFHZITPL procedure
 //jobname    JOB  accounting info,name,MSGLEVEL=1
 //           EXEC DFHZITPL,PROGLIB=dsnname                    1 
 //PLI.SYSIN  DD *                        
    .                                       
    . PLI source statements                   
    .                                       
 /*                                         
 //LKED.SYSIN DD *                          
             NAME anyname(R)                                                  
 /*                                         
 //
                                           
where anyname is your load module name.

Notes for installing PLI programs with an integrated translator

 1  Translator options:

The DFHZITPL procedure includes the following compiler options to indicate that you want the compiler to invoke the translator:

PLIPARM=('SOURCE,OPTIONS,SYSTEM(CICS),PP(CICS)')

Note:
In this procedure, the SYSLMOD DD statement in the LKED step must refer to a PDSE (not a PDS as for the older PL/I compilers).
[[ Contents Previous Page | Next Page Index ]]