Using CICS functions from EGL programs

You can use CICS® functions in EGL programs.
The following table lists the CICS functions that you can use in EGL programs. The table also summarizes how to use these functions.
Table 1. CICS functions and how to represent them in EGL
CICS Function EGL Function Comments
Type of Program
Conversational segmented program property = NO  
Pseudoconversational segmented program property = YES The workDBType build descriptor option specifies whether to use a main (MAIN) or auxiliary (AUX) temporary storage queue for saving status across the terminal I/O.
Pseudoconversational, different transaction names Segmented converse with sysVar.transactionID set to the next transaction name The workDBType build descriptor option specifies whether to use a main (MAIN) or auxiliary (AUX) temporary storage queue for saving status across the terminal I/O.
Terminal and Printer Support
Communication with the terminal converse for input/output, display for output, or a show statement with a form for output and input specified in the inputForm property.  
System printer support print statement; transient file type for printer file Associate RDO TDQUEUE for transient data queue with system printer
Terminal printer support print statement; transient file type for printer file Associate RDO TDQUEUE for transient data queue with terminal printer and trigger FZETPRT transaction to write to printer.
JES SPOOL file for printer output for z/OS® CICS print statement; spool file type for printer file In an EGL resource association entry, the systemName value identifies these parameters: node, spool writer or user identifier, and class.
VSE/POWER SPOOL file for printer support for VSE CICS print statement; spool file type for printer file on VSE environment In an EGL resource association entry, the systemName value identifies these parameters of the VSE/POWER LST queue member:
  • jobname
  • queue
  • class
  • disp
  • form
  • node
  • userid
  • parm
For details, see Using spool files in VSE CICS.
Dynamic printer support converseVar. printerAssociation set to alter print destination for print statement  
Database and File Support
DL/I database definition and access PSBRecord definition, DL/I segment definition, and normal I/O statements as provided for DL/I database access. EGL creates default SSAs and sets the default PCB number.
PSB Scheduling dliVar.dliPsbName identifies the PSB to be scheduled. Scheduling is done automatically prior to the first DL/I operation in the unit of work.
PSB Termination Done automatically on sysLib.commit(), sysLib.rollback(), or end of transaction or segment. A CICS SYNCPOINT occurs on a transfer to program statement under the following conditions:
  • If transfer to a non-EGL program occurs and a PSB is scheduled
  • If synchOnPgmTransfer = "YES" and a PSB is scheduled
  • If synchOnPgmTransfer = "NO" for the transferring program, and the transferring program had scheduled a PSB and different PSBRecord names were specified for the two programs.
Program restart following abnormal termination due to deadlock in queueing on database records dliVar.cicsRestart Variable indicating whether the program was restarted
DB2® database definition and access SQLRecord definition and normal I/O statements as provided for relational database access.  
VSAM file support vsam file type for serial, relative, and indexed files RDO FILE entry required for file; systemName in EGL resource association entry matches FILE entry name
Transient data queue support fileType property set to transient for serial files RDO TDQUEUE entry required for file; systemName in EGL resource association entry matches TDQUEUE entry name
Function shipping for VSAM data sets and transient data queues remoteFile type for the fileLink element in the linkage options entry for the file  
Specifying SYSID when function shipping. remoteFile and locationSpec = PROGRAMCONTROLLED for the fileLink element in the linkage options entry for the file; sysLib.remoteSystemID to dynamically set the remote system name  
Main temporary storage queue support tempmain file type for serial or relative file Records have extra control byte in byte 1
Auxiliary temporary storage queue support tempaux file type for serial or relative file Records have extra control byte in byte 1
JES SPOOL file support for z/OS CICS spool file type for serial file In an EGL resource association entry, the systemName value identifies these parameters: node (output only), spool writer or user identifier, and class.
VSE/POWER SPOOL file for VSE CICS spool file type for serial file In an EGL resource association entry, the systemName value identifies the following parameters that are related to handling VSE/POWER SPOOL queue members.

For input requests, for CICS only, these parameters are identified:

  • userid
  • class

For output requests, for BATCH or CICS, these parameters are identified:

  • jobname
  • queue, for RDR, PUN, and LST
  • class
  • disp
  • form
  • node
  • userid
  • parm, which applies to LST queues only
    • For CICS, use outdescr(ptr)
    • For BATCH, use fcb or copies
For details, see Using spool files in VSE CICS.
Program Communications
START transaction A transfer to program statement or call to vgLib.startTransaction()  
RETURN TRANSID A show statement or a segmented converse statement  
Function shipping for START transaction vgLib.startTransaction() with asynchLink element, type=remoteAsynch in linkage options entry for the record specified in vgLib.startTransaction()  
Specifying SYSID when function shipping asynchLink element, type = remoteAsynch and locationSpec = PROGRAMCONTROLLED in linkage options entry; sysLib.remoteSystemID to dynamically set the remote system name  
XCTL to another EGL program A transfer to transaction statement If a record is specified, it is transferred in the COMMAREA.
XCTL to a non-EGL program A transfer to transaction statement with externallyDefined option If a record is specified, it is transferred in the COMMAREA.
LINK to program with data in COMMAREA call statement; callLink element, type = localCall, linkType = "CICSLINK", and parmForm = "COMMDATA" for linkage options entry for called program  
Distributed program LINK to program with data in COMMAREA call statement; callLink element, type = remoteCall, linkType = "CICSLINK", and parmForm = "COMMDATA" for linkage options entry for called program  
Specifying SYSID on distributed program LINK callLink element, type=remoteCall and serverID = "serverName" on linkage options entry for called program  
Specifying TRANSID on distributed program LINK callLink element, type=remoteCall and serverID = "transactionName" on linkage options entry for called program  
Specifying SYNCONRETURN on distributed program LINK callLink element, type=remoteCall and luwControl ="SERVER" on linkage options entry for called program  
Miscellaneous
SYNCPOINT sysLib.commit()  
SYNCPOINT ROLLBACK sysLib.rollback()  
JOURNAL call sysLib.audit()  

Feedback