Sie sind auf Seite 1von 9

000100 IDENTIFICATION DIVISION.

000200 PROGRAM-ID.
PGDPC10.
000300
*================================================================*
*
MODIFICATION HISTORY
*
*
====================
*
*================================================================*
* MODIFIER NAME
DESCRIPTION
*
* DATE MODIFIED
*
* ****************************************************************
ML1007* SAKTHIVEL.T.M
ADDED NEW TABLE ENTRIES FOR V1TGAWGR,
*
ML1007* 11-OCT-2007
V1TGAWCF,V1TGAWCS,V1TGAWOO,V1TGAALS,
*
ML1007*
V1TGACLS,V1TGAWEF,V1TGADFC,V1TGASOT,
*
022608*
V1TGASOS,V1TGAPLS,V1TGATDS,V1TGANAP,
*
022608*
V1TGAPAT,V1TGALIA,V1TGAACF TO THE PGDB
*
022608*
SCREEN TO BROWSE ROWS OF THESE TABLES.
*
FD1106*
*
FD1106* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGASPX
*
FD1106* 06-Nov-2009
*
FD1113*
*
FD1113* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGABHA
*
FD1113* 13-Nov-2009
*
FD1120*
*
FD1120* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGAPPA
*
FD1120* 20-Nov-2009
*
FD1130*
*
FD1130* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGAPPT
*
FD1130* 30-Nov-2009
*
FD1201*
*
FD1201* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGAPRE
*
FD1201* 01-Dec-2009
*
FD1202*
*
FD1202* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGANAC
*
FD1202* 02-Dec-2009
*
FD1216*
*
FD1216* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGANXC
*
FD1216* 16-Dec-2009
*
FD1228*
*
FD1228* F D'Agosto
ADDED NEW TABLE ENTRIES FOR V1TGANXC
*
FD1228* 28-Dec-2009
*
*================================================================*
000400 DATA DIVISION.
000500 WORKING-STORAGE SECTION.
000600
000700 01 FILLER
PIC X(16) VALUE
000800
'PGDPC10 WS ---->'.
000900
001000 01 WS-BINARY-DATA.
001100
05 WS-RESP
PIC S9(9) BINARY.
001200
05 WS-PW-NUM
PIC S9(9) BINARY.
001100
05 WS-CA-LENGTH
PIC S9(4) BINARY VALUE +2000.
001200
05 WS-INDEX
PIC S9(4) BINARY VALUE +1.
001500
05 WS-CHAR-LOC
PIC S9(4) BINARY.
001600
05 WS-END-LOC
PIC S9(4) BINARY.
001300
001400 01 WS-CHAR-DATA.
001500
05 WS-PROGRAM-NAME
PIC X(08) VALUE 'PGDPC10 '.
001500
05 WS-ERROR-CODE-X.
001600
10 WS-ERROR-CODE
PIC 9(08).
002200
05 WS-FIELD
PIC X(08).

002300
002400
002500
002600
002700
002800
002900
003000
003100
001700
003300 01
003400
003500
003600
003700
003800
003900
004000
004100
004200
004300
004400
004500
004600
004700
004800
004900
005000
005100
005200
 NNNNNN'.
005300
005400
005500
005600
005700
001800 01
005900
001900
002000
002100
006300 01
006400
006500
006600
006700
006800
006900
007000
001900 01
002000
002000
002100
002200
002300
002400
002500
002600
002700
002800

05 WS-ENCRYPT-PASSWD.
10 WS-HDR-NBR
10 FILLER
05 WS-ENCRYPT-PASSWD-NUM
WS-ENCRYPT-PASSWD
05 WS-WEIGHT-X
' 
 
05 FILLER REDEFINES
10 WS-FACTOR

PIC 9(02).
PIC X(06).
REDEFINES
PIC 9(08).
PIC X(32) VALUE
'.
WS-WEIGHT-X.
PIC S9(09) COMP OCCURS 8 TIMES.

WS-BYTE-CRUNCH-AREA.
05 WS-NUM
PIC S9(04) COMP.
05 FILLER REDEFINES
WS-NUM.
10 FILLER
PIC X(01).
10 WS-BYTE-2
PIC X(01).
05 WS-TRT-TABLE-VALUE.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
'NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN'.
10 FILLER
PIC X(32) VALUE
NNNNNNN
'N
10 FILLER
PIC X(32) VALUE
'NN
 NNNNNN&-/NNNNNN'.
05 FILLER REDEFINES
WS-TRT-TABLE-VALUE.
10 WS-TRT-VALUE
PIC X(01) OCCURS 256 TIMES.
WS-SWITCHES.
05 WS-PW-SW
05 WS-LOOP-DONE-SW
88 LOOP-DONE

PIC X(01) VALUE 'N'.


PIC X(01) VALUE 'N'.
VALUE 'Y'.

TGA-ROLLOUT-CONTROL-RECORD.
05 TGA-RCF-OFFICE
PIC X(03).
05 TGA-RCF-MASTER-SYSTEM
PIC X(01).
05 TGA-RCF-UPDATE-SYSTEM
PIC X(01).
05 TGA-RCF-MASTER-SYSTEM-DATE PIC X(08).
05 TGA-RCF-UPDATE-SYSTEM-DATE PIC X(08).
05 FILLER
PIC X(50).
WS-PGM-TABLE.
05 WS-PGM-ITEMS.
10 FILLER
10 FILLER
10 FILLER
10 FILLER
10 FILLER
10 FILLER
10 FILLER
10 FILLER
10 FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

'V1TGAAPG11
'V1TGAPTH12
'V1TGAPHA13
'V1TGAFHH14
'V1TGAMCH15
'V1TGAACP16
'V1TGACLP17
'V1TGAFCA18
'V1TGACTP19

'.
'.
'.
'.
'.
'.
'.
'.
'.

002900
003000
003100
003200
003300
003400
003500
003600
003700
009100
004400
004000
004100
004200
004300
004400
004500
004600
004700
004800
010200
010310
010410
010500
005300
005400
005500
005600
005700
011100
005900
006000
006100
006200
006300
006400
006500
006600
006700
006800
006900
007000
007100
007200
007300
007400
007500
007600
007700
007800
007900

007900
008000
008100
008200
014020

10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10

FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER
FILLER

PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC
PIC

X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)
X(11)

VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE
VALUE

'V1TGAISC20 '.
'V1TGAIVE21 '.
'V1TGAIVC22 '.
'V1TGAFPX23 '.
'V1TGAFPN24 '.
'V1TGACIE25 '.
'V1TGABCP26 '.
'V1TGACAD27 '.
'V1TGAACO28 '.
'V1TGAREL29 '.
'V1TGACLL30 '.
'V1TGACBA31 '.
'V1TGAISA32 '.
'V1TGAISP33 '.
'V1TGAFPE34 '.
'V1TGAIVF35 '.
'V1TGAISI36 '.
'V1TGAISN37 '.
'V1TGAIVN38 '.
'V1TGAIVI39 '.
'V1TGABCL40 '.
'V1TGAEAC41 '.
'V1TGAWCG42 '.
'V1TGAWML43 '.
'V1TGAHHG44 '.
'V1TGAGSC45 '.
'V1TGAFAL46 '.
'V1TGAHHN47 '.
'V1TGARSK48 '.
'V1TGAHAU49 '.
'V1TGAFFN50 '.
'V1TGAISG51 '.
'V1TGACIS52 '.
'V1TGAESS53 '.
'V1TGACIN54 '.
'V1TGARIS55 '.
'V1TGAEQY56 '.
'V1TGAERS57 '.
'V1TGAIAA58 '.
'V1TGACEF59 '.
'V1TGAROA60 '.
'V1TGAROP61 '.
'V1TGAERL62 '.
'V1TGAEPL63 '.
'V1TGAEER64 '.
'V1TGAEEA65 '.
'V1TGAMFS66 '.
'V1TGAMFO67 '.
'V1TGAIMS68 '.
'V1TGAMPF69 '.
'V1TGAACC70 '.
'V1TGALAB71 '.
'TBFCDCAQ72 '.
'V1TGADVL73 '.
'V1TGAHDL74 '.
'V1LKUULC201'.
'V1AMBSOP202'.
'V1TGABAP203'.
'V1ACCCRF204'.
'V1TGAECA75 '.

