Services

MANTIS CONVERSION TOOL

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.

The following example is in conversational mode. The default option
is pseudo-conversational mode.
Names beginning 'UU' are system names generated in the conversion.
Numbers in the left margin refer to original Mantis statements.

/*****************************************************************
* THIS IS A SEGMENTED PROGRAM *
******************************************************************
* ENTRY-NAME: EXPLIA1 *
*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
20*
* **************************************************************
* EXPLIA1 - OVERRIDE SCREEN 1 ***********
* **************************************************************
* OVERRIDE XXXXXXXXX XXXXXXX (YYYY FROM MAIN
* --------------------------------------------------------------
*
* AMENDMENTS :-
*
* WHY WHO WHEN WHAT
* ----- --- -------- --------------------------------------
* XXXXX XXX 04/03/04 NEW
*
* --------------------------------------------------------------
*
******************************************************************
IDENTIFICATION DIVISION.
PROGRAM-ID. ANEXMPL.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
******************************************************************
DATA DIVISION.
WORKING-STORAGE SECTION.
/*****************************************************************
* *
* PROGRAM VARIABLES *
* *
******************************************************************
01 UUALL-PROGRAM-VARIABLES.
2 UUSEG-RETURN PIC X(0016).
2 UUSEG-PROGRAM PIC X(0008).
2 UUSER-VARIABLES.
3 UUPROG-PARAMETERS.
5 LOGID PIC X(0004).
5 SDATE PIC X(0010).
** 1 SCREIA1.
** 3 SDATE PIC X(0010).
3 STIME PIC X(0008).
** 3 LOGID PIC X(0004).
3 S-WEB-CODE PIC X(0006).
3 S-NETNAME1 PIC X(0030).
3 S-NETNAME2 PIC X(0030).
3 S-EDI-OVERRIDE PIC X(0001).
3 MESSAGEU PIC X(0079).
** 1 INTF-INTFAC.
3 INTF-SUBNAME PIC X(0008).
3 INTF-RETCD PIC S9(9) COMP.
3 INTF-RETCHAR PIC X(0001).
3 INTF-RESTYPE PIC X(0003).
3 INTF-RESNAME PIC X(0040).
3 INTF-MODID PIC X(0008).
3 INTF-USBUFAREA PIC X(0132).
** 1 FILEDIV.
3 WEB-CODE PIC X(0006).
3 USER-STAMP PIC X(0004).
3 DATE-STAMP PIC X(0008).
3 TIME-STAMP PIC X(0006).
3 WEB-NAME1 PIC X(0030).
3 WEB-NAME2 PIC X(0030).
3 EDI-OVERRIDE PIC X(0001).
** 1 UUPROGDEF.
3 REP PIC X(0001).
** 3 SDATE PIC X(0004).
3 TODAY PIC X(0008).
3 SECTIONU PIC X(0005).
** 3 LOGID PIC X(0004).
3 V-NUM PIC X(0010).
3 WV-NUM PIC X(0010).
3 L PIC S9(4) COMP.
3 X PIC S9(1) COMP.
3 LEN PIC S9(4) COMP.
3 N6 PIC S9(4) COMP.
/*****************************************************************
* *
* WORK VARIABLES (SAVED) *
* *
******************************************************************
2 UUSYS-VARIABLES.
COPY UUPXVAR1.
/*****************************************************************
* *
* MAP CONTROL VARIABLES *
* *
******************************************************************
2 UUMAP-CONTROLS.
3 MAP-UUMCTRL.
5 MAP-UUMAPNAME PIC X(40) VALUE 'SCREIA1'.
5 MAP-UUBMSNAME PIC X(08) VALUE 'SCREI1M'.
3 MAP-UUREPLY.
5 MAP PIC X(08) VALUE SPACE.
5 MAP-UUFKEYL PIC S9(04) COMP VALUE ZERO.
5 MAP-UUMODFIED PIC 9 VALUE ZERO.
/*****************************************************************
* *
* SCREEN CONTROL VARIABLES *
* *
******************************************************************
02 UUSCREEN-MAP.
COPY SCREI1MC REPLACING ==(P)== BY ====.
/*****************************************************************
* *
* FILE/INTERFACE CONTROL VARIABLES *
* *
******************************************************************
2 UUFILE-CONTROLS.
* INTERFACE:
3 INTF-INTF-UURCTRL.
5 INTF PIC X(08) VALUE SPACE.
5 INTF-UUITFNAME PIC X(40) VALUE 'INTFAC'.
5 INTF-UUPRGNAME PIC X(08) VALUE 'EXPR'.
* FILE:
3 FILEDIV-UURCTRL.
5 FILEDIV-UUFIO-STATUS.
7 FILEDIV PIC X(08) VALUE SPACE.
7 FILEDIV-UUFSI PIC X(20) VALUE SPACE.
7 FILEDIV-UUTRAP PIC X(3) VALUE SPACE.
7 FILEDIV-UUKEYU PIC X(254) VALUE SPACE.
5 FILEDIV-UURECNAME PIC X(40) VALUE 'FILEDIV'.
5 FILEDIV-UUEXTNAME PIC X(08) VALUE 'FILEDIV'.
/*****************************************************************
* *
* WORK VARIABLES (TEMPORARY) *
* *
******************************************************************
01 FILLER.
3 UUI001 PIC S9(04) COMP VALUE ZERO.
3 UUSZ01 PIC S9(04) COMP VALUE ZERO.
3 UUPL01 PIC S9(04) COMP VALUE ZERO.
3 UUPL02 PIC S9(04) COMP VALUE ZERO.
01 UU-FILE-DB-STATUS.
3 UUFILE-STATUS.
5 FILEDIV-UUBROWS PIC 9 VALUE ZERO.
*----------------------------------------------------------------*
* WORK VARIABLES:
COPY UUPXVAR2.
* DYNAMIC ATTRIBUTES AND EIBAID VALUES:
COPY UUPXCICV.
* SHOW/MESSAGE DISPLAY:
COPY UUSHMAP.
* CICS/BMS CONSTANTS:
COPY DFHAID.
COPY DFHBMSCA.
* COMMAREA FOR XCTL AND LINK. SCREEN INPUT BUFFER AREA:
COPY UUPXLNKV.
/*****************************************************************
* *
* MAP I/O STRUCTURES FROM BMS *
* *
******************************************************************
*---MAP/SCREIA1/SCREI1M------------------------------------------*
COPY SCREI1M REPLACING SCREI1MI BY SCREIA1I
SCREI1MO BY SCREIA1O.
/*****************************************************************
* *
* FILE/INTERFACE WORK RECORDS *
* *
******************************************************************
*---INTF/INTFAC/IIMP---------------------------------------------*
COPY INTFAC.
/---FILEDIV/FILEDIV/FILEDIV--------------------------------------*
COPY FILEDI.
/*****************************************************************
* *
LINKAGE SECTION.
* *
******************************************************************
01 DFHCOMMAREA PIC X(32763).
/*****************************************************************
* *
PROCEDURE DIVISION.
* *
******************************************************************
* *
* BASE SECTION *
* *
******************************************************************
UUPROGRAM-BASE SECTION.

*---SETTING PROGRAM INITIAL VALUES-------------------------------*
INITIALIZE UUSER-VARIABLES
REPLACING ALPHANUMERIC BY LOW-VALUE
NUMERIC BY ZERO
MOVE 'ANEXMPL' TO UUPROGRAM
MOVE UUPROGRAM TO UUSEG-PROGRAM
INITIALIZE UUFILE-STATUS

* PARAMETER BLOCK (UUF000=0:NO PARAMETERS):
MOVE ZERO TO UUF000
MOVE LENGTH OF UUPROG-PARAMETERS TO UUF000
* CICS INIT:
COPY UUPXCICS.
IF EIBCALEN > ZERO
MOVE DFHCOMMAREA TO UUPROG-PARAMETERS
END-IF
.
*---PERFORMING MAIN SECTION--------------------------------------*
PERFORM EXPLIA1-MAIN.
*---PROGRAM EXIT-------------------------------------------------*
UUPROGRAM-EXIT.
EXEC CICS UNLOCK NOHANDLE FILE('FILEDIV') END-EXEC.
*UUEXIT.
COPY UUPXEXIT.
EXEC CICS RETURN END-EXEC.

*---HARD ERROR IN PROGRAM----------------------------------------*
UUHARDERROR.
MOVE 'UUPERROR' TO UUPROGNAM
GO TO UUEXIT.
/*****************************************************************
* *
* MAIN SECTION *
* *
******************************************************************
EXPLIA1-MAIN SECTION.

PERFORM HOUSEKEEPING
210*
* CONVERSE MAP
ADD 1 TO UUMCONVI
MOVE MAP-UUMCTRL TO UUMCTRL(UUMCONVI)
PERFORM UUMAP-CONVERSE
MOVE UUREPLY TO MAP-UUREPLY
230 CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT '000' ' ' 'RES/'
250* MAIN LOOP
.
PERFORM UNTIL ( UUKEY = 'CANCEL' OR 'CLEAR' )
270 CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT '000' ' ' 'RES/'
280 MOVE LOW-VALUE TO MESSAGEU
290 IF UUKEY NOT = 'ENTER'
300 STRING 'INVALID KEY DEPRESSED - PLEASE TRY AGAIN' UUNULLS
DELIMITED SIZE INTO MESSAGEU
310 END-IF
IF UUKEY = 'ENTER'
320 PERFORM VALIDATE-SCREEN
330 IF MESSAGEU = LOW-VALUE
340 PERFORM ENTER-BIT
350 END-IF
360 END-IF
370*
PERFORM UUGET-TIME
MOVE UUTIME TO STIME
390* CONVERSE MAP
ADD 1 TO UUMCONVI
MOVE MAP-UUMCTRL TO UUMCTRL(UUMCONVI)
PERFORM UUMAP-CONVERSE
MOVE UUREPLY TO MAP-UUREPLY
400 CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT '000' ' ' 'RES/'
410 END-PERFORM
420*
IF UUKEY = 'CLEAR'
PERFORM UNLOCK-FILEDIV
450*CHAIN 'TESTO1'
MOVE 'TEST01' TO UUPROGNAM MOVE 0 TO UUI000
GO TO UUPROGRAM-EXIT
460 ELSE
PERFORM UNLOCK-FILEDIV
480*CHAIN 'EXPLI01' LOGID SDATE
MOVE 'EXPLI01' TO UUPROGNAM MOVE 1 TO UUI000
STRING LOGID SDATE
DELIMITED SIZE
INTO UURMCOMAREA POINTER UUI000 ADD -1 TO UUI000
GO TO UUPROGRAM-EXIT
490 END-IF
.
500*
* ***************************************************************
* EXPLIA1 - SUBROUTINES ******************************
* ***************************************************************
*
*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
VAL-NUM SECTION.
*PAR#01:V-NUM
* MODIFIED HERE*
*PAR#02:LEN
*PAR#03:REP
* MODIFIED HERE*

590*
MOVE 'N' TO REP
610 IF V-NUM(1:LEN) NOT = LOW-VALUE
620 MOVE 'V' TO REP
630 UNSTRING V-NUM(1:LEN) DELIMITED LOW-VALUE
INTO UUTEXS COUNT UUSZ01
MOVE UUSZ01 TO L
640 MOVE '0000000000' TO WV-NUM
650 IF L > 0
660* ???:* CHECK THE LENGTH OF SUBSTRING:
* WV_NUM(LEN-L+1,LEN)=V_NUM(1,L)
MOVE V-NUM(1:L) TO WV-NUM(LEN - L + 1:L)
670 END-IF
680*
MOVE 1 TO L
700 PERFORM UNTIL NOT ( LEN + 1 > L )
710* ???:* CHECK IF NUMERIC TEST IS OK:
IF WV-NUM(L:1) NOT NUMERIC
720 MOVE 'I' TO REP
730 MOVE LEN TO L
740 END-IF
750 COMPUTE L = L + 1
760 END-PERFORM
770 MOVE WV-NUM(1:LEN) TO V-NUM(1:LEN)
780 END-IF
790*
.
810*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
VALIDATE-SCREEN SECTION.
850*
MOVE LENGTH OF S-WEB-CODE TO UUI000
CALL UUPPSPAD USING UUI000 S-WEB-CODE BY CONTENT 'UAL' ' '
870 IF S-WEB-CODE = LOW-VALUE OR '000000'
880 MOVE UUMI-S-WEB-CODE OF UUMX-SCREIA1 TO UUN333
CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT UUN333 'T' 'RED,CUR/'
890 STRING
'PLEASE ENTER A NETWORK CODE TO AMEND OVERRIDE DETAILS'
UUNULLS DELIMITED SIZE INTO MESSAGEU
900 ELSE
910 MOVE UUFALSE TO X
920*
STRING S-WEB-CODE UUNULLS DELIMITED SIZE INTO V-NUM
MOVE N6 TO LEN
PERFORM VAL-NUM
STRING V-NUM UUNULLS DELIMITED SIZE INTO S-WEB-CODE
*
930 IF REP = 'I'
940 MOVE UUMI-S-WEB-CODE OF UUMX-SCREIA1 TO UUN333
CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT UUN333 'T' 'RED,CUR/'
950 STRING 'NETWORK CODE MUST BE NUMERIC' UUNULLS DELIMITED
SIZE INTO MESSAGEU
960 END-IF
970 END-IF
980*
.
1000*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
ENTER-BIT SECTION.
1040*
MOVE LENGTH OF S-WEB-CODE TO UUI000
CALL UUPPSPAD USING UUI000 S-WEB-CODE BY CONTENT 'UBE' ' '
1060 MOVE LENGTH OF S-WEB-CODE TO UUI000
CALL UUPPSPAD USING UUI000 S-WEB-CODE BY CONTENT 'UAF' ' '
1070 MOVE LOW-VALUE TO MESSAGEU
1080* GET FILEDIV(S-WEB-CODE) EQUAL
MOVE LOW-VALUE TO UURKEY-FILEDIV OF FILEDIVU
STRING S-WEB-CODE DELIMITED LOW-VALUE INTO UUR-WEB-CODE OF
FILEDIVU
MOVE 'EQUAL' TO UUFIO-PROCESS
PERFORM UUFIO-FILEDIV
MOVE UUFIO-STATUS TO FILEDIV-UUFIO-STATUS
1090 IF FILEDIV NOT = 'FOUND'
1100 MOVE LOW-VALUE TO S-EDI-OVERRIDE
1110 STRING
'NO DETAILS FOUND. PLEASE TRY AGAIN OR USE INSERTION FACIL
- 'ITY' UUNULLS DELIMITED SIZE INTO MESSAGEU
1120 ELSE
1130* GET FILEDIV(S-WEB-CODE) EQUAL
MOVE LOW-VALUE TO UURKEY-FILEDIV OF FILEDIVU
STRING S-WEB-CODE DELIMITED LOW-VALUE INTO UUR-WEB-CODE OF
FILEDIVU
MOVE 'EQUAL' TO UUFIO-PROCESS
PERFORM UUFIO-FILEDIV
MOVE UUFIO-STATUS TO FILEDIV-UUFIO-STATUS
1140*CHAIN 'EXPLIA2' LOGID SDATE WEB-CODE
*???CHECK EXTERNAL NAME (IN UUPXEXIT):
MOVE 'EXPLIA2' TO UUPROGNAM MOVE 1 TO UUI000
STRING LOGID SDATE WEB-CODE
DELIMITED SIZE
INTO UURMCOMAREA POINTER UUI000 ADD -1 TO UUI000
GO TO UUPROGRAM-EXIT
1150 END-IF
1160*
.
1180*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
ERROR-MAP SECTION.

* SEGMENTED RETURN LABEL INTO STACK:
PERFORM UUPSEGLABEL-STACK

1220 STRING MESSAGEU ' - INFORM XXX MAINTENANCE IMMEDIATELY'
DELIMITED LOW-VALUE UUNULLS DELIMITED SIZE INTO MESSAGEU
1230 CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT '000' ' ' 'PRO/'
1240 MOVE UUMI-MESSAGEU OF UUMX-SCREIA1 TO UUN333
CALL UUATRSET USING UUMX-SCREIA1 UUMC-SCREIA1 UUALARM BY
CONTENT UUN333 'T' 'RED/'
.
PERFORM UNTIL NOT ( UUI000 = UUI000 )
1260* CONVERSE MAP UPDATE
ADD 1 TO UUMCONVI
MOVE MAP-UUMCTRL TO UUMCTRL(UUMCONVI)
PERFORM UUMAP-CONVERSE
MOVE UUREPLY TO MAP-UUREPLY
1270 END-PERFORM
.
1280
1290*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
UNLOCK-FILEDIV SECTION.

1330* GET FILEDIV('000000') EQUAL
MOVE LOW-VALUE TO UURKEY-FILEDIV OF FILEDIVU
STRING '000000' DELIMITED LOW-VALUE INTO UUR-WEB-CODE OF
FILEDIVU
MOVE 'EQUAL' TO UUFIO-PROCESS
PERFORM UUFIO-FILEDIV
MOVE UUFIO-STATUS TO FILEDIV-UUFIO-STATUS
1340 IF FILEDIV NOT = 'FOUND'
1350 STRING 'ERROR UNLOCKING FILEDIV' UUNULLS DELIMITED SIZE
INTO MESSAGEU
1360 PERFORM ERROR-MAP
1370 END-IF
1380 MOVE LOW-VALUE TO USER-STAMP
1390 MOVE LOW-VALUE TO DATE-STAMP
1400 MOVE LOW-VALUE TO TIME-STAMP
1410* UPDATE FILEDIV
MOVE 'UPDATE' TO UUFIO-PROCESS
PERFORM UUFIO-FILEDIV
MOVE UUFIO-STATUS TO FILEDIV-UUFIO-STATUS
.
1430*
/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
HOUSEKEEPING SECTION.
1470*
* SCREEN / MAP
INITIALIZE MAP-UUREPLY
MOVE 'SCREIA1' TO MAP-UUMAPNAME
MOVE 'SCREI1M' TO MAP-UUBMSNAME
*
1490*
1510*
1530*
1570*
1610 MOVE 6 TO N6
1620*
STRING 'INTF' UUNULLS DELIMITED SIZE INTO INTF-SUBNAME
1640 STRING 'SEUID' UUNULLS DELIMITED SIZE INTO INTF-RESNAME
PERFORM UUCALL-INTF-INTFAC
MOVE UULSTAT TO INTF
1660 MOVE INTF-USBUFAREA(1:5) TO SECTIONU
1670 MOVE INTF-USBUFAREA(17:4) TO LOGID
1680 PERFORM UUGET-DATE
STRING '20' UUDATE(1:2) UUDATE(4:2) UUDATE(7:2) DELIMITED
LOW-VALUE UUNULLS DELIMITED SIZE INTO TODAY
1690 PERFORM UUGET-TIME
MOVE UUTIME TO STIME
1700*
.
/*****************************************************************
* *
* AUXILIARY SECTIONS - MAP/FILE RECORD EDITINGS *
* *
******************************************************************

* MAP EDITING ROUTINES

UUMEDIT-BEFORE SECTION.
EVALUATE UUMEDITNAM
WHEN 'SCREIA1'
PERFORM UUMBEF-SCREIA1
WHEN OTHER
MOVE 'UUPERROR' TO UUPROGNAM
MOVE SPACE TO UUERRORMSG
STRING 'UNKNOWN MAP-EDITS: ' UUMEDITNAM DELIMITED SIZE
INTO UUERRORMSG
GO TO UUEXIT
END-EVALUATE
.
UUMEDIT-AFTER SECTION.
EVALUATE UUMEDITNAM
WHEN 'SCREIA1'
PERFORM UUMAFT-SCREIA1
END-EVALUATE
.
UUMEDIT-CLEAR SECTION.
EVALUATE UUMEDITNAM
WHEN 'SCREIA1'
PERFORM UUMCLR-SCREIA1
END-EVALUATE
.
*---MAP/SCREIA1/SCREI1M------------------------------------------*
COPY SCREI1ME REPLACING ==(P)== BY ====.

/ FILE/INTERFACE EDITING ROUTINES

*---INTF/INTFAC/IIMP---------------------------------------------*

COPY INTFACE REPLACING ==(P)== BY ==INTF-==
==(LVL)== BY ====
==(LVA)== BY ==(UUI000)==.
/---FILEDIV/FILEDIV/FILEDIV--------------------------------------*
COPY FILEDIE REPLACING ==(P)== BY ====
==(LVL)== BY ====
==(LVA)== BY ==(UUI000)==.
/*****************************************************************
* *
* COMMON SYSTEM ROUTINES *
* *
******************************************************************
*---SEGMENTED LABEL UN/STACKING----------------------------------*
COPY UUPXSTAC.
*---MAP CONVERSE-------------------------------------------------*
COPY UUPXCONV.
/---DATE/TIME----------------------------------------------------*
COPY UUPXDATI.
/---CALL/LINK----------------------------------------------------*
COPY UUPXLINK.
/---INPUT/OUTPUT/STATUS------------------------------------------*
COPY UUPXFINO.
** END OF PROGRAM **