Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
COBOL 12.53 KB | None | 0 0
  1.  
  2.         IDENTIFICATION DIVISION.
  3.         PROGRAM-ID. DURU16P3.
  4.         AUTHOR. JOSHUA ALCOTT-GRIFFIN.
  5.  
  6.         ENVIRONMENT DIVISION.
  7.         CONFIGURATION SECTION.
  8.         SOURCE-COMPUTER. RS-6000.
  9.         OBJECT-COMPUTER. RS-6000.
  10.  
  11.         DATA DIVISION.
  12.         WORKING-STORAGE SECTION.
  13.  
  14.            COPY 'DURU161'.
  15.  
  16.            COPY 'STUFILE'.
  17.            COPY 'STUEFILE'.
  18.         01 WS-STUNUM-LEN                PIC 9 VALUE 7.
  19.         01 WS-STUNUM                    PIC X(7).
  20.  
  21.          01 WS-SAVE.
  22.             05 WS-SAVE-SW                PIC X VALUE "I".
  23.             05 WS-SAVE-STUDENT.
  24.                 10 WS-SAVE-NAME         PIC X(20).
  25.                 10 WS-SAVE-COURSE-1A    PIC X(4).
  26.                 10 WS-SAVE-COURSE-1B    PIC X(4).
  27.                 10 WS-SAVE-COURSE-2A    PIC X(4).
  28.                 10 WS-SAVE-COURSE-2B    PIC X(4).
  29.                 10 WS-SAVE-COURSE-3A    PIC X(4).
  30.                 10 WS-SAVE-COURSE-3B    PIC X(4).
  31.                 10 WS-SAVE-COURSE-4A    PIC X(4).
  32.                 10 WS-SAVE-COURSE-4B    PIC X(4).
  33.                 10 WS-SAVE-COURSE-5A    PIC X(4).
  34.                 10 WS-SAVE-COURSE-5B    PIC X(4).
  35.                 10 WS-SAVE-ADD-1        PIC X(20).
  36.                 10 WS-SAVE-ADD-2        PIC X(20).
  37.                 10 WS-SAVE-ADD-3        PIC X(20).
  38.                 10 WS-SAVE-ZIP-1        PIC X(3).
  39.                 10 WS-SAVE-ZIP-2        PIC X(3).
  40.                 10 WS-SAVE-PHONE-1      PIC X(3).
  41.                 10 WS-SAVE-PHONE-2      PIC X(3).
  42.                 10 WS-SAVE-PHONE-3      PIC X(4).
  43.  
  44.          01 WS-SAVE-LENGTH              PIC S9(4) COMP VALUE 136.
  45.  
  46.           COPY 'DFHBMSCA'.
  47.         LINKAGE SECTION.
  48.  
  49.         01 DFHCOMMAREA                  PIC X(255).
  50.  
  51.         PROCEDURE DIVISION.
  52.  
  53.  
  54.         000-START-LOGIC.
  55.  
  56.  
  57.            EXEC CICS HANDLE CONDITION
  58.                 MAPFAIL(100-FIRST-TIME)
  59.                 NOTFND (300-STUDENT-NOTFND)
  60.            END-EXEC.
  61.  
  62.            EXEC CICS HANDLE AID
  63.                 PF9(999-EXIT)
  64.            END-EXEC
  65.  
  66.            IF EIBCALEN = 3
  67.                 GO TO 100-FIRST-TIME
  68.            END-IF.
  69.  
  70.            EXEC CICS RECEIVE
  71.                 MAP('MAP1')
  72.                 MAPSET('DURU161')
  73.            END-EXEC.
  74.  
  75.  
  76.            GO TO 200-MAIN-LOGIC.
  77.  
  78.        100-FIRST-TIME.
  79.  
  80.  
  81.  
  82.            MOVE LOW-VALUES TO MAP1O.
  83.            EXEC CICS SEND
  84.                MAP('MAP1')
  85.                MAPSET('DURU161')
  86.                ERASE
  87.            END-EXEC.
  88.  
  89.            EXEC CICS RETURN
  90.                TRANSID('U163')
  91.            END-EXEC.
  92.  
  93.         200-MAIN-LOGIC.
  94.  
  95.            MOVE DFHCOMMAREA TO WS-SAVE-STUDENT.
  96.  
  97.            IF WS-SAVE-SW = "I" THEN
  98.                 PERFORM 240-STUDENT-INQUIRY
  99.            ELSE IF WS-SAVE-SW = "U" THEN
  100.                 PERFORM  250-STUDENT-UPDATE
  101.            END-IF.
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.        240-STUDENT-INQUIRY.
  110.                MOVE STUNUMI TO WS-STUNUM.
  111.                IF STUNUMI = 'XXXXXXX' OR
  112.                     STUNUMI(1:5) = 'ABORT'
  113.                 EXEC CICS SEND
  114.                         CONTROL
  115.                         ERASE
  116.                         FREEKB
  117.                     END-EXEC
  118.  
  119.                     EXEC CICS
  120.                         RETURN
  121.                      END-EXEC
  122.                ELSE IF STUNUML IS LESS THAN WS-STUNUM-LEN
  123.                     GO TO 450-TOO-SHORT
  124.                ELSE IF STUNUMI IS NOT NUMERIC
  125.                     GO TO 400-NOT-NUMERIC
  126.  
  127.                ELSE
  128.                     MOVE STUNUMI TO STU-NUMBER
  129.                     EXEC CICS READ
  130.                       FILE('STUFILE')
  131.                       RIDFLD(STU-KEY)
  132.                       INTO(STUFILE-RECORD)
  133.                     END-EXEC
  134.                  GO TO 500-STUDENT-INQUIRY-MOVES
  135.                END-IF.
  136.  
  137.  
  138.        250-STUDENT-UPDATE.
  139.            IF (STUNAMEI EQUAL TO WS-SAVE-NAME
  140.                 AND COURSE1AI EQUAL TO WS-SAVE-COURSE-1A
  141.                 AND COURSE1BI EQUAL TO WS-SAVE-COURSE-1B
  142.                 AND COURSE2AI EQUAL TO WS-SAVE-COURSE-2A
  143.                 AND COURSE2BI EQUAL TO WS-SAVE-COURSE-2B
  144.                 AND COURSE3AI EQUAL TO WS-SAVE-COURSE-3A
  145.                 AND COURSE3BI EQUAL TO WS-SAVE-COURSE-3B
  146.                 AND COURSE4AI EQUAL TO WS-SAVE-COURSE-4A
  147.                 AND COURSE4BI EQUAL TO WS-SAVE-COURSE-4B
  148.                 AND COURSE5AI EQUAL TO WS-SAVE-COURSE-5A
  149.                 AND COURSE5BI EQUAL TO WS-SAVE-COURSE-5B
  150.                 AND ADD1I EQUAL TO WS-SAVE-ADD-1
  151.                 AND ADD2I EQUAL TO WS-SAVE-ADD-2
  152.                 AND ADD3I EQUAL TO WS-SAVE-ADD-3
  153.                 AND ZIP1I EQUAL TO WS-SAVE-ZIP-1
  154.                 AND ZIP2I EQUAL TO WS-SAVE-ZIP-2
  155.                 AND PHONE1I EQUAL TO WS-SAVE-PHONE-1
  156.                 AND PHONE2I EQUAL TO WS-SAVE-PHONE-2
  157.                 AND PHONE3I EQUAL TO WS-SAVE-PHONE-3) THEN
  158.  
  159.                 MOVE LOW-VALUES TO MAP1O
  160.                 MOVE 'NO DATA HAS CHANGED' TO MSGO
  161.  
  162.                 GO TO 700-PREP-INQUIRY-MAP
  163.  
  164.            ELSE
  165.  
  166.                 EXEC CICS LINK
  167.                     PROGRAM('DURU16PE')
  168.                     COMMAREA(STUEFILE)
  169.                     LENGTH(COMMAREA-LENGTH)
  170.                 END-EXEC
  171.  
  172.                 IF (MSGE NOT EQUAL TO 'SUCCESS') THEN
  173.                     MOVE LOW-VALUES TO MAP1O
  174.                     MOVE MSGE TO MSGO
  175.  
  176.                     PERFORM 999-PREP-UPDATE-MAP
  177.  
  178.                     EXEC CICS SEND
  179.                         MAP('MAP1')
  180.                         MAPSET('DURU162')
  181.                         CURSOR
  182.                     END-EXEC
  183.  
  184.                     EXEC CICS RETURN
  185.                         TRANSID('U163')
  186.                         COMMAREA(WS-SAVE)
  187.                         LENGTH(WS-SAVE-LENGTH)
  188.                     END-EXEC
  189.                 ELSE
  190.  
  191.                     MOVE STUNUMI TO STU-NUMBER
  192.  
  193.                     EXEC CICS READ
  194.                         FILE('STUFILE')
  195.                         RIDFLD(STU-KEY)
  196.                         INTO(STUFILE-RECORD)
  197.                     END-EXEC
  198.  
  199.                     PERFORM 600-STUDENT-UPDATE-MOVES
  200.  
  201.                     EXEC CICS REWRITE
  202.                         FILE('STUFILE')
  203.                         FROM(STUFILE-RECORD)
  204.                     END-EXEC
  205.  
  206.                     MOVE 'I' TO WS-SAVE-SW
  207.  
  208.                     EXEC CICS SEND
  209.                         MAP('MAP1')
  210.                         MAPSET('DURU161')
  211.                         CURSOR
  212.                     END-EXEC
  213.  
  214.                     EXEC CICS RETURN
  215.                         TRANSID('U163')
  216.                         COMMAREA(WS-SAVE)
  217.                         LENGTH(WS-SAVE-LENGTH)
  218.                     END-EXEC
  219.  
  220.                 END-IF
  221.            END-IF.
  222.  
  223.  
  224.  
  225.        300-STUDENT-NOTFND.
  226.  
  227.            MOVE LOW-VALUES TO MAP1O.
  228.            MOVE WS-STUNUM TO STUNUMO.
  229.            MOVE 'STUDENT RECORD WAS NOT FOUND' TO MSGO.
  230.            EXEC CICS SEND
  231.                 MAP ('MAP1')
  232.                 MAPSET ('DURU161')
  233.                 ERASE
  234.            END-EXEC.
  235.  
  236.            EXEC CICS RETURN
  237.                 TRANSID ('U163')
  238.            END-EXEC.
  239.        400-NOT-NUMERIC.
  240.  
  241.            MOVE LOW-VALUES TO MAP1O.
  242.            MOVE WS-STUNUM TO STUNUMO.
  243.            MOVE 'STUDENT NUMBER IS NOT NUMERIC' TO MSGO
  244.            EXEC CICS SEND
  245.                 MAP ('MAP1')
  246.                 MAPSET ('DURU161')
  247.                 ERASE
  248.            END-EXEC.
  249.  
  250.            EXEC CICS RETURN
  251.                 TRANSID ('U163')
  252.            END-EXEC.
  253.        450-TOO-SHORT.
  254.  
  255.            MOVE LOW-VALUES TO MAP1O.
  256.            MOVE WS-STUNUM TO STUNUMO.
  257.            MOVE 'STUDENT NUMBER IS TOO SHORT.(7)'TO MSGO.
  258.            EXEC CICS SEND
  259.                 MAP ('MAP1')
  260.                 MAPSET ('DURU161')
  261.                 ERASE
  262.            END-EXEC.
  263.  
  264.            EXEC CICS RETURN
  265.                 TRANSID ('U163')
  266.            END-EXEC.
  267.  
  268.        500-STUDENT-INQUIRY-MOVES.
  269.  
  270.            MOVE LOW-VALUES TO MAP1O.
  271.            MOVE 'STUDENT RECORD FOUND' TO MSGO.
  272.  
  273.            MOVE STU-NUMBER OF STUFILE-RECORD TO STUNUMO.
  274.            MOVE STU-NAME OF STUFILE-RECORD TO STUNAMEO, WS-SAVE-NAME.
  275.  
  276.            MOVE STU-COURSE-1A OF STUFILE-RECORD TO COURSE1AO,
  277.                 WS-SAVE-COURSE-1A.
  278.            MOVE STU-COURSE-1B OF STUFILE-RECORD TO COURSE1BO,
  279.                 WS-SAVE-COURSE-1B.
  280.            MOVE STU-COURSE-2A OF STUFILE-RECORD TO COURSE2AO,
  281.                 WS-SAVE-COURSE-2A.
  282.            MOVE STU-COURSE-2B OF STUFILE-RECORD TO COURSE2BO,
  283.                 WS-SAVE-COURSE-2B.
  284.            MOVE STU-COURSE-3A OF STUFILE-RECORD TO COURSE3AO,
  285.                 WS-SAVE-COURSE-3A.
  286.            MOVE STU-COURSE-3B OF STUFILE-RECORD TO COURSE3BO,
  287.                 WS-SAVE-COURSE-3B.
  288.            MOVE STU-COURSE-4A OF STUFILE-RECORD TO COURSE4AO
  289.                 WS-SAVE-COURSE-4A.
  290.            MOVE STU-COURSE-4B OF STUFILE-RECORD TO COURSE4BO,
  291.                 WS-SAVE-COURSE-4B.
  292.            MOVE STU-COURSE-5A OF STUFILE-RECORD TO COURSE5AO,
  293.                 WS-SAVE-COURSE-5A.
  294.            MOVE STU-COURSE-5B OF STUFILE-RECORD TO COURSE5BO,
  295.                 WS-SAVE-COURSE-5B.
  296.  
  297.            MOVE STU-ADDRESS-1 OF STUFILE-RECORD TO ADD1O,
  298.                 WS-SAVE-ADD-1.
  299.            MOVE STU-ADDRESS-2 OF STUFILE-RECORD TO ADD2O,
  300.                 WS-SAVE-ADD-2.
  301.            MOVE STU-ADDRESS-3 OF STUFILE-RECORD TO ADD3O,
  302.                 WS-SAVE-ADD-3.
  303.  
  304.            MOVE STU-POSTAL-1 OF STUFILE-RECORD TO ZIP1O,
  305.                 WS-SAVE-ZIP-1.
  306.            MOVE STU-POSTAL-2 OF STUFILE-RECORD TO ZIP2O,
  307.                 WS-SAVE-ZIP-2.
  308.  
  309.            MOVE STU-PHONE-1 OF STUFILE-RECORD TO PHONE1O,
  310.                 WS-SAVE-PHONE-1.
  311.            MOVE STU-PHONE-2 OF STUFILE-RECORD TO PHONE2O,
  312.                 WS-SAVE-PHONE-2.
  313.            MOVE STU-PHONE-3 OF STUFILE-RECORD TO PHONE3O,
  314.                 WS-SAVE-PHONE-3.
  315.  
  316.            PERFORM 999-PREP-UPDATE-MAP.
  317.  
  318.  
  319.  
  320.  
  321.  
  322.        600-STUDENT-UPDATE-MOVES.
  323.            MOVE LOW-VALUES TO MAP1O.
  324.            MOVE STUNUMI TO STU-NUMBER OF STUFILE-RECORD.
  325.            MOVE STUNAMEI TO STU-NAME OF STUFILE-RECORD.
  326.  
  327.            MOVE COURSE1AI TO STU-COURSE-1A OF STUFILE-RECORD.
  328.            MOVE COURSE1BI TO STU-COURSE-1B OF STUFILE-RECORD.
  329.            MOVE COURSE2AI TO STU-COURSE-2A OF STUFILE-RECORD.
  330.            MOVE COURSE2BI TO STU-COURSE-2B OF STUFILE-RECORD.
  331.            MOVE COURSE3AI TO STU-COURSE-3A OF STUFILE-RECORD.
  332.            MOVE COURSE3BI TO STU-COURSE-3B OF STUFILE-RECORD.
  333.            MOVE COURSE4AI TO STU-COURSE-4A OF STUFILE-RECORD.
  334.            MOVE COURSE4BI TO STU-COURSE-4B OF STUFILE-RECORD.
  335.            MOVE COURSE5AI TO STU-COURSE-5A OF STUFILE-RECORD.
  336.            MOVE COURSE5BI TO STU-COURSE-5B OF STUFILE-RECORD.
  337.  
  338.            MOVE ADD1I TO STU-ADDRESS-1 OF STUFILE-RECORD.
  339.            MOVE ADD2I TO STU-ADDRESS-2 OF STUFILE-RECORD.
  340.            MOVE ADD3I TO STU-ADDRESS-3 OF STUFILE-RECORD.
  341.  
  342.            MOVE ZIP1I TO STU-POSTAL-1 OF STUFILE-RECORD.
  343.            MOVE ZIP2I TO STU-POSTAL-2 OF STUFILE-RECORD.
  344.  
  345.            MOVE PHONE1I TO STU-PHONE-1 OF STUFILE-RECORD.
  346.            MOVE PHONE2I TO STU-PHONE-2 OF STUFILE-RECORD.
  347.            MOVE PHONE3I TO STU-PHONE-3 OF STUFILE-RECORD.
  348.  
  349.        700-PREP-INQUIRY-MAP.
  350.            MOVE "INQUIRY SCREEN" TO TITLEO.
  351.            MOVE DFHBMFSE TO STUNUMA.
  352.            MOVE DFHBMASF TO STUNAMEA, COURSE1AA, COURSE1BA,
  353.                 COURSE2AA, COURSE2BA, COURSE3AA, COURSE3BA,
  354.                 COURSE4AA, COURSE4BA, COURSE5AA, COURSE5BA,
  355.                 ADD1A, ADD2A, ADD3A, ZIP1A, ZIP2A, PHONE1A, PHONE2A,
  356.                 PHONE3A.
  357.  
  358.             EXEC CICS SEND
  359.                  MAP('MAP1')
  360.                  MAPSET('DURU161')
  361.            END-EXEC.
  362.  
  363.            EXEC CICS RETURN
  364.                   TRANSID('U163')
  365.                   COMMAREA(WS-SAVE)
  366.                    LENGTH(WS-SAVE-LENGTH)
  367.            END-EXEC.
  368.  
  369.        999-PREP-UPDATE-MAP.
  370.  
  371.            MOVE 'U' TO WS-SAVE-SW.
  372.            MOVE "UPDATE SCREEN" TO TITLEO.
  373.            MOVE DFHBMASF TO STUNUMA.
  374.            MOVE DFHBMFSE TO STUNAMEA, COURSE1AA, COURSE1BA,
  375.                 COURSE2AA, COURSE2BA, COURSE3AA, COURSE3BA,
  376.                 COURSE4AA, COURSE4BA, COURSE5AA, COURSE5BA,
  377.                 ADD1A, ADD2A, ADD3A, ZIP1A, ZIP2A, PHONE1A, PHONE2A,
  378.                 PHONE3A.
  379.             EXEC CICS SEND
  380.                  MAP('MAP1')
  381.                  MAPSET('DURU162')
  382.            END-EXEC.
  383.  
  384.            EXEC CICS RETURN
  385.                   TRANSID('U163')
  386.                   COMMAREA(WS-SAVE)
  387.                    LENGTH(WS-SAVE-LENGTH)
  388.            END-EXEC.
  389.        999-EXIT.
  390.            EXEC CICS SEND CONTROL ERASE FREEKB END-EXEC.
  391.            EXEC CICS RETURN END-EXEC.
  392.            GOBACK.
  393.  
  394.        END PROGRAM DURU16P3.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement