Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- IDENTIFICATION DIVISION.
- PROGRAM-ID. DURU16P3.
- AUTHOR. JOSHUA ALCOTT-GRIFFIN.
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- SOURCE-COMPUTER. RS-6000.
- OBJECT-COMPUTER. RS-6000.
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- COPY 'DURU161'.
- COPY 'STUFILE'.
- COPY 'STUEFILE'.
- 01 WS-STUNUM-LEN PIC 9 VALUE 7.
- 01 WS-STUNUM PIC X(7).
- 01 WS-SAVE.
- 05 WS-SAVE-SW PIC X VALUE "I".
- 05 WS-SAVE-STUDENT.
- 10 WS-SAVE-NAME PIC X(20).
- 10 WS-SAVE-COURSE-1A PIC X(4).
- 10 WS-SAVE-COURSE-1B PIC X(4).
- 10 WS-SAVE-COURSE-2A PIC X(4).
- 10 WS-SAVE-COURSE-2B PIC X(4).
- 10 WS-SAVE-COURSE-3A PIC X(4).
- 10 WS-SAVE-COURSE-3B PIC X(4).
- 10 WS-SAVE-COURSE-4A PIC X(4).
- 10 WS-SAVE-COURSE-4B PIC X(4).
- 10 WS-SAVE-COURSE-5A PIC X(4).
- 10 WS-SAVE-COURSE-5B PIC X(4).
- 10 WS-SAVE-ADD-1 PIC X(20).
- 10 WS-SAVE-ADD-2 PIC X(20).
- 10 WS-SAVE-ADD-3 PIC X(20).
- 10 WS-SAVE-ZIP-1 PIC X(3).
- 10 WS-SAVE-ZIP-2 PIC X(3).
- 10 WS-SAVE-PHONE-1 PIC X(3).
- 10 WS-SAVE-PHONE-2 PIC X(3).
- 10 WS-SAVE-PHONE-3 PIC X(4).
- 01 WS-SAVE-LENGTH PIC S9(4) COMP VALUE 136.
- COPY 'DFHBMSCA'.
- LINKAGE SECTION.
- 01 DFHCOMMAREA PIC X(255).
- PROCEDURE DIVISION.
- 000-START-LOGIC.
- EXEC CICS HANDLE CONDITION
- MAPFAIL(100-FIRST-TIME)
- NOTFND (300-STUDENT-NOTFND)
- END-EXEC.
- EXEC CICS HANDLE AID
- PF9(999-EXIT)
- END-EXEC
- IF EIBCALEN = 3
- GO TO 100-FIRST-TIME
- END-IF.
- EXEC CICS RECEIVE
- MAP('MAP1')
- MAPSET('DURU161')
- END-EXEC.
- GO TO 200-MAIN-LOGIC.
- 100-FIRST-TIME.
- MOVE LOW-VALUES TO MAP1O.
- EXEC CICS SEND
- MAP('MAP1')
- MAPSET('DURU161')
- ERASE
- END-EXEC.
- EXEC CICS RETURN
- TRANSID('U163')
- END-EXEC.
- 200-MAIN-LOGIC.
- MOVE DFHCOMMAREA TO WS-SAVE-STUDENT.
- IF WS-SAVE-SW = "I" THEN
- PERFORM 240-STUDENT-INQUIRY
- ELSE IF WS-SAVE-SW = "U" THEN
- PERFORM 250-STUDENT-UPDATE
- END-IF.
- 240-STUDENT-INQUIRY.
- MOVE STUNUMI TO WS-STUNUM.
- IF STUNUMI = 'XXXXXXX' OR
- STUNUMI(1:5) = 'ABORT'
- EXEC CICS SEND
- CONTROL
- ERASE
- FREEKB
- END-EXEC
- EXEC CICS
- RETURN
- END-EXEC
- ELSE IF STUNUML IS LESS THAN WS-STUNUM-LEN
- GO TO 450-TOO-SHORT
- ELSE IF STUNUMI IS NOT NUMERIC
- GO TO 400-NOT-NUMERIC
- ELSE
- MOVE STUNUMI TO STU-NUMBER
- EXEC CICS READ
- FILE('STUFILE')
- RIDFLD(STU-KEY)
- INTO(STUFILE-RECORD)
- END-EXEC
- GO TO 500-STUDENT-INQUIRY-MOVES
- END-IF.
- 250-STUDENT-UPDATE.
- IF (STUNAMEI EQUAL TO WS-SAVE-NAME
- AND COURSE1AI EQUAL TO WS-SAVE-COURSE-1A
- AND COURSE1BI EQUAL TO WS-SAVE-COURSE-1B
- AND COURSE2AI EQUAL TO WS-SAVE-COURSE-2A
- AND COURSE2BI EQUAL TO WS-SAVE-COURSE-2B
- AND COURSE3AI EQUAL TO WS-SAVE-COURSE-3A
- AND COURSE3BI EQUAL TO WS-SAVE-COURSE-3B
- AND COURSE4AI EQUAL TO WS-SAVE-COURSE-4A
- AND COURSE4BI EQUAL TO WS-SAVE-COURSE-4B
- AND COURSE5AI EQUAL TO WS-SAVE-COURSE-5A
- AND COURSE5BI EQUAL TO WS-SAVE-COURSE-5B
- AND ADD1I EQUAL TO WS-SAVE-ADD-1
- AND ADD2I EQUAL TO WS-SAVE-ADD-2
- AND ADD3I EQUAL TO WS-SAVE-ADD-3
- AND ZIP1I EQUAL TO WS-SAVE-ZIP-1
- AND ZIP2I EQUAL TO WS-SAVE-ZIP-2
- AND PHONE1I EQUAL TO WS-SAVE-PHONE-1
- AND PHONE2I EQUAL TO WS-SAVE-PHONE-2
- AND PHONE3I EQUAL TO WS-SAVE-PHONE-3) THEN
- MOVE LOW-VALUES TO MAP1O
- MOVE 'NO DATA HAS CHANGED' TO MSGO
- GO TO 700-PREP-INQUIRY-MAP
- ELSE
- EXEC CICS LINK
- PROGRAM('DURU16PE')
- COMMAREA(STUEFILE)
- LENGTH(COMMAREA-LENGTH)
- END-EXEC
- IF (MSGE NOT EQUAL TO 'SUCCESS') THEN
- MOVE LOW-VALUES TO MAP1O
- MOVE MSGE TO MSGO
- PERFORM 999-PREP-UPDATE-MAP
- EXEC CICS SEND
- MAP('MAP1')
- MAPSET('DURU162')
- CURSOR
- END-EXEC
- EXEC CICS RETURN
- TRANSID('U163')
- COMMAREA(WS-SAVE)
- LENGTH(WS-SAVE-LENGTH)
- END-EXEC
- ELSE
- MOVE STUNUMI TO STU-NUMBER
- EXEC CICS READ
- FILE('STUFILE')
- RIDFLD(STU-KEY)
- INTO(STUFILE-RECORD)
- END-EXEC
- PERFORM 600-STUDENT-UPDATE-MOVES
- EXEC CICS REWRITE
- FILE('STUFILE')
- FROM(STUFILE-RECORD)
- END-EXEC
- MOVE 'I' TO WS-SAVE-SW
- EXEC CICS SEND
- MAP('MAP1')
- MAPSET('DURU161')
- CURSOR
- END-EXEC
- EXEC CICS RETURN
- TRANSID('U163')
- COMMAREA(WS-SAVE)
- LENGTH(WS-SAVE-LENGTH)
- END-EXEC
- END-IF
- END-IF.
- 300-STUDENT-NOTFND.
- MOVE LOW-VALUES TO MAP1O.
- MOVE WS-STUNUM TO STUNUMO.
- MOVE 'STUDENT RECORD WAS NOT FOUND' TO MSGO.
- EXEC CICS SEND
- MAP ('MAP1')
- MAPSET ('DURU161')
- ERASE
- END-EXEC.
- EXEC CICS RETURN
- TRANSID ('U163')
- END-EXEC.
- 400-NOT-NUMERIC.
- MOVE LOW-VALUES TO MAP1O.
- MOVE WS-STUNUM TO STUNUMO.
- MOVE 'STUDENT NUMBER IS NOT NUMERIC' TO MSGO
- EXEC CICS SEND
- MAP ('MAP1')
- MAPSET ('DURU161')
- ERASE
- END-EXEC.
- EXEC CICS RETURN
- TRANSID ('U163')
- END-EXEC.
- 450-TOO-SHORT.
- MOVE LOW-VALUES TO MAP1O.
- MOVE WS-STUNUM TO STUNUMO.
- MOVE 'STUDENT NUMBER IS TOO SHORT.(7)'TO MSGO.
- EXEC CICS SEND
- MAP ('MAP1')
- MAPSET ('DURU161')
- ERASE
- END-EXEC.
- EXEC CICS RETURN
- TRANSID ('U163')
- END-EXEC.
- 500-STUDENT-INQUIRY-MOVES.
- MOVE LOW-VALUES TO MAP1O.
- MOVE 'STUDENT RECORD FOUND' TO MSGO.
- MOVE STU-NUMBER OF STUFILE-RECORD TO STUNUMO.
- MOVE STU-NAME OF STUFILE-RECORD TO STUNAMEO, WS-SAVE-NAME.
- MOVE STU-COURSE-1A OF STUFILE-RECORD TO COURSE1AO,
- WS-SAVE-COURSE-1A.
- MOVE STU-COURSE-1B OF STUFILE-RECORD TO COURSE1BO,
- WS-SAVE-COURSE-1B.
- MOVE STU-COURSE-2A OF STUFILE-RECORD TO COURSE2AO,
- WS-SAVE-COURSE-2A.
- MOVE STU-COURSE-2B OF STUFILE-RECORD TO COURSE2BO,
- WS-SAVE-COURSE-2B.
- MOVE STU-COURSE-3A OF STUFILE-RECORD TO COURSE3AO,
- WS-SAVE-COURSE-3A.
- MOVE STU-COURSE-3B OF STUFILE-RECORD TO COURSE3BO,
- WS-SAVE-COURSE-3B.
- MOVE STU-COURSE-4A OF STUFILE-RECORD TO COURSE4AO
- WS-SAVE-COURSE-4A.
- MOVE STU-COURSE-4B OF STUFILE-RECORD TO COURSE4BO,
- WS-SAVE-COURSE-4B.
- MOVE STU-COURSE-5A OF STUFILE-RECORD TO COURSE5AO,
- WS-SAVE-COURSE-5A.
- MOVE STU-COURSE-5B OF STUFILE-RECORD TO COURSE5BO,
- WS-SAVE-COURSE-5B.
- MOVE STU-ADDRESS-1 OF STUFILE-RECORD TO ADD1O,
- WS-SAVE-ADD-1.
- MOVE STU-ADDRESS-2 OF STUFILE-RECORD TO ADD2O,
- WS-SAVE-ADD-2.
- MOVE STU-ADDRESS-3 OF STUFILE-RECORD TO ADD3O,
- WS-SAVE-ADD-3.
- MOVE STU-POSTAL-1 OF STUFILE-RECORD TO ZIP1O,
- WS-SAVE-ZIP-1.
- MOVE STU-POSTAL-2 OF STUFILE-RECORD TO ZIP2O,
- WS-SAVE-ZIP-2.
- MOVE STU-PHONE-1 OF STUFILE-RECORD TO PHONE1O,
- WS-SAVE-PHONE-1.
- MOVE STU-PHONE-2 OF STUFILE-RECORD TO PHONE2O,
- WS-SAVE-PHONE-2.
- MOVE STU-PHONE-3 OF STUFILE-RECORD TO PHONE3O,
- WS-SAVE-PHONE-3.
- PERFORM 999-PREP-UPDATE-MAP.
- 600-STUDENT-UPDATE-MOVES.
- MOVE LOW-VALUES TO MAP1O.
- MOVE STUNUMI TO STU-NUMBER OF STUFILE-RECORD.
- MOVE STUNAMEI TO STU-NAME OF STUFILE-RECORD.
- MOVE COURSE1AI TO STU-COURSE-1A OF STUFILE-RECORD.
- MOVE COURSE1BI TO STU-COURSE-1B OF STUFILE-RECORD.
- MOVE COURSE2AI TO STU-COURSE-2A OF STUFILE-RECORD.
- MOVE COURSE2BI TO STU-COURSE-2B OF STUFILE-RECORD.
- MOVE COURSE3AI TO STU-COURSE-3A OF STUFILE-RECORD.
- MOVE COURSE3BI TO STU-COURSE-3B OF STUFILE-RECORD.
- MOVE COURSE4AI TO STU-COURSE-4A OF STUFILE-RECORD.
- MOVE COURSE4BI TO STU-COURSE-4B OF STUFILE-RECORD.
- MOVE COURSE5AI TO STU-COURSE-5A OF STUFILE-RECORD.
- MOVE COURSE5BI TO STU-COURSE-5B OF STUFILE-RECORD.
- MOVE ADD1I TO STU-ADDRESS-1 OF STUFILE-RECORD.
- MOVE ADD2I TO STU-ADDRESS-2 OF STUFILE-RECORD.
- MOVE ADD3I TO STU-ADDRESS-3 OF STUFILE-RECORD.
- MOVE ZIP1I TO STU-POSTAL-1 OF STUFILE-RECORD.
- MOVE ZIP2I TO STU-POSTAL-2 OF STUFILE-RECORD.
- MOVE PHONE1I TO STU-PHONE-1 OF STUFILE-RECORD.
- MOVE PHONE2I TO STU-PHONE-2 OF STUFILE-RECORD.
- MOVE PHONE3I TO STU-PHONE-3 OF STUFILE-RECORD.
- 700-PREP-INQUIRY-MAP.
- MOVE "INQUIRY SCREEN" TO TITLEO.
- MOVE DFHBMFSE TO STUNUMA.
- MOVE DFHBMASF TO STUNAMEA, COURSE1AA, COURSE1BA,
- COURSE2AA, COURSE2BA, COURSE3AA, COURSE3BA,
- COURSE4AA, COURSE4BA, COURSE5AA, COURSE5BA,
- ADD1A, ADD2A, ADD3A, ZIP1A, ZIP2A, PHONE1A, PHONE2A,
- PHONE3A.
- EXEC CICS SEND
- MAP('MAP1')
- MAPSET('DURU161')
- END-EXEC.
- EXEC CICS RETURN
- TRANSID('U163')
- COMMAREA(WS-SAVE)
- LENGTH(WS-SAVE-LENGTH)
- END-EXEC.
- 999-PREP-UPDATE-MAP.
- MOVE 'U' TO WS-SAVE-SW.
- MOVE "UPDATE SCREEN" TO TITLEO.
- MOVE DFHBMASF TO STUNUMA.
- MOVE DFHBMFSE TO STUNAMEA, COURSE1AA, COURSE1BA,
- COURSE2AA, COURSE2BA, COURSE3AA, COURSE3BA,
- COURSE4AA, COURSE4BA, COURSE5AA, COURSE5BA,
- ADD1A, ADD2A, ADD3A, ZIP1A, ZIP2A, PHONE1A, PHONE2A,
- PHONE3A.
- EXEC CICS SEND
- MAP('MAP1')
- MAPSET('DURU162')
- END-EXEC.
- EXEC CICS RETURN
- TRANSID('U163')
- COMMAREA(WS-SAVE)
- LENGTH(WS-SAVE-LENGTH)
- END-EXEC.
- 999-EXIT.
- EXEC CICS SEND CONTROL ERASE FREEKB END-EXEC.
- EXEC CICS RETURN END-EXEC.
- GOBACK.
- END PROGRAM DURU16P3.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement