Services

CSP CONVERSION EXAMPLE

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 *
******************************************************************