01402000

014030
10 FILLER
014040
10 FILLER
014050
10 FILLER
014051
10 FILLER
014111
10 FILLER
014114
10 FILLER
014117
10 FILLER
014051
10 FILLER
014120
10 FILLER
014122
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
022608
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
ML1007
10 FILLER
FD1106
10 FILLER
FD1113
10 FILLER
FD1118
10 FILLER
FD1130
10 FILLER
FD1201
10 FILLER
FD1202
10 FILLER
FD1216
10 FILLER
FD1228
10 FILLER
003100
05 FILLER REDEFINES
FD1106
10 WS-PGM-LIST
003300
15 WS-VIEW-NAME
008600
15 WS-PROG-SUFX
003500
001800 01 WS-COMMAREA.
003700
05 WS-MAX-PAGE-NO
003800
05 WS-CURR-PAGE-NO
001900
05 WS-MAX-TSQ-ITEM
002000
05 WS-CURR-TSQ-ITEM
002100
05 WS-HEX-ON-SW
002200
05 WS-DATA-EXISTS-SW
002300
05 WS-TABLE-IN
002400
05 WS-KEY-IN
015300
05 WS-PW-STATUS
015400
05 FILLER
010600
05 WS-TABLE-DATA
010600
05 WS-DISPLAYED-DATA
015700
10 WS-DISPLAYED-ROWS
010800
15 WS-BEGIN-CURPOS
010900
15 WS-END-CURPOS
011000
15 WS-PROGRAM-SFX
011100
15 WS-TABLE-SFX
011200
15 WS-DISP-KEY-X
016300
10 FILLER
002600
002700
COPY PGDBS0X.

PIC X(11) VALUE 'V1TGAINC76 '.


PIC X(11) VALUE 'V1TGANAL81 '.
PIC X(11) VALUE 'V1TGAWGR82 '.
PIC X(11) VALUE 'V1TGAMAC80 '.
PIC X(11) VALUE 'V1TGACPL83 '.
PIC X(11) VALUE 'V1TGAPCL84 '.
PIC X(11) VALUE 'V1TGACNM85 '.
PIC X(11) VALUE 'V1TGABRH77 '.
PIC X(11) VALUE 'V1TGASRL86 '.
PIC X(11) VALUE 'V1TGAPPP87 '.
PIC X(11) VALUE 'V1TGAWCF88 '.
PIC X(11) VALUE 'V1TGAWCS89 '.
PIC X(11) VALUE 'V1TGAWOO90 '.
PIC X(11) VALUE 'V1TGAALS91 '.
PIC X(11) VALUE 'V1TGACLS92 '.
PIC X(11) VALUE 'V1TGAWEF93 '.
PIC X(11) VALUE 'V1TGADFC94 '.
PIC X(11) VALUE 'V1TGASOT95 '.
PIC X(11) VALUE 'V1TGASOS96 '.
PIC X(11) VALUE 'V1TGAPLS97 '.
PIC X(11) VALUE 'V1TGATDS98 '.
PIC X(11) VALUE 'V1TGANAP99 '.
PIC X(11) VALUE 'V1TGAPAT107'.
PIC X(11) VALUE 'V1TGALIA108'.
PIC X(11) VALUE 'V1TGAACF109'.
PIC X(11) VALUE 'V1TGASPX24 '.
PIC X(11) VALUE 'V1TGABHA205'.
PIC X(11) VALUE 'V1TGAPPA206'.
PIC X(11) VALUE 'V1TGAPPT207'.
PIC X(11) VALUE 'V1TGAPRE208'.
PIC X(11) VALUE 'V1TGANAC209'.
PIC X(11) VALUE 'V1TGANXC210'.
PIC X(11) VALUE 'V1TGANBP211'.
WS-PGM-ITEMS.
OCCURS 102 TIMES.
PIC X(08).
PIC X(03).
PIC S9(04) COMP.
PIC S9(04) COMP.
PIC S9(04) COMP.
PIC S9(04) COMP.
PIC X(01).
PIC X(01).
PIC X(08).
PIC X(44).
PIC X(01).
PIC X(37).
PIC X(1900).
REDEFINES WS-TABLE-DATA.
OCCURS 46 TIMES.
PIC S9(04) COMP.
PIC S9(04) COMP.
PIC X(02).
PIC X(03).
PIC X(15).
PIC X(796).

01403000
01404006
01405006
01405104
01411100
01411400
01411700
01405104
01412000
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202
01412202

034300/
034400 LINKAGE SECTION.
012900 01 DFHCOMMAREA
PIC X(2000).
035300/
035400 PROCEDURE DIVISION.
006500
035600 0000-PARA.
006700
035800
EXEC CICS HANDLE CONDITION
035900
ERROR (9999-ERROR)
036000
END-EXEC
036100
036200
IF EIBCALEN IS EQUAL
TO +0 THEN
017900
MOVE '0'
TO WS-PW-STATUS
018000
MOVE -1
TO PASSWDL
014300
PERFORM 1000-SEND-AND-RETURN THRU
014400
1000-SEND-AND-RETURN-EXIT
036900
ELSE
037000
MOVE DFHCOMMAREA (1:EIBCALEN)
037100
TO WS-COMMAREA (1:EIBCALEN)
037200
END-IF
037300
037400
EVALUATE EIBAID
037500
037600
WHEN ''''
015300
IF WS-DATA-EXISTS-SW IS EQUAL TO '2' THEN
015400
IF EIBCPOSN IS NOT LESS THAN
015500
WS-BEGIN-CURPOS (1) THEN
015600
PERFORM 2000-DIRECT-TRANSFER THRU
015700
2000-DIRECT-TRANSFER-EXIT
015800
END-IF
015900
END-IF
019800
IF WS-PW-STATUS IS GREATER THAN '1' THEN
019900
EXEC CICS RECEIVE
020000
MAP
('PGDBM0X')
020100
MAPSET ('PGDBS0X')
020200
NOHANDLE
020300
END-EXEC
020400
020500
MOVE TABNMI
TO WS-TABLE-IN
020600
MOVE KEYVALI
TO WS-KEY-IN
020700
INSPECT WS-TABLE-IN REPLACING ALL '_' BY ' '
020800
ELSE
020900
EXEC CICS RECEIVE
021000
MAP
('PGDBM0P')
021100
MAPSET ('PGDBS0X')
021200
NOHANDLE
021300
END-EXEC
038200
021500
PERFORM 0100-VERIFY-PASSWD THRU
021600
0100-VERIFY-PASSWD-EXIT
021700
IF WS-PW-STATUS IS GREATER THAN '1' THEN
021800
MOVE '0'
TO WS-HEX-ON-SW
021900
MOVE '0'
TO WS-DATA-EXISTS-SW
022000
MOVE -1
TO TABNML
022100
MOVE 'V1TGAAPG' TO TABNMO
022200
PERFORM 1000-SEND-AND-RETURN THRU
022300
1000-SEND-AND-RETURN-EXIT
022400
ELSE
022500
MOVE -1
TO PASSWDL

022600
MOVE '
*** Enter Valid Pa
022700'ssword ***'
022800
TO MSGPO
022900
MOVE '8'
TO MSGPA
038600
023100
PERFORM 1000-SEND-AND-RETURN THRU
023200
1000-SEND-AND-RETURN-EXIT
023300
END-IF
023400
END-IF
023500
038700***
CLEAR KEY, PF3 KEY OR PF15 KEY, END TRANSACTION
038800
WHEN '_'
038900
WHEN '3'
039000
WHEN 'C'
039100
MOVE 'PGDB ENDED'
TO MSGO
039200
EXEC CICS SEND
039300
FROM (MSGO)
039400
LENGTH (LENGTH OF MSGO)
039500
ERASE
039600
END-EXEC
039700
039800
EXEC CICS
039900
RETURN
040000
END-EXEC
040100
040200
END-EVALUATE
040300
015000
MOVE '
*** Enter Valid Table or View Name
015100' ***'
TO MSGO
015200
MOVE '8'
TO MSGA
015200
012600
MOVE +1
TO WS-INDEX
FD1106
PERFORM 102 TIMES
012800
IF WS-TABLE-IN IS EQUAL TO WS-VIEW-NAME (WS-INDEX) THEN
012900
MOVE WS-PROG-SUFX (WS-INDEX)
018000
TO WS-PROGRAM-NAME (6:3)
041400
EXEC CICS XCTL
013200
PROGRAM (WS-PROGRAM-NAME)
041600
COMMAREA (WS-COMMAREA)
020700
LENGTH (WS-CA-LENGTH)
041800
NOHANDLE
041900
END-EXEC
016400
MOVE '
*** View not yet implement
016500'ed ***'
TO MSGO
016700
MOVE '8'
TO MSGA
013700
END-IF
013800
ADD +1
TO WS-INDEX
013900
END-PERFORM
042000
027500
MOVE -1
TO TABNML
021600
PERFORM 1000-SEND-AND-RETURN THRU
021700
1000-SEND-AND-RETURN-EXIT
042800
042900
GOBACK.
043000
043100 0000-PARA-EXIT.
043200
EXIT.
043300/
028400 0100-VERIFY-PASSWD.
028500

028600
MOVE PASSWDI
TO WS-FIELD
028700
PERFORM 0110-ENCRYPT-PASSWD THRU
028800
0110-ENCRYPT-PASSWD-EXIT
028900
IF WS-PW-SW IS EQUAL TO 'Y' THEN
029000
MOVE 'KDP'
TO TGA-RCF-OFFICE
029100
EXEC CICS READ
029200
FILE ('PGGKS004')
029300
INTO (TGA-ROLLOUT-CONTROL-RECORD)
029400
RIDFLD (TGA-RCF-OFFICE)
029500
RESP (WS-RESP)
029600
EQUAL
029700
END-EXEC
029800
029900
IF WS-RESP IS EQUAL TO DFHRESP(NORMAL) THEN
030000
EVALUATE WS-ENCRYPT-PASSWD
030100
WHEN TGA-RCF-MASTER-SYSTEM-DATE
030200
MOVE '2'
TO WS-PW-STATUS
030300
WHEN TGA-RCF-UPDATE-SYSTEM-DATE
030400
MOVE '3'
TO WS-PW-STATUS
030500
WHEN OTHER
030600
MOVE '1'
TO WS-PW-STATUS
030700
END-EVALUATE
030800
END-IF
030900
END-IF.
031000
031100 0100-VERIFY-PASSWD-EXIT.
031200
EXIT.
031300/
031400 0110-ENCRYPT-PASSWD.
031500
031600
MOVE 'N'
TO WS-PW-SW
031700
MOVE +8
TO WS-CHAR-LOC
031800
MOVE +0
TO WS-END-LOC
031900
MOVE 'N'
TO WS-LOOP-DONE-SW
032000
PERFORM UNTIL LOOP-DONE
032100
IF WS-FIELD (WS-CHAR-LOC:1) IS GREATER THAN ' ' THEN
032200
MOVE WS-CHAR-LOC
TO WS-END-LOC
032300
SET LOOP-DONE
TO TRUE
032400
END-IF
032500
SUBTRACT +1 FROM WS-CHAR-LOC
032600
IF WS-CHAR-LOC IS LESS THAN +3 THEN
032700
SET LOOP-DONE
TO TRUE
032800
END-IF
032900
END-PERFORM
033000
033100
MOVE +0
TO WS-PW-NUM
033200
IF WS-END-LOC IS GREATER THAN +3 THEN
033300
MOVE WS-END-LOC
TO WS-CHAR-LOC
033400
MOVE +0
TO WS-NUM,
033500
WS-INDEX
033600
PERFORM WS-END-LOC TIMES
033700
MOVE WS-FIELD (WS-CHAR-LOC:1)
033800
TO WS-BYTE-2
033900
ADD +1
TO WS-NUM
034000
SUBTRACT +1
FROM WS-CHAR-LOC
034100
MOVE WS-TRT-VALUE (WS-NUM)
034200
TO WS-BYTE-2
034300
IF WS-BYTE-2 IS EQUAL TO 'N' THEN
034400
MOVE 'E'
TO WS-PW-SW
034500
ELSE

034600
ADD +1
TO WS-INDEX
034700
COMPUTE WS-PW-NUM = WS-PW-NUM + WS-NUM *
034800
WS-FACTOR (WS-INDEX)
034900
END-IF
035000
END-PERFORM
035100
IF WS-PW-SW IS NOT EQUAL TO 'E' THEN
035200
MOVE 'Y'
TO WS-PW-SW
035300
MOVE WS-PW-NUM
TO WS-ENCRYPT-PASSWD-NUM
035400
DIVIDE WS-PW-NUM BY +92 GIVING WS-INDEX
035500
REMAINDER WS-NUM
035600
COMPUTE WS-NUM
= WS-NUM + WS-END-LOC
035700
MOVE WS-NUM
TO WS-HDR-NBR
035800
END-IF
035900
END-IF.
036000
036100 0110-ENCRYPT-PASSWD-EXIT.
036200
EXIT.
036300/
022400 1000-SEND-AND-RETURN.
043500
036600
IF WS-PW-STATUS IS GREATER THAN '1' THEN
036700
EXEC CICS SEND
036800
MAP
('PGDBM0X')
036900
MAPSET ('PGDBS0X')
037000
FROM (PGDBM0XO)
037100
ERASE
037200
CURSOR
037300
END-EXEC
037400
ELSE
037500
EXEC CICS SEND
037600
MAP
('PGDBM0P')
037700
MAPSET ('PGDBS0X')
037800
FROM (PGDBM0PO)
037900
ERASE
038000
CURSOR
038100
END-EXEC
038200
END-IF
044400
044500
EXEC CICS RETURN
044600
TRANSID ('PGDB')
044700
COMMAREA (WS-COMMAREA)
023900
LENGTH (WS-CA-LENGTH)
044900
END-EXEC.
045000
024100 1000-SEND-AND-RETURN-EXIT.
045200
EXIT.
045300/
024400 2000-DIRECT-TRANSFER.
024500
039500
MOVE 'N'
TO WS-LOOP-DONE-SW
024600
MOVE +1
TO WS-INDEX
024700
PERFORM UNTIL LOOP-DONE
024800
IF WS-END-CURPOS (WS-INDEX) IS NOT LESS THAN EIBCPOSN THEN
024900
IF WS-BEGIN-CURPOS (WS-INDEX)
025000
IS NOT GREATER THAN EIBCPOSN THEN
025100
MOVE WS-PROGRAM-SFX (WS-INDEX)
025200
TO WS-PROGRAM-NAME (6:2)
025300
MOVE WS-DISP-KEY-X (WS-INDEX)
025400
TO WS-KEY-IN
025500
MOVE 'V1TGA '
TO WS-TABLE-IN

025600
MOVE WS-TABLE-SFX (WS-INDEX)
025700
TO WS-TABLE-IN (6:3)
025800
EXEC CICS XCTL
025900
PROGRAM (WS-PROGRAM-NAME)
026000
COMMAREA (WS-COMMAREA)
026200
LENGTH (WS-CA-LENGTH)
026200
NOHANDLE
026300
END-EXEC
026400
ELSE
026500
SET LOOP-DONE
TO TRUE
026600
END-IF
026700
END-IF
026800
ADD +1
TO WS-INDEX
026900
IF WS-INDEX IS GREATER THAN +45 THEN
027000
SET LOOP-DONE
TO TRUE
027100
END-IF
027200
END-PERFORM.
027300
027400 2000-DIRECT-TRANSFER-EXIT.
027500
EXIT.
027600/
045400 9999-ERROR.
045500
045600
MOVE EIBRESP
TO WS-ERROR-CODE
045700
MOVE 'NON-RECOVERABLE ERROR - LAST EIBRESP '
045800
TO MSGO
045900
MOVE WS-ERROR-CODE-X
TO MSGO(38:8)
046000
MOVE '/'
TO MSGO(47:1)
046100
EXEC CICS SEND
046200
FROM (MSGO)
046300
LENGTH (LENGTH OF MSGO)
046400
ERASE
046500
END-EXEC
046600
046700
EXEC CICS
046800
RETURN
046900
END-EXEC
047000
GOBACK.
047100
047200 9999-ERROR-EXIT.
047300
EXIT.
047400**************************** END OF SOURCE ***********************

Das könnte Ihnen auch gefallen