Application programming for Pascal
Application programs in Pascal use the following format, parameters, and DL/I calls to communicate with the IMS™ Transaction Manager.
Format
(1) >>--------------------------------------------------------------> >--+-PASTDLI--(--| A |--+----------------------------+-+--)-----> | +-,--VAR--i/o_pcb--+-------+-+ | | | +-| B |-+ | | | | '-| C |-' | | | '-,--VAR--alt_pcb--+-------+-' | | +-| B |-+ | | '-| D |-' | '-AIBTDLI--(--| A |--,--VAR--aib--,--+-------+------' +-| B |-+ +-| C |-+ '-| D |-' >--;----------------------------------------------------------->< A |--+---------------------+--CONST--function---------------------| '-CONST--parmcount--,-' B |--,--VAR--i/o_area---------------------------------------------> >--+-------------------------------------------------+----------| +-,--VAR--mod_name--------------------------------+ +-,--CONST--token---------------------------------+ '-,--VAR--options_list--+-----------------------+-' '-,--VAR--feedback_area-' C |--,--VAR--i/o_area_length--,--VAR--i/o_area--------------------> >--+----------------------------------+-------------------------| | .------------------------------. | | V | | '---,--VAR--area_length--,--area-+-' D |--,--VAR--destination_name--+-------------------------------------------------+--| '-,--VAR--options_list--+-----------------------+-' '-,--VAR--feedback_area-'
Notes:
- For AIBTDLI, parmcount is required for applications.
Parameters
- parmcount
- specifies the address of a fixed-binary (31) variable in user-defined storage that contains the number of parameters in the parameter list that follows parmcount.
- function
- Specifies the name of a character (4) variable, left-justified, in user-defined storage, which contains the call function to be used. The call function must be padded with blanks. 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 database management batch (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 name of a pointer variable that contains the address of the I/O PCB defined in the call procedure statement.
- aib
- Specifies the name of a pointer variable that contains the address of the structure that defines the application interface block (AIB) in user-defined storage.
- i/o area
- Specifies the name of a pointer variable to a major structure, array, or character string that defines the I/O area in user-defined storage to be 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.
- area length
- Specifies the name of a fixed binary (31) variable in user-defined storage 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 a pointer variable that contains the address of the structure that defines the area in user-defined storage to be checkpointed. Up to seven area length/area pairs can be specified.
- token
- Specifies the name of a character (4) variable in user-defined storage that contains a user token.
- options list
- Specifies the name of a pointer variable that contains the address of the structure that defines the user-defined storage that contains processing options used with the call.
- feedback area
- Specifies the name of the pointer variable that contains the address of the structure that defines the user-defined storage that receives information about options list processing errors.
- mod name
- Specifies the name of a character (8) variable in user-defined storage that contains the user-defined MOD name used with the call.
- destination name
- Specifies the name of a character (8) variable in user-defined storage that contains the name of the logical terminal or transaction code to which messages resulting from the call are sent.
Example DL/I call formats
DL/I
AIBTDLI interface:
AIBTDLI(CONST function,
VAR aib,
VAR I/O area);
DL/I language-specific
interface:
PASTDLI(CONST function,
area VAR I/O PCB
VAR I/O area);