FEPI global user exits

This section describes the two FEPI global user exits, XSZBRQ and XSZARQ. These exits behave in exactly the same manner as standard CICS® global user exits.  

XSZBRQ
Invoked before a FEPI command is executed (but after the syntax of the command has been validated, and therefore after EDF processing).
XSZARQ
Invoked immediately after a FEPI command has completed (before EDF processing).

Note that both the FEPI application programming and system programming commands cause XSZBRQ and XSZARQ to be invoked, but the latter do not provide the exit programs with any meaningful information.

You cannot use exit programming interface (XPI) calls or EXEC CICS commands in programs invoked from these exits.

The exits allow you to monitor the FEPI commands and data being processed; you can inhibit commands, and modify specific command options. You could use them for:

XSZBRQ

XSZBRQ is invoked before a FEPI command is executed; the input parameters for the command are passed to the exit program. The majority of the information passed is read-only, but specific parameters can be updated. In addition, your exit program can decide whether the request is to be processed or bypassed. You could use XSZBRQ, for example, to log commands, to bypass commands that violate the conventions of your installation, or to reroute commands by changing their specified targets or pools.

XSZBRQ parameters you can modify

Your exit program can modify the settings of some of the parameters passed to it. However, if it does so, FEPI does not check the validity of the new value. The following parameters can be modified; no others can.

UEPSZSTT
The ID of the transaction that is to continue a FEPI conversation (as supplied on the FEPI START command).
UEPSZSTM
The ID of the terminal that is to continue a FEPI conversation (as supplied on the FEPI START command). (Set UEPSZSTM=X'00000000' to run non-terminal.)
UEPSZTIM
The TIMEOUT value for FEPI ALLOCATE, RECEIVE, CONVERSE, and START commands.
UEPSZALP
The POOL name supplied on the FEPI ALLOCATE or FEPI CONVERSE command.
UEPSZALT
The TARGET name supplied on the FEPI ALLOCATE or FEPI CONVERSE command.

Together, UEPSZALP and UEPSZALT contain the information necessary to initiate a conversation.

Exit XSZBRQ

When invoked
Invoked by FEPI before a FEPI command is executed (but after syntax and semantic checking).
Exit-specific parameters
UEPSZACT
A 2-byte field that identifies the command. The values are given in Table 5.
UEPSZCNV
An 8-character field containing the conversation ID (CONVID) for the command. Applicable on FEPI ALLOCATE, SEND, RECEIVE, CONVERSE, EXTRACT, ISSUE, START, and FREE commands.

For an EXEC CICS FEPI ALLOCATE command without PASSCONVID, this field is set to nulls; if PASSCONVID is used, it contains the CONVID.

UEPSZALP
An 8-character field containing the name of the pool (POOL). Modifiable and applicable on FEPI ALLOCATE and CONVERSE commands.
UEPSZALT
An 8-character field containing the name of the target (TARGET). Modifiable and applicable on FEPI ALLOCATE and CONVERSE commands.
UEPSZTIM
Fullword binary field containing the time-out value (TIMEOUT). Modifiable and applicable on FEPI ALLOCATE, RECEIVE, CONVERSE, and START commands.
UEPSZSND
Address of the ‘send’ data-area (FROM). Applicable on FEPI CONVERSE and SEND commands.
UEPSZSNL
Fullword binary field containing the length of the ‘send’ data (FROMFLENGTH, FLENGTH). Applicable on FEPI CONVERSE and SEND commands.
UEPSZSTT
A 4-character field containing the transaction ID (TRANSID). Modifiable and applicable on FEPI START commands.
UEPSZSTM
A 4-character field containing the terminal ID (TERMID). Modifiable and applicable on FEPI START commands.
UEPSZSNK
A 1-bit flag field indicating whether data is in key stroke format (KEYSTROKE). Applicable on FEPI CONVERSE FORMATTED and SEND FORMATTED commands. It can contain the following values:
UEPSZSNK_OFF
Not key stroke format.
UEPSZSNK_ON
Key stroke format.
UEPSZSNE
A 1-character field containing the key stroke escape character (ESCAPE). Applicable on FEPI CONVERSE FORMATTED and SEND FORMATTED commands.
Return codes
UERCNORM
Continue processing.
UERCBYP
Do not process the request; return INVREQ to the application.
Note:
Your exit program cannot bypass events (like CICS shutdown or end-of-task).
XPI calls
Do not use any XPI calls.

XSZARQ

XSZARQ is invoked immediately after a FEPI command has been executed; the exit program is passed the parameters that are output from the command. All of the information passed is read-only.

Exit XSZARQ

When invoked
Invoked by FEPI immediately after a FEPI command has been processed.
Exit-specific parameters
UEPSZACN
A 2-byte field that identifies the command. The values are given in Table 5.
UEPSZCON
An 8-character field containing the conversation ID (CONVID) for the command. Applicable on FEPI ALLOCATE, SEND, RECEIVE, CONVERSE, EXTRACT, ISSUE, START, and FREE commands.
UEPSZRP2
Fullword containing the response code for the command (RESP2).
UEPSZRVD
Address of the ‘receive’ data-area (INTO). Applicable on FEPI RECEIVE, CONVERSE, and EXTRACT FIELD commands.
UEPSZRVL
Fullword binary data field containing the length of the receive data (FLENGTH, TOFLENGTH). Applicable on FEPI RECEIVE, CONVERSE, and EXTRACT FIELD commands.
Return code
UERCNORM
Continue processing.
XPI calls
Do not use any XPI calls.

The UEPSZACT and UEPSZACN exit-specific parameters

Both XSZBRQ and XSZARQ are passed a parameter (UEPSZACT for XSZBRQ, and UEPSZACN for XSZARQ) indicating the command or event being processed. Table 5. relates the hexadecimal values passed in UEPSZACT and UEPSZACN to the FEPI commands they represent.

Table 5. Settings of UEPSZACT for exit XSZBRQ and UEPSZACN for exit XSZARQ
Name Setting (hex) FEPI command or event
UEPSZNOA 820E AP NOOP
UEPSZOAL 8210 ALLOCATE
UEPSZOCF 8212 CONVERSE FORMATTED
UEPSZOCD 8214 CONVERSE DATASTREAM
UEPSZOXC 8216 EXTRACT CONV
UEPSZOXF 8218 EXTRACT FIELD
UEPSZOXS 821A EXTRACT STSN
UEPSZOFR 821C FREE
UEPSZOSU 821E ISSUE
UEPSZORF 8220 RECEIVE FORMATTED
UEPSZORD 8222 RECEIVE DATASTREAM
UEPSZOSF 8224 SEND FORMATTED
UEPSZOSD 8226 SEND DATASTREAM
UEPSZOST 8228 START
UEPSZSDN 8402 CICS normal shutdown  1 
UEPSZSDI 8404 CICS immediate shutdown  1 
UEPSZSDF 8406 CICS forced shutdown  1 
UEPSZEOT 8408 CICS end-of-task  1 
UEPSZNOS 840E SP NOOP
UEPSZOQY 8422 INQUIRE PROPERTYSET
UEPSZOIY 8428 INSTALL PROPERTYSET
UEPSZODY 8430 DISCARD PROPERTYSET
UEPSZOQN 8442 INQUIRE NODE
UEPSZOTN 8444 SET NODE
UEPSZOIN 8448 INSTALL NODELIST
UEPSZOAD 844A ADD POOL
UEPSZODE 844C DELETE POOL
UEPSZODN 8450 DISCARD NODELIST
UEPSZOQP 8462 INQUIRE POOL
UEPSZOTP 8464 SET POOL
UEPSZOIP 8468 INSTALL POOL
UEPSZODP 8470 DISCARD POOL
UEPSZOQT 8482 INQUIRE TARGET
UEPSZOTT 8484 SET TARGET
UEPSZOIT 8488 INSTALL TARGETLIST
UEPSZODT 8490 DISCARD TARGETLIST
UEPSZOQC 84A2 INQUIRE CONNECTION
UEPSZOTC 84A4 SET CONNECTION
Note:
  •  1    These events are generated internally by CICS; you cannot bypass them.

Using XMEOUT to control message output

You can use the XMEOUT global user exit, in the CICS message domain, to suppress or reroute FEPI messages. Note, however, that error conditions that generate a message also generate a transient data queue record. It is more efficient to handle such events using a monitoring program, through the TD queue, than by duplicating a message and then acting on it. See Writing monitoring programs.

For programming information about the XMEOUT exit, see the CICS Customization Guide.

[[ Contents Previous Page | Next Page Index ]]