The "Execute ISPF Dialog Application" tool lets you integrate an ISPF dialog application directly as an AWM application. The ISPF application runs in a user server of the z/Server environment on the remote system. Only the UI is executed on the client side.
Modeling tools of type "Execute ISPF Dialog Application" requires a z/Server installation on z/OS.
Attribute | Type | Description |
---|---|---|
Invocation Form [M] | Selection | Determines how the ISPF application is called. Permitted values are REXX, CMD or PGM. |
Program Name [M] | String | Name of the ISPF application. |
Tool input and output parameters have to be defined corresponding to the expected input and output parameters of the attached ISPF tool.
Attribute | Type | Description |
---|---|---|
Panel Name [M] | Execute ISPF Dialog | References a tool for an ISPF panel included in the dialog application. |
Calling an ISPF dialog application can be modeled in a number of ways:
When attaching ISPF dialog tools, the ISPF dialog application runs on z/OS in a separate ISPF batch environment managed by the Micro Focus z/Server. ISPF panel fields are directly exchanged with AWM-modeled dialog fields.
An ISPF tool which displays at least one ISPF panel has to be defined in the AWM model using the tool descriptor "Execute ISPF Dialog".
The advantage of this approach is that the attached ISPF tool which implements the dialog application, does not need to be changed.
Customization is only necessary in the ISPF panels called in the attached application. The ISPF panels are extended by calls to the REXX procedure TAUZCDIF, which handles the communication between the ISPF dialog application and the client dialogs.
Calling TAUZCDIF in the PROC section is only used for ISPF table processing.
The extension of the ISPF panel in the INIT or REINIT section has the following format:
VGET(TAUTODIA) SHARED IF (&tautodia = 'Y') VGET(TAUERR) SHARED &taupanel = '<panel name>' &taucurs = .CURSOR &tauttl = '<panel title>’ &taups = 'I' &tauparms = ‘<var1> <var2> … <varn>’ *REXX(*,TAUPANEL,TAURESP,TAUPS,TAUPARMS,TAUCURS,TAUERR,TAUTTL, (TAUZCDIF)) IF (&tauerr ^= &z) VGET(TAUTOZCP) SHARED &tautozcp = '&tautozcp &tauerr' VPUT(TAUTOZCP) SHARED
The ISPF panel extension starts with a VGET statement of the shared pool variable TAUTODIA which is set to ‘Y’ by the ISPF dialog tool adapter TAUZCIFD.
Some special variables are defined and explained in the table below.
The REXX procedure TAUZCDIF will be called only if called from the z/Server and invoked from AWM. This means that the ISPF dialog application will still work in an ISPF online session invoked in a 3270 emulator session.
It is important that all ISPF variables which are not fields in the BODY section of the panel are explicitly passed to the panel REXX: this means particularly the special variables explained below but also all other ISPF variables which are not declared as input or output fields in the panel’s BODY section but whose values are to be passed to the Client dialog.
The * in the parameter list of the TAUZCDIF call ensures that all ISPF variables defined as input or output fields in the panel’s BODY section are passed to the Client dialog.
The special variable TAUERR is fetched from the ISPF shared pool before calling the panel REXX, so that dialog error conditions detected in a preceding dialog step can be passed to the panel REXX. The panel REXX will send the error message to the client and the user will be informed of the error by an error message dialog.
The call to the panel REXX TAUZCDIF is followed by a check that the special variable TAUERR has some content. If it does, the content is concatenated to the actual content of the ISPF variable TAUTOZCP which contains error messages from the tool execution and is evaluated by the tool adapter TAUZCIFD.
Special variable | Description |
---|---|
TAUPANEL | Name of the panel |
TAUPS | Panel section (I, R or P) |
TAURESP | ISPF variable in which the dialog response (Enter or PF3) is returned |
TAUCURS | Name of the field in which the cursor is positioned |
TAUTTL | Title of the panel |
TAUERR | ISPF variable containing error messages from the dialog tool |
TAUPARMS | List of names of all variables to be passed to the SWT dialog. The special variable TAUPARMS contains a list of variable names whose values are passed to the Client dialog in the sequence in which they are written in the TAUPARMS string |
On the client side, a standard input dialog corresponding to the ISPF panel must be defined in the AWM model as a tool of type "Execute ISPF Dialog".
The panel fields defined for a tool of type "Execute ISPF Dialog" must correspond exactly to the variables defined under TAUPARMS in the extended ISPF panel. The extension of the ISPF panel in the PROC section of a non TBDISPL panel has the following format:
IF (&tautodia = 'Y') IF (&TAURESP = 'Exit') .RESP = END
An AWM feature can be used to generate all the AWM model components, which are necessary to model a tool of type "Execute ISPF Dialog Application", from an XML file (see ISPF Panel Model Generator).