Invocation of DPL in a FEPI or Link3270 service flow

If the FEPI or Link3270 bridge server adapter uses an inline DPL command, then the run time behavior for the DPL command differs somewhat from that of a DPL command used in a regular adapter.

When the FEPI server adapter or Link3270 bridge server adapter is generated, the adapter will contain an embedded EXEC CICS LINK command for the DPL command, instead of the generated statements that define and perform a new CICS® Service Flow Runtime BTS activity to execute the link.

In Figure 1, linkname contains the linkname from the MAT_LINKNAME property in the properties file. The command input message variable is the DPL Command node input terminal message. The sysid variable is the MAT_SYSID property from the Connection Resource file.
Note: Refer to the Service Flow Modeler help in the WebSphere® Developer for System z® information center for information on the property files.
Figure 1. Invocation of DPL in FEPI service flow
EXEC CICS  LINK PROGRAM (linkname)
      COMMAREA (command input message)
        LENGTH  (LENGTH OF command input message)
        SYSID   (sysid)
        RESP    (CICS-RESP)
        RESP2   (CICS-RESP2)
      END-EXEC.

      IF CICS-RESP NOT EQUAL 0
        MOVE +9                 TO ERROR-IND
        MOVE DPL-ERRMSG         TO WS-ERR-MESSAGE
        MOVE DPL-ERROR-CODE     TO WS-ERR-CODE
        MOVE CICS-RESP          TO EDC-DPL-RESP
        MOVE CICS-RESP2         TO EDC-DPL-RESP2
        MOVE linkname           TO EDC-DPL-PROGRAM
        MOVE sysid              TO EDC-DPL-SYSID
        MOVE SPACES             TO EDC-DPL-TRANSID
        MOVE SPACES             TO EDC-DPL-SYNCONRETURN
        MOVE LENGTH OF command input message
                                TO EDC-DPL-LENGTH
        MOVE LENGTH OF command input message
                                TO EDC-DPL-DATALENGTH
        MOVE command input message
                                TO EDC-DPL-DATA
        PERFORM POST-NAVIGATOR-ERROR-RTN
          THRU POST-NAVIGATOR-ERROR-EXIT                 
        PERFORM 9010-NAVIGATOR-RETURN.  

The EXEC CICS LINK for the inline DPL command will execute under the same Business Transactions Services (BTS) activity / container management as the FEPI or Link3270 service flow itself. Therefore, the FEPI or Link3270 service flow will execute a direct link to the user-written program as part of the current activity (unit of work boundary) as opposed to defining and starting a new CICS Service Flow Runtime / BTS activity as is done for DPL commands in a regular (that is, non-FEPI or non-Link3270) service flow.

Failure of an inline LINK to complete successfully (for example, PGMIDERR) will be handled in the same manner as a LINK failure in a generated DPL command program. From a modeling perspective, this means that runtime error handling for a DPL Command node in a FEPI or Link3270 service flow will be the same as a DPL Command node in a regular service flow.

Note: The SYNCPOINT and SYNCPOINT ROLLBACK commands cannot be executed in the linked-to program or any of its subprograms. Also, execution of the ABEND command in the linked-to program or any of its subprograms could cause an undesirable state of the current activity.