Add RCSIGNON, its map SIGNON and the corresponding copybook and map xml to version control.
This commit is contained in:
148
CICS/RCSIGNON.cob
Normal file
148
CICS/RCSIGNON.cob
Normal file
@ -0,0 +1,148 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. RCSIGNON.
|
||||
ENVIRONMENT DIVISION.
|
||||
CONFIGURATION SECTION.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
|
||||
01 WS-RESP PIC S9(8) COMP.
|
||||
01 WS-RESP2 PIC S9(8) COMP.
|
||||
01 WS-USER PIC X(56) VALUE SPACES.
|
||||
01 WS-PASS PIC X(50).
|
||||
01 WS-USERID PIC X(8) VALUE SPACES.
|
||||
|
||||
*To generate the xml and copybook of the logon screen
|
||||
* rcbms -GenBasedSymbolicMap -Language=cobol SIGNON.bms
|
||||
COPY SIGNON.
|
||||
|
||||
* COPY DFHBMSCA.
|
||||
* COPY DFHAID.
|
||||
COPY DFHRESP.
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 DFHCOMMAREA.
|
||||
05 LK-DATA PIC X(1).
|
||||
PROCEDURE DIVISION.
|
||||
|
||||
DISPLAY '=== Hello!'.
|
||||
|
||||
IF EIBCALEN = 0
|
||||
EXEC CICS
|
||||
GETMAIN SET(ADDRESS OF DFHCOMMAREA)
|
||||
FLENGTH(LENGTH OF DFHCOMMAREA)
|
||||
END-EXEC
|
||||
DISPLAY '=== Sending Map'
|
||||
MOVE 0 TO LK-DATA
|
||||
PERFORM SEND-MAP
|
||||
END-IF.
|
||||
|
||||
IF LK-DATA = 0
|
||||
DISPLAY '=== Receiving Map'
|
||||
MOVE 1 TO LK-DATA
|
||||
PERFORM REC-MAP
|
||||
END-IF.
|
||||
|
||||
IF LK-DATA = 1
|
||||
DISPLAY '=== New user logged on'
|
||||
MOVE 2 TO LK-DATA
|
||||
PERFORM SHOW-ID
|
||||
END-IF.
|
||||
|
||||
DISPLAY "=== You should never get here! (" LK-DATA ")".
|
||||
GOBACK.
|
||||
|
||||
SEND-MAP.
|
||||
EXEC CICS
|
||||
SEND MAP('LOGONM') MAPSET('SIGNON')
|
||||
ERASE
|
||||
RESP(WS-RESP)
|
||||
RESP2(WS-RESP2)
|
||||
END-EXEC
|
||||
IF WS-RESP NOT = DFHRESP(NORMAL)
|
||||
*Should be replaced with better error-handling
|
||||
DISPLAY '=== SEND FAILED'
|
||||
GOBACK
|
||||
END-IF
|
||||
EXEC CICS
|
||||
RETURN TRANSID('logo')
|
||||
COMMAREA(DFHCOMMAREA)
|
||||
LENGTH(LENGTH OF DFHCOMMAREA)
|
||||
END-EXEC.
|
||||
|
||||
REC-MAP.
|
||||
EXEC CICS
|
||||
RECEIVE MAP('LOGONM') MAPSET('SIGNON')
|
||||
RESP(WS-RESP)
|
||||
RESP2(WS-RESP2)
|
||||
END-EXEC
|
||||
IF WS-RESP NOT = DFHRESP(NORMAL)
|
||||
*Should be replaced with better error-handling
|
||||
DISPLAY '=== RECEIVE FAILED'
|
||||
EXEC CICS RETURN END-EXEC
|
||||
END-IF
|
||||
|
||||
MOVE USERNO TO WS-USER
|
||||
MOVE PASSWO TO WS-PASS
|
||||
* Remove from possible mem dumps
|
||||
MOVE SPACES TO PASSWO
|
||||
|
||||
DISPLAY '=== Signon'
|
||||
|
||||
EXEC CICS SIGNON
|
||||
* USERID('LETMEIN0')
|
||||
USERID(' ')
|
||||
OIDCARD(WS-USER)
|
||||
PHRASE(WS-PASS)
|
||||
PHRASELEN(50)
|
||||
RESP(WS-RESP)
|
||||
RESP2(WS-RESP2)
|
||||
END-EXEC
|
||||
|
||||
* Remove from possible mem dumps.
|
||||
MOVE SPACES TO WS-PASS
|
||||
|
||||
IF WS-RESP = DFHRESP(NORMAL)
|
||||
DISPLAY "=== Signon success!"
|
||||
ELSE
|
||||
*Should be replaced with better error-handling
|
||||
DISPLAY "=== Signon failed!"
|
||||
MOVE ZERO TO LK-DATA
|
||||
|
||||
MOVE 'Login unsuccessful, please try again.'
|
||||
TO INFMSI
|
||||
|
||||
EXEC CICS
|
||||
SEND MAP('LOGONM') MAPSET('SIGNON')
|
||||
ERASE
|
||||
RESP(WS-RESP)
|
||||
RESP2(WS-RESP2)
|
||||
END-EXEC
|
||||
|
||||
EXEC CICS
|
||||
RETURN TRANSID('logo')
|
||||
COMMAREA(DFHCOMMAREA)
|
||||
LENGTH(LENGTH OF DFHCOMMAREA)
|
||||
END-EXEC
|
||||
END-IF
|
||||
|
||||
DISPLAY "=== Switching user"
|
||||
EXEC CICS
|
||||
SEND MAP('SUXESS') MAPSET('SIGNON')
|
||||
ERASE
|
||||
RESP(WS-RESP)
|
||||
RESP2(WS-RESP2)
|
||||
END-EXEC
|
||||
EXEC CICS
|
||||
RETURN TRANSID('DTS')
|
||||
* COMMAREA(DFHCOMMAREA)
|
||||
* LENGTH(LENGTH OF DFHCOMMAREA)
|
||||
END-EXEC.
|
||||
|
||||
SHOW-ID.
|
||||
EXEC CICS ASSIGN USERID(WS-USERID) END-EXEC
|
||||
DISPLAY '=== CICS USERID:' WS-USERID
|
||||
EXEC CICS LINK PROGRAM('DTSCDRV') END-EXEC
|
||||
GOBACK.
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user