CSP CONVERSION



The example below is in conversational mode. The default mode is
however pseudo-conversational.
Names beginning 'EZE' are system names from CSP or by the conversion.
Database copybooks have been left unexpanded.
Which copybooks are expanded/unexpanded can be defined by the user.
Various other options are available.

      /*****************************************************************
      *    APPLICATION  EXS000A       MAIN                 SQL         *
      ******************************************************************
       IDENTIFICATION DIVISION.
        PROGRAM-ID. EXS000A.
       ENVIRONMENT DIVISION.
       CONFIGURATION SECTION.
       SPECIAL-NAMES.
           CURRENCY SIGN IS '$'.
      ******************************************************************
       DATA DIVISION.
       WORKING-STORAGE SECTION.
      /*****************************************************************
           EXEC SQL INCLUDE EZESQLCA END-EXEC.                           SQL
           EXEC SQL INCLUDE EZENULLI END-EXEC.
      /*****************************************************************
      *                                                                *
      *    DB2 RECORDS                                                 *
      *                                                                *
      ******************************************************************
      *----------------------------------------------------------------*
      *---D.DTX001 / --------------------------------------------------*
   10      EXEC SQL INCLUDE DTX001 END-EXEC.                             SQL
      /*****************************************************************
      *                                                                *
      *    RECORD STATUS VARIABLES                                     *
      *                                                                *
      ******************************************************************
      *  SQL  RECORD STATUS 88-VALUES: EZEXSQLS
        01 EZEREC-STATUS.
           COPY EZEXSQLS REPLACING ==(R)== BY ==DTX001==.
      *  SQL RECORD INDICATORS:
           03 EZECRS-STATUS.
           05 DTX001-EZEOPEN       PIC S9(4) COMP VALUE ZERO.
      /*****************************************************************
      *                                                                *
      *    SYSTEM VARIABLES                                            *
      *                                                                *
      ******************************************************************
           EXEC SQL INCLUDE EZEXVART END-EXEC.
        01 EZE-BYPK                PIC S9(04) COMP   VALUE 0.
           88 BYPASS               VALUE 99 25 26 27.
        01 EZE-HLPK                PIC S9(04) COMP   VALUE 0.
           88 EZE-HELP             VALUE 99.
      *  DUMMY NULL INDICATOR:
        01 EZEI                    PIC S9(04) COMP   VALUE 0.
      *  ERROR MESSAGE:
        01 EZERMSG                 PIC  X(78).
      /*****************************************************************
      *                                                                *
      *    WORKING STORAGE RECORDS                                     *
      *                                                                *
      ******************************************************************
      *CO--------------------------------------------------------------*
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
        01 WAREA.
           07 WAREA-ALL.
            10 NM-CD              PIC  X(0008).
            10 PASSWORDZ          PIC  X(0004).
            10 MENU-LEVEL         PIC S9(0002).
            10 MENU-PASS          PIC  X(0008)              OCCURS 0010.
            10 AP-FLAG.
             11 AP-FLG            PIC  X(0001)              OCCURS 1296.
            10 LOGON-ID           PIC  X(0008).
            10 FILLER-AREA        PIC  X(0014).
            10 ERR-AREA.
             15 ERR-TYPE          PIC  X(0014).
             15 ERR-CODE          PIC S9(0014).
             15 ERR-APPL          PIC  X(0018).
             15 ERR-DB            PIC  X(0014).
            10 SQLSTAT            PIC  X(0003).
            10 FLG-REAL-APPL      PIC  X(0001).
            10 WAREA-MSG          PIC  X(0070).
            10 USER-AREA          PIC  X(1890).
            10 CREATX0.
             11 CREATX0-LEN       PIC S9(0004) COMP.
             11 CREATX0-TRAN      PIC  X(0004).
             11 CREATX0-DUMY      PIC  X(0004).
            ...(CONTINUED)
      *****   RECORD LENGTH:             4084
      /----------------------------------------------------------------*
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
        01 W8H001.
           10 TRAN                PIC  X(0008).
           10 APPL                PIC  X(0008).
           10 MAP                 PIC  X(0008).
           10 FLG-T8007-ADD       PIC  X(0003).
      *****   RECORD LENGTH:               27
      /----------------------------------------------------------------*
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
        01 XXA0000A.
           10 XXA0000A-REC.
            15 W-COMPANY          PIC  X(0006).
            15 W-NO               PIC  X(0002).
            15 W-ACTION           PIC  X(0001).
            15 W-DRFT-NM-CODE     PIC  X(0006).
            15 W-DRFT-NAME        PIC  X(0030).
            15 W-DRFT-CO-NAME     PIC  X(0030).
            15 W-G-CODE           PIC  X(0008).
            15 W-G-NAME           PIC  X(0030).
            15 W-OLD-CODE         PIC  X(0008).
            15 W-USER             PIC  X(0001).
            15 W-ITEM-GROUP       PIC  X(0004).
            15 W-PAGE             PIC S9(0003).
            15 W-OUTPUT           PIC  X(0006).
            15 W-PAGE2            PIC S9(0003).
            15 W-CUNTRY-CD        PIC  X(0003).
            15 W-DRFT-NO          PIC  X(0014).
            15 W-CO-NM-ENG        PIC  X(0060).
            15 W-CO-NM-KJ         PIC  G(0030) DISPLAY-1.
            15 W-YY               PIC  X(0002).
            15 W-TERM             PIC  X(0001).
            15 W-H-FACTORY        PIC  X(0003).
            ...(CONTINUED)
      *****   RECORD LENGTH:              317
      /*****************************************************************
      *                                                                *
      *    MAP VARIABLES AND MAP CONTROL VARIABLES                     *
      *                                                                *
      ******************************************************************

      *    COPY MAP00AC EXPANDED BELOW:

      *---MAP VARIABLES: MAP00A----------------------------------------*
      *+MAP VARIABLES++++++++++++++++++++++++++++++++++++++++++++++++++*
        01 MAP00A.
           03 DATEZ                           PIC S9(0008).
           03 TIMEZ                           PIC  X(0008).
           03 PRO1                            PIC  X(0033).
           03 PRO2                            PIC  X(0033).
           03 MAP-NO                          PIC  X(0002).
           03 EZEMSG                          PIC  X(0078).
      /+MAP CONTROLLING++++++++++++++++++++++++++++++++++++++++++++++++*
        01 MAP00A-EZECMN.
      *   CURSOR-SET INDICATORS(SET=1):
           02 MAP00A-EZESET.
           05 EZES-DATEZ                      PIC 9 VALUE ZERO.
           05 EZES-TIMEZ                      PIC 9 VALUE ZERO.
           05 EZES-PRO1                       PIC 9 VALUE ZERO.
           05 EZES-PRO2                       PIC 9 VALUE ZERO.
           05 EZES-MAP-NO                     PIC 9 VALUE ZERO.
           05 EZES-EZEMSG                     PIC 9 VALUE ZERO.
      *   CURSOR-TEST INDICATORS(CURSOR=1):
           02 MAP00A-EZECUR.
           05 EZEC-DATEZ                      PIC X VALUE SPACE.
           05 EZEC-TIMEZ                      PIC X VALUE SPACE.
           05 EZEC-PRO1                       PIC X VALUE SPACE.
           05 EZEC-PRO2                       PIC X VALUE SPACE.
           05 EZEC-MAP-NO                     PIC X VALUE SPACE.
           05 EZEC-EZEMSG                     PIC X VALUE SPACE.
      *   DYNAMIC CONTROLLING:
           02 MAP00A-EZECTL-PLUS-STOPPER.
           03 MAP00A-EZECTL.
      *    MAP INDICATORS: A:ALARM * X:X'00'=CLEARED * M:1=MODIFIED
           05 EZEA-MAP00A PIC X VALUE SPACE.
           05 EZEX-MAP00A PIC X VALUE SPACE.
           05 EZEM-MAP00A PIC X VALUE SPACE.
      *    VARIABLES: EZEB:ATTRIBUTE, X:HILIT=EZE-SETU/A/P, M:MODIFIED=1
           05 EZEB-DATEZ                      PIC X.
           05 EZEX-DATEZ                      PIC X.
           05 EZEM-DATEZ                      PIC X.
           05 EZEB-TIMEZ                      PIC X.
           05 EZEX-TIMEZ                      PIC X.
           05 EZEM-TIMEZ                      PIC X.
           05 EZEB-PRO1                       PIC X.
           05 EZEX-PRO1                       PIC X.
           05 EZEM-PRO1                       PIC X.
           05 EZEB-PRO2                       PIC X.
           05 EZEX-PRO2                       PIC X.
           05 EZEM-PRO2                       PIC X.
           05 EZEB-MAP-NO                     PIC X.
           05 EZEX-MAP-NO                     PIC X.
           05 EZEM-MAP-NO                     PIC X.
           05 EZEB-EZEMSG                     PIC X.
           05 EZEX-EZEMSG                     PIC X.
           05 EZEM-EZEMSG                     PIC X.
           05 EZECTL-STOPPER PIC XXXX VALUE '****'.
      *   MAP STARTING LINE:
        01 EZESL-MAP00A              PIC S9(4) COMP VALUE 0001.
      *   MAP ENDING LINE:
        01 EZENL-MAP00A              PIC S9(4) COMP VALUE 0024.
      *   FIXED-MAP INDICATOR:
        01 EZEF1-MAP00A              PIC S9(4) COMP VALUE ZERO.

      /*****************************************************************
      *---COMMON WORKING STORAGE AND TEMPORARY STORAGE RECORD AREA-----*
           EXEC SQL INCLUDE EZEXLNKM END-EXEC.
      ******************************************************************
       LINKAGE SECTION.
      ******************************************************************
        01 DFHCOMMAREA             PIC X(32000).
      * RECORD OVERLAY FOR WORKING STORAGE SAVING/RETRIEVING:
        01 EZE-TSRECORD.
           03 FILLER           PIC X(96002).
      /---BMS GENERATED MAP GROUP COPYBOOKS----------------------------*
           COPY MAP00A.
      /*****************************************************************
       PROCEDURE DIVISION.
      ******************************************************************
       EZEMAIN SECTION.
      ******************************************************************
           EXEC SQL INCLUDE EZEXSERI END-EXEC.
      *---SETTING PROGRAM INITIAL VALUES-------------------------------*
           PERFORM EZE-INITIATION.
      /*****************************************************************
      *                                                                *
      *    SQL DATABASE CURSOR DECLARATIONS                            *
      *                                                                *
      ******************************************************************
      *----------------------------------------------------------------*
      *  INQU: D.DTX001
                                                              EXEC SQL
           DECLARE PKT00_INQDTX001_CQ
           CURSOR FOR SELECT
             DATA1_NN, DATA2_NN
           FROM D.DTX001 T1
           WHERE  SHIKI_CD = 'KT-USER'
           AND  KEY_CD   = :DTX001.KEY-CD
      *  /*** INSERT ORDER BY CLAUSE HERE **
                                                              END-EXEC.
      ******************************************************************
      *                                                                *
      *    PKT00-EXE-MAIN                                         EXEC *
      *                                                                *
      ******************************************************************
       PKT00-EXE-MAIN-MAIN SECTION.
       PKT00-EXE-MAIN.
           PERFORM PKT00-EXE-INIT-SECTION
           PERFORM UNTIL (PF3 OR PF24)
             PERFORM PKT00-EXE-CHECK-SECTION
             PERFORM PKT00-CON-MAP00A-SECTION
           END-PERFORM
           IF PF3
              IF CURNT-APPL OF WAREA = 'EXS990A'
                 GO TO EZEDXFR-EXS990A-WAREA
              ELSE
                 GO TO EZEXFER-MENU-WAREA
              END-IF
           ELSE
             IF PF24
                MOVE 'CICSRACF' TO EZE-PROG
                  MOVE X'FFFFFFFF' TO EZE-WRK(001:4)
                  MOVE -001 TO EZEI
                PERFORM EZE-CICS-LINK
             END-IF
           END-IF.
       PKT00-EXE-MAIN-FLOW-SECTN SECTION.
       PKT00-EXE-MAIN-FLOW.
           CONTINUE.
      /*****************************************************************
      *                                                                *
      *    APPLICATION EXITS                                           *
      *                                                                *
      ******************************************************************
      *---FLOW OVERFLOW------------------------------------------------*
           MOVE ' ' TO EZE-DXF
           MOVE 'FLOWEND' TO EZEAPP
           GO TO EZEEXIT.
      *---HARD ERROR---------------------------------------------------*
       EZEHARD.
           MOVE 'E' TO EZE-DXF
           MOVE EIBRESP TO EZE-MSIZ
           IF EZESQCOD < ZERO MOVE EZESQCOD TO EZE-MSIZ END-IF
           MOVE 'EXS000A' TO EZEAPP
           GO TO EZEEXIT.
      *---EZECLOS - CLOSING--------------------------------------------*
       EZECLOS.
           MOVE 'S' TO EZE-DXF
           MOVE 'EZECLOS' TO EZEAPP
           GO TO EZEEXIT.
      *---SEGMENTED CONVERSING - RETURN TO CICS------------------------*
       EZECONV.
           MOVE 'C' TO EZE-DXF
           PERFORM EZECICS-SAVE.
      *---FINAL EXIT---------------------------------------------------*
       EZEEXIT.
           EXEC SQL INCLUDE EZEXEXIT END-EXEC.
           EXEC CICS RETURN END-EXEC.
      *---DXFR AND XFER TRANSFERS--------------------------------------*
       EZEDXFR-EXS010A-WAREA.
           MOVE 'D' TO EZE-DXF
           MOVE 'EXS010A' TO EZEAPP
           MOVE WAREA TO EZE-WRK
           MOVE LENGTH OF WAREA TO EZE-WSIZ
           GO TO EZEEXIT.
       EZEDXFR-EXS020A-WAREA.
           MOVE 'D' TO EZE-DXF
           MOVE 'EXS020A' TO EZEAPP
           MOVE WAREA TO EZE-WRK
           MOVE LENGTH OF WAREA TO EZE-WSIZ
           GO TO EZEEXIT.
       ...(SAME PATTERN REPEATED FOR ALL DXFR/XFER EXITS)
      /*****************************************************************
      *                                                                *
      *    APPLICATION INITIALIZATION                                  *
      *                                                                *
      ******************************************************************
       EZE-INITIATION SECTION.
           MOVE 'EXS000A' TO EZE-APPL
           MOVE 'MAIN' TO EZE-ATYP
           MOVE '1' TO EZE-SQL
           EXEC SQL INCLUDE EZEXINIM END-EXEC.

           MOVE ZERO TO EZESQCOD EZE-COMIT
           MOVE ZERO TO EZESL-SAVE MOVE 999 TO EZENL-SAVE
           MOVE ZERO TO EZE-KEYF
      *  SET INITIAL PAGE ERASE:
           MOVE '0' TO EZEPAGE
      *  SET TO FIRST MAP:
           MOVE HIGH-VALUES TO EZE-PREVIOUS-MAP
           INITIALIZE EZEREC-STATUS
           MOVE ZERO TO RETURN-CODE EZERCODE EZERT8.

      *  COMMON WORKING STORAGE:
           MOVE SPACES TO WAREA
           INITIALIZE WAREA.
           IF EZE-WSIZ > ZERO
             MOVE EZE-WRK(1:EZE-WSIZ) TO WAREA(1:EZE-WSIZ)
           END-IF.
           MOVE ZERO TO EZE-WSIZ.

           INITIALIZE MAP00A
            MOVE LOW-VALUES TO MAP00A-EZECTL.
            MOVE ZERO TO MAP00A-EZESET.
            MOVE SPACE TO MAP00A-EZECUR.
           INITIALIZE DTX001.
           MOVE SPACE TO W8H001
            INITIALIZE W8H001.
           MOVE SPACE TO XXA0000A
            INITIALIZE XXA0000A.
      /---ADDRESSING BMS GENERATED MAP GROUP COPYBOOKS-----------------*
       EZEBMS-IO-AREADDRS.
           SET ADDRESS OF MAP00AI TO EZE-LINK-PTR.
           SET ADDRESS OF MAP00AO TO EZE-LINK-PTR.
      /*****************************************************************
      *                                                                *
      *    PERFORMED PROCESSES                                         *
      *                                                                *
      ******************************************************************
      ******************************************************************
      *                                                                *
      *    PKT00-CON-MAP00A :                                     CONV *
      *                                                                *
      ******************************************************************
       PKT00-CON-MAP00A-SECTION SECTION.
       PKT00-CON-MAP00A.
           MOVE 'PKT00-CON-MAP00A' TO EZE-PROC.
           PERFORM EZEDTE-GET
           MOVE EZEDTE TO DATEZ OF MAP00A
           PERFORM EZETIM-GET
           MOVE EZETIM TO TIMEZ OF MAP00A.
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
           MOVE 'CONV' TO EZE-POPT.
       PKT00-CON-MAP00A-REBEF.
           PERFORM EZEBEF-MAP00A
           IF EZECNVCM = 1
           AND EZE-COMIT = '1'
             MOVE ' ' TO EZE-COMIT
             PERFORM EZECOMIT
           END-IF.
       PKT00-CON-MAP00A-RESEND.
           IF EZEMNO > 0 AND < 9999
             PERFORM EZEMSG-FETCH
             MOVE EZERMSG TO EZEMSGO OF MAP00AO
           END-IF
           .
       PKT00-CON-MAP00A-CONV.
      *----------------------------------------------------------------*
           PERFORM EZEMAP-CONV
      *----------------------------------------------------------------*
           IF EZE-CLEAR GO TO PKT00-CON-MAP00A-RESEND END-IF
           MOVE SPACE TO EZEMSG OF MAP00A
                         EZEMSGO OF MAP00AO
           MOVE EZE-KEYF TO EZE-BYPK
           MOVE EZE-KEYF TO EZE-HLPK
           MOVE ZERO TO EZEMNO
           IF NOT BYPASS
             PERFORM EZEAFT-MAP00A
           END-IF
           IF EZEMNO > ZERO GO TO PKT00-CON-MAP00A-RESEND END-IF
           MOVE ' ' TO EZEA-MAP00A.
      /*****************************************************************
      *                                                                *
      *    PKT00-EXE-CHECK :                                      EXEC *
      *                                                                *
      ******************************************************************
       PKT00-EXE-CHECK-SECTION SECTION.
       PKT00-EXE-CHECK.
           MOVE 'PKT00-EXE-CHECK' TO EZE-PROC.
           IF NOT EZE-ENT
             MOVE 'FUNCTION KEY UNSUPPORTED' TO EZEMSG
             MOVE EZE-1ALARM TO EZEA-MAP00A
             GO TO PKT00-EXE-CHECK-EZERTN
           END-IF
           IF MAP-NO OF MAP00A = '01'
           OR MAP-NO OF MAP00A = '1 '
             MOVE XXA0000A-REC OF XXA0000A TO USER-AREA OF WAREA
             GO TO EZEDXFR-EXS010A-WAREA
           END-IF
           IF MAP-NO OF MAP00A = '02'
           OR MAP-NO OF MAP00A = '2 '
             MOVE XXA0000A-REC OF XXA0000A TO USER-AREA OF WAREA
             GO TO EZEDXFR-EXS020A-WAREA
           END-IF
           IF DATA1-NN OF DTX001 = '777777'
             IF MAP-NO OF MAP00A = '03'
             OR MAP-NO OF MAP00A = '3 '
               MOVE XXA0000A-REC OF XXA0000A TO USER-AREA OF WAREA
               GO TO EZEDXFR-EXS030A-WAREA
             END-IF
             IF MAP-NO OF MAP00A = '04'
             OR MAP-NO OF MAP00A = '4 '
               MOVE XXA0000A-REC OF XXA0000A TO USER-AREA OF WAREA
               GO TO EZEDXFR-EXS040A-WAREA
             END-IF
           END-IF
           IF MAP-NO OF MAP00A NOT = SPACE
             MOVE 'INCORRECT NO. SELECTION' TO EZEMSG
             MOVE ZERO TO MAP00A-EZESET MOVE 1 TO EZES-MAP-NO
               OF MAP00A-EZESET
             MOVE EZE-1ALARM TO EZEA-MAP00A
           END-IF.
       PKT00-EXE-CHECK-EZERTN.
           EXIT.
      /*****************************************************************
      *                                                                *
      *    PKT00-EXE-INIT :                                       EXEC *
      *                                                                *
      ******************************************************************
       PKT00-EXE-INIT-SECTION SECTION.
       PKT00-EXE-INIT.
           MOVE 'PKT00-EXE-INIT' TO EZE-PROC.
      * MOVE 1 TO EZECNVCM;
           MOVE 1 TO EZEFEC
           MOVE 'KT00' TO EZESEGTR
           PERFORM EZECOMIT
           INITIALIZE MAP00A
           MOVE SPACE TO XXA0000A INITIALIZE XXA0000A
           MOVE SPACE TO W8H001 INITIALIZE W8H001
           MOVE 'KT00' TO TRAN OF W8H001
           MOVE 'MAP00A' TO MAP OF W8H001
           MOVE 'EXS000A' TO APPL OF W8H001
           PERFORM PKT00-INQ-DTX001-SECTION
           IF SQLSTAT = 'RF'
             MOVE DATA1-NN OF DTX001 TO W-COMPANY OF XXA0000A
             MOVE DATA2-NN OF DTX001 TO W-OUTPUT OF XXA0000A
             IF DATA2-NN OF DTX001 = 'XXXXXX'
               MOVE '03:XXXXXXXXXXXXX     (LOCAL)' TO PRO1 OF MAP00A
               MOVE '04:YYYYYYYYYYYYY     (LOCAL)' TO PRO2 OF MAP00A
             END-IF
           ELSE
             MOVE 'YOU CAN NOT USE THIS SYSTEM' TO EZEMSG
             MOVE EZEF-PROT TO EZEB-MAP-NO OF MAP00A-EZECMN
           END-IF
           PERFORM PKT00-CON-MAP00A-SECTION.
      /*****************************************************************
      *                                                                *
      *    PKT00-INQ-DTX001 :                                     INQU *
      *                                                                *
      ******************************************************************
       PKT00-INQ-DTX001-SECTION SECTION.
       PKT00-INQ-DTX001.
           MOVE 'PKT00-INQ-DTX001' TO EZE-PROC.
           MOVE NM-CD OF WAREA TO KEY-CD OF DTX001.
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
           MOVE 'PKT00-INQ-DTX001' TO EZE-PROC
           MOVE 'INQU' TO EZE-POPT
           INITIALIZE EZE-INDICATORS
      *----------------------------------------------------------------*
           PERFORM PKT00-INQ-DTX001-EZESQL
      *----------------------------------------------------------------*
           MOVE EZESQCOD TO DTX001-EZESTAT
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
           PERFORM SERR01-SECTION.
       PKT00-INQ-DTX001-EZERTN.
           EXIT.
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
       PKT00-INQ-DTX001-EZESQL SECTION.
                                                              EXEC SQL
           OPEN PKT00_INQDTX001_CQ
                                                              END-EXEC.
           IF NOT EZESQERR
                                                              EXEC SQL
           FETCH PKT00_INQDTX001_CQ INTO
           :DTX001.DATA1-NN:N001, :DTX001.DATA2-NN:N002
                                                              END-EXEC
           IF NUL001 INITIALIZE DATA1-NN OF DTX001 END-IF
           IF NUL002 INITIALIZE DATA2-NN OF DTX001 END-IF
           MOVE EZESQCOD TO EZERCODE
                                                              EXEC SQL
           CLOSE PKT00_INQDTX001_CQ
                                                              END-EXEC
           MOVE EZERCODE TO EZESQCOD.
      /*****************************************************************
      *                                                                *
      *    SERR01 :                                                    *
      *                                                                *
      ******************************************************************
       SERR01-SECTION SECTION.
       SERR01.
           MOVE 'SERR01' TO EZE-SGRP.
           MOVE 'RF ' TO SQLSTAT
           IF EZESQCOD NOT = 0
             IF EZESQCOD = 100
               MOVE 'NRF' TO SQLSTAT
             ELSE
               IF EZESQCOD = -803
                 MOVE 'DUP' TO SQLSTAT
               ELSE
                 IF EZESQCOD = -911
                   MOVE 'DED' TO SQLSTAT
                 ELSE
                   MOVE EZESQCOD TO ERR-CODE OF WAREA
                   MOVE 'DB2' TO ERR-TYPE OF WAREA
                   IF FLG-REAL-APPL OF WAREA = '1'
                     MOVE 'O813' TO CREATX0-TRAN OF WAREA
      *  CALL CCCCCC0 WAREA;
                     GO TO EZECLOS
                   ELSE
                     GO TO EZEDXFR-EXS510A-WAREA
                   END-IF
                 END-IF
               END-IF
             END-IF
           END-IF.
       SERR01-EZERTN.
           EXIT.
      /*****************************************************************
      *                                                                *
      *    AUXILIARY PROCEDURES                                        *
      *                                                                *
      ******************************************************************
      *---MAP ROUTINES: MAP00A-----------------------------------------*

      *    COPY MAP00AE EXPANDED BELOW:

      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
       EZEBEF-MAP00A SECTION.
      * EDITINGS BEFORE CONVERSE/DISPLAY:
      *  PREPARING CONVERSE/DISPLAY
           MOVE 'MAP00A' TO EZE-MNAM MOVE 'MAP00A' TO EZE-MSET
           MOVE LENGTH OF MAP00AO TO EZE-MSIZ
           MOVE EZEF1-MAP00A TO EZEF1
           MOVE EZESL-MAP00A TO EZESL MOVE EZENL-MAP00A TO EZENL
           PERFORM EZEMAP-CHEC
      *  NULLING OUTPUT AREA:
           MOVE LOW-VALUES TO MAP00AO.
      *  EDITING OUTPUT FIELDS:
      *   DATEZ / DATEZ                                      (02,71)
           MOVE DATEZ OF MAP00A TO DATEZO OF MAP00AO.
      *    SMALL COBOL EDITING SUBPROGRAM:
           CALL EZEVCHD USING DFHEIBLK DFHCOMMAREA
                              DATEZO OF MAP00AO BY CONTENT DATEZ OF
             MAP00A '0008' 'N' 'R' '01' 'L' '08' '00'.
      *   TIMEZ / TIMEZ                                      (03,71)
           ...(REPEATED FOR ALL MAP VARIABLES)
      *  DEFAULT CURSOR FIELD: MAP-NO
           IF MAP00A-EZESET NOT = ZERO
             MOVE ZERO TO EZE-CURSOR
           ELSE
             MOVE ZERO TO EZE-CURSOR
             MOVE -1 TO MAP-NOL OF MAP00AI
           END-IF
           .
      *++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
       EZEACU-MAP00A SECTION.
      *  -ATTR.BYTES FOR DYNAMICALLY SET FIELDS (EZEB-)
      *  -FIELD LENGTH TO -1 FOR CURSOR SET FIELD (EZES-)
           MOVE EZEB-DATEZ OF MAP00A-EZECMN TO DATEZF OF MAP00AI
           MOVE EZEX-DATEZ OF MAP00A-EZECMN TO DATEZH OF MAP00AO
           COMPUTE DATEZL OF MAP00AI = 0 - EZES-DATEZ OF MAP00A-EZECMN
           ...(REPEATED FOR ALL MAP VARIABLES)
           .
      /++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
       EZEAFT-MAP00A SECTION.
      * EDITINGS AFTER CONVERSE:
      *  SETTING CURSOR INDICATOR BY CURSOR FLAG (CURSLOC=YES)
      *  RETRIEVING AND EDITING MODIFIED FIELDS BY THEIR TYPE:
           MOVE ZERO TO EZE-CHAR
      *   DATEZ / DATEZ                                      (02,71)
           MOVE DATEZF OF MAP00AI TO EZE-XMDTCRS
           IF EZECRS MOVE 1 TO EZES-DATEZ OF MAP00A-EZECMN END-IF
           IF EZEMDT OR DATEZL OF MAP00AI > 0
             MOVE LOW-VALUE TO DATEZF OF MAP00AI
             CALL EZECNUM USING DFHEIBLK DFHCOMMAREA
             DATEZI OF MAP00AI DATEZ OF MAP00A DATEZL OF MAP00AI BY
             CONTENT '0008' '06' '00' 'L' '01' BY REFERENCE EZE-CHAR
             IF DATEZL OF MAP00AI = -1 MOVE 9999 TO EZEMNO END-IF
             MOVE '1' TO EZEM-MAP00A EZEM-DATEZ OF MAP00A-EZECMN
           END-IF
      *   TIMEZ / TIMEZ                                      (03,71)
           ...(REPEATED FOR ALL MAP VARIABLES)
      *  EDITING ERRORS:
           IF EZEMNO > ZERO
             IF EZEMNO = 9999
               IF EZE-CHAR NOT NUMERIC OR EZE-CHAR = ZERO
                 MOVE 1 TO EZE-CHARN
               END-IF
               MOVE EZEVNUM-MSG(EZE-CHARN) TO EZEMSGO OF MAP00AO
             END-IF
             MOVE 'X' TO EZEA-MAP00A
             MOVE ZERO TO EZE-PREVIOUS-MAP MAP00A-EZESET
           END-IF
           MOVE MAP00A-EZESET TO MAP00A-EZECUR.
      *  DEFAULT CURSOR FIELD: MAP-NO
           IF EZE-MAP-CURSOR-DEFAULT = '1' AND EZEMNO = ZERO
             MOVE ZERO TO MAP00A-EZESET
             MOVE 1 TO EZES-MAP-NO OF MAP00A-EZESET
           END-IF.
           .

      /*****************************************************************
      *                                                                *
      *    SYSTEM PROCEDURES                                           *
      *                                                                *
      ******************************************************************
      /---MAP CONVERSE-------------------------------------------------*
           EXEC SQL INCLUDE EZEXCONV END-EXEC.
      /---CONVERSE/DISPLAY PREPARING-----------------------------------*
           EXEC SQL INCLUDE EZEXPREP END-EXEC.
      /---MAP MESSAGE ROUTINE(DUMMY)-----------------------------------*
           EXEC SQL INCLUDE EZEXMESD END-EXEC.
      /---SUBROUTINE CALLS---------------------------------------------*
           EXEC SQL INCLUDE EZEXCLNK END-EXEC.
      /---DATE/TIME/DATETIME-------------------------------------------*
           EXEC SQL INCLUDE EZEXDATI END-EXEC.
      /---EZECOMIT,EZEROLLB  SQL---------------------------------------*
           EXEC SQL INCLUDE EZEXCRSQ END-EXEC.
      ******************************************************************
      *    END-PROGRAM                                                 *
      ******************************************************************