Finalist CICS is a pseudo-conversational dialog. This means
control returns to CICS after a screen displays, and returns to the application each time you
press an attention key (for example, Enter, Clear, etc.). CICS applications are broken down
into hierarchical levels according to the manner of linkage between programs. This
illustration shows how the program linkage works.
Figure 1. Program Linkage
-
CICS passes control to program A. Program
A is on the first level of hierarchy below CICS.
-
Program A links to Program C. This link establishes a lower hierarchical level. When program C returns, control passes to program A rather than to CICS.
-
Program A performs an XCTL to program B.
XCTL does not establish a new hierarchical level. When program B
returns, control passes to CICS.
The CICS return command only returns control to the next higher level of hierarchy
above the returning program. A pseudo-conversational program must be at the
hierarchical level immediately below CICS to return control to CICS. This means
you cannot link to Finalist CICS as you would link to FINALOL.
A program on the calling application's top hierarchical level must XCTL to
Finalist CICS. In turn, CICS must XCTL back to the calling application to preserve
the current hierarchical level. This can lead to complications as all dynamic
storage obtained by the program doing the XCTL command is lost after the XCTL
unless passed in a COMMAREA.
The calling application must pass all data it will need after CICS processing.
This data is passed through CICS via the COMMAREA. The size of the data in the
calling application's COMMAREA is not available to CICS. Therefore, it can not
carry all the data in its own COMMAREA.
Finalist CICS uses a temporary storage queue to hold the calling application's
COMMAREA. When CICS processing is complete, the calling application's COMMAREA is
rebuilt. The temporary storage queue is deleted.