The IWAYSRV0 sample program demonstrates how different output record types can be distinguished using positional fields. The input COMMAREA indicates whether a 40 byte short record or 60 byte long record is to be returned using the 'SHORT' or 'LONG' command. The service is configured to return an output document that is specific to the type.
On Windows, the IWAYSRV0 sample program is located in:
C:\Program Files\iWay61\etc\samples\cics\iwaysrv0
The following supporting files are provided:
The text version of the source code file is included below for your review:
****************************************************************
* IWAYSRV0 - THIS SAMPLE PROGRAM DEMONSTRATES THAT DIFFERENT *
* OUTPUT RECORD TYPES MAY BE DISTINGUISHED BY POSITIONAL *
* FIELDS. THE INPUT COMMAREA INDICATES WHETHER A 40 BYTE S *
* OR 60 BYTE L RECORD IS TO BE RETURNED BY USING THE COMMAND *
* 'SHORT' OR 'LONG'. THE CICS ADAPTER SERVICE IS CONFIGURED *
* TO RETURN AN OUTPUT DOCUMENT SPECIFIC TO THE TYPE. *
* *
* USES: IWAYSRV0_IN.CBL (INPUT RECORD) *
* IWAYSRV0_OUT_S.CBL (SHORT OUTPUT RECORD) *
* IWAYSRV0_OUT_L.CBL (LONG OUTPUT RECORD) *
* IWAYSRV0_S.XML (SHORT INPUT DOCUMENT) *
* IWAYSRV0_L.XML (LONG INPUT DOCUMENT) *
* *
****************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. IWAYSRV0.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-DATA-OUT.
05 WS-DATA-OUT-MSG PIC X(30).
05 WS-DATA-OUT-ARROW PIC X(30).
LINKAGE SECTION.
01 DFHCOMMAREA.
05 CA-DATA.
10 CA-BYTES PIC X(60).
05 CA-INPUT REDEFINES CA-DATA.
10 CA-INPUT-COMMAND PIC X(5).
10 CA-INPUT-FILLER PIC X(55).
05 CA-OUTPUT REDEFINES CA-DATA.
10 CA-OUTPUT-RECORD-TYPE PIC X(1).
10 CA-OUTPUT-MSG PIC X(59).
PROCEDURE DIVISION.
EXEC CICS HANDLE ABEND
LABEL (030-ABEND)
END-EXEC
IF EIBCALEN = 0
MOVE ' EIBCALEN IS = ZERO ' TO CA-OUTPUT-MSG
PERFORM 020-RETURN
END-IF.
*---------------------------------------------------------------*
* THE CICS SERVICE IS CONFIGURED DIFFERENTIATE TO 'S' AND 'L' *
* RECORDS. *
*--------------+-----+------+-----------------------------------*
IF CA-INPUT-COMMAND = 'SHORT'
MOVE 'S' TO CA-OUTPUT-RECORD-TYPE
MOVE 'RECORD TYPE S RETURNS 40 BYTES'
TO WS-DATA-OUT-MSG
MOVE '========>'
TO WS-DATA-OUT-ARROW
MOVE WS-DATA-OUT TO CA-OUTPUT-MSG
GO TO 020-RETURN
END-IF.
IF CA-INPUT-COMMAND = 'LONG '
MOVE 'L' TO CA-OUTPUT-RECORD-TYPE
MOVE 'RECORD TYPE L RETURNS 60 BYTES'
TO WS-DATA-OUT-MSG
MOVE '============================>'
TO WS-DATA-OUT-ARROW
MOVE WS-DATA-OUT TO CA-OUTPUT-MSG
GO TO 020-RETURN
END-IF.
MOVE ' SUPPLY L OR S IN FIRST BYTE OF INPUT...PLEASE'
TO CA-OUTPUT-MSG.
020-RETURN.
EXEC CICS RETURN
END-EXEC.
GOBACK.
030-ABEND.
GO TO 020-RETURN.
iWay Software |