Application programming for PL/I

Application programs in PL/I use the following format, parameters, and DL/I calls to communicate with the IMS™ Transaction Manager.

Format

Read syntax diagramSkip visual syntax diagram
>>-CALL--------------------------------------------------------->

>--+-PLITDLI--(--parmcount--,--function--+-----------------------+-+-->
   |                                     +-,--i/o_pcb--+-------+-+ |   
   |                                     |             +-| A |-+ | |   
   |                                     |             '-| B |-' | |   
   |                                     '-,--alt pcb--+-------+-' |   
   |                                                   +-| A |-+   |   
   |                                                   '-| C |-'   |   
   +-AIBTDLI--(--parmcount--,--function--,--aib--+-------+---------+   
   |                                             +-| A |-+         |   
   |                                             +-| B |-+         |   
   |                                             '-| C |-'         |   
   '-CEETDLI--(--parmcount--,--function--+-----------------------+-'   
                                         +-,--i/o_pcb--+-------+-+     
                                         |             +-| A |-+ |     
                                         |             '-| B |-' |     
                                         +-,--alt_pcb--+-------+-+     
                                         |             +-| A |-+ |     
                                         |             '-| C |-' |     
                                         '-,--aib--+-------+-----'     
                                                   +-| A |-+           
                                                   +-| B |-+           
                                                   '-| C |-'           

>--)--;--------------------------------------------------------><

A

|--,--i/o_area--+---------------------------------------+-------|
                +-,--mod_name---------------------------+   
                +-,--token------------------------------+   
                '-,--options_list--+------------------+-'   
                                   '-,--feedback_area-'     

B

|--,--i/o_area_length--,--i/o_area------------------------------>

>--+-----------------------------+------------------------------|
   | .-------------------------. |   
   | V                         | |   
   '---,--area_length--,--area-+-'   

C

|--,--destination_name--+---------------------------------------+--|
                        '-,--options_list--+------------------+-'   
                                           '-,--feedback_area-'     

Parameters

parmcount
Specifies the name of a fixed-binary (31-byte) variable that contains the number of arguments that follow parmcount.
function
Specifies the name of a character (4-byte) variable, left justified, blank padded character string that contains the call function to be used. For example, (GUbb) is a call function.
i/o pcb
Specifies the address of the program communication block (I/O PCB). The I/O PCB address is the first address passed on entry to the application program in the PCB list, given the following circumstances:
  • A program executing in DLI or DBB regions where CMPAT=YES is coded on the PSB.
  • Any program executing in batch message processing program (BMP), message processing program (MPP), or IMS Fast Path (IFP) regions regardless of the CMPAT= value.
alternate pcb
Specifies the structure associated with the I/O PCB or alternate PCB to be used for the call. This structure is based on a PCB address that must be one of the PCB addresses passed on entry to the application program.
aib
Specifies the name of the structure that defines the application interface block (AIB).
i/o area
Specifies the name of the I/O area used for the call. The I/O area must be large enough to contain the returned data.
i/o area length
Specifies the name of a fixed binary (31) variable in user-defined storage that contains the I/O area length (specified in binary).
area length
Specifies the name of a fixed binary (31) variable that contains the length (specified in binary) of the area immediately following it in the parameter list. Up to seven area length/area pairs can be specified.
area
Specifies the name of the area to be checkpointed. Up to seven area length/area pairs can be specified.
token
Specifies the name of a character (4) variable that contains a user token.
options list
Specifies the name of a structure that contains processing options used with the call.
feedback area
Specifies the name of a structure that receives information about options list processing errors.
mod name
Specifies the name of a character (8) variable character string containing the user-defined MOD name used with the call.
destination name
Specifies the name of a character (8) variable character string containing the logical terminal or transaction code to which messages resulting from the call are sent.

Example DL/I call formats

DL/I CEETDLI interface:
 %INCLUDE CEEIBMAW;
 CALL CEETDLI (function, i/o pcb, i/o area);
DL/I AIBTDLI interface:
 CALL AIBTDLI (parmcount, function, aib, i/o area);
DL/I language-specific interface:
 CALL PLITDLI (parmcount, function, i/o pcb, i/o area);