You can use IMS™ functions in EGL programs.
| IMS Function | EGL Function | Comments |
|---|---|---|
| Type of program | ||
| IMS conversational |
|
workDBType build descriptor option specifies whether to use DL/I or DB2® to save data across the converse statement |
| IMS nonconversational or message-driven fast path (option 1) |
|
|
| IMS nonconversational or message-driven fast path (option 2) |
|
|
| IMS nonconversational or message-driven fast path (option 3, no text forms) | Main basic program that loops to do get next for a serial record that is associated with the I/O PCB and generated for IMS/VS | imsFastPath build descriptor option set to YES restricts statements and EGL error processing to what is permitted in an IMS Fast Path program |
| Transaction-oriented BMP | Main basic program that loops to do get next for a serial record that is associated with the I/O PCB and generated for IMS BMP | |
| Batch-oriented BMP | Main basic program that is associated with the I/O PCB and generated for IMS BMP, but does not use a serial record | |
| DL/I Batch | Main basic program that uses DL/I and is generated for z/OS® Batch | |
| Normal z/OS Batch | Main basic program that uses DL/I and is generated for z/OS Batch | |
| Terminal and printer support | ||
| MFS Source | FormGroup with text and print forms | EGL generates MFS source for the FormGroup |
| Communication with the terminal |
|
|
| Print output to terminal printer |
|
|
| Dynamic printer support | set converseVar.printerAssociation to change printer association dynamically at runtime | |
| /FORMAT modname formName |
|
|
| Physical and logical paging | Not supported | EGL forms do not support the definition of physical or logical pages |
| SDF II to produce the MFS source | Not supported | EGL generation requires knowledge of the edit order and special control fields |
| SQL database support | ||
| DB2 database definition and access | SQLRecord definition and SQL I/O statements | EGL creates default SQL statements. Modify the default using the #sql directive. |
| DL/I database support | ||
| PSB to use | psb property of the @dli complex property identifies the program variable name for the EGL PSBRecord | EGL PSB is a subset of information in the IMS PSB |
| DL/I database definition and access | PSBRecord definition, DLISegment definition, and DL/I I/O statements. The usingPCB keyword on I/O statement identifies which PCB to use | EGL creates default SSAs. Modify the default using the #dli directive |
| DL/I fast path database definition and access |
|
EGL permits the 2-character command codes if you are using the #dli directive |
| IMS message queue |
|
Use a get next statement in an EGL basic program for a serial record that is associated with the I/O PCB. The record might have been inserted by an add statement or vgLib.startTransaction() function in a previous program. Not supported for z/OS Batch. |
| GSAM file |
|
Supported only for IMS BMP or z/OS Batch |
| File Support | ||
| Sequential file support | Serial record with resource association for the fileName set to seq or seqrs |
|
| VSAM file support | Serial, indexed, or relative records with resource association for the fileName set to vsam or vsamrs |
|
| Dynamically change file name at runtime | recordName.resourceAssociation | Requires the use of seqrs or vsamrs |
| COBOL DISPLAY statement |
|
The output destination is the DDNAME that you specify in the COBOL compiler option OUTDD. By default, the output is written to the DDNAME SYSOUT in the job that starts the message region for IMS/VS or the JCL that runs the IMS BMP or z/OS Batch job. |
| IMS message switch | ||
| Immediate program-to-program message switch |
|
|
| Deferred program-to-program message switch (Method 1) |
|
|
| Deferred program-to-program message switch (Method 2) | The program uses a converse statement and sets sysVar.transactionID to a new transaction code before the converse statement | Permits the transaction name change within the same EGL program. The same PSB and FormGroup must be used by both transactions, because the program does not change. |
| Miscellaneous | ||
| Basic checkpoint | sysLib.commit() system function | |
| Symbolic checkpoint | dliLib.AIBTDLI(), dliLib.EGLTDLI(), or vgLib.VGTDLI() | See: |
| Restart (XRST call) | dliLib.AIBTDLI(), dliLib.EGLTDLI(), or vgLib.VGTDLI() | See: |
| Rollback | sysLib.rollback() system function | |
| Log call | sysLib.audit() system function | See audit() |
| PURG call for an alternate TP PCB | Use close statement for the serial record or print form that is associated with an output IMS message queue | |
| Asynchronous processing | vgLib.startTransaction() | See startTransaction() |