IDENTIFICATION DIVISION.
PROGRAM-ID. UPDT.
AUTHOR.anbu.
DATE-WRITTEN. AUG 13.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT CMSTR ASSIGN TO CINP1
ORGANIZATION IS INDEXED
ACCESS IS SEQUENTIAL
RECORD KEY CM2-KEY
FILE STATUS IS WS-CMSTR-FST.
SELECT CTAB ASSIGN TO CINP2
ORGANIZATION IS
ACCESS IS
SEQUENTIAL
RECORD KEY VSAM-WHSE-
KEY
FILE STATUS IS WS-CTAB-
FST.
DATA
DIVISION.
FILE
SECTION.
FD
CMSTR.
COPY
RXCYFC20.
FD
CTAB.
COPY
AITYWHSE.
************************************************************
******
*** WORKING STORAGE
VARIABLES ***
************************************************************
******
WORKING-STORAGE
SECTION.
01 WS-
VARIABLES.
05 WS-EB PIC X(02) VALUE
ZEROES.
05 WS-DIV PIC 9(03) VALUE
ZEROES.
05 WS-CMF-RECS-REWRITTEN PIC 9(01) VALUE
ZERO.
*** FILE STATUS
VARIABLES ***
05 WS-
FILESTATUS.
10 WS-CMSTR-FST PIC 9(02) VALUE
ZEROES.
10 WS-CTAB-FST PIC 9(02) VALUE
ZEROES.
*** END OF FILE
VARIABLES ***
05 WS-CMSTR-EOF PIC X(01)
VALUE 'N'.
88 WS-CMSTR-EOF-YES
VALUE 'Y'.
88 WS-CMSTR-EOF-NO
VALUE 'N'.
05 WS-CTAB-EOF PIC X(01)
VALUE 'N'.
88 WS-CTAB-EOF-YES
VALUE 'Y'.
88 WS-CTAB-EOF-NO
VALUE 'N'.
**** ERROR
VARIABLES ****
05 WC-ABEND-900 PIC 9(03) VALUE
900.
05 WE-ERR-CODE PIC 9(02) VALUE
ZEROES.
05 WE-ABEND-CODE PIC 9(03) VALUE
ZEROES.
************************************************************
****
********* PROCEDURE DIVISON
**********
************************************************************
****
PROCEDURE
DIVISION.
0000-
BEGIN.
PERFORM 1000-INITIALISE THRU 1000-
EXIT.
PERFORM 2000-PROCESS THRU 2000-
EXIT
UNTIL WS-CMSTR-EOF-
YES.
DISPLAY 'WS-CMF-RECS-REWRITTEN :' WS-CMF-RECS-
REWRITTEN.
PERFORM 5000-CLOSE THRU 5000-
EXIT.
GOBACK.
0000-
EXIT.
EXIT.
1000-
INITIALISE.
OPEN I-O
CMSTR.
EVALUATE WS-CMSTR-
FST
WHEN
00
WHEN 97
CONTINUE
WHEN OTHER
DISPLAY 'ERROR IN READING INPUT FILE: '
DISPLAY WS-CMSTR-FST
MOVE WS-CMSTR-FST TO WE-ERR-CODE
PERFORM 9999-ABEND-PARA THRU 9999-EXIT
END-EVALUATE.
OPEN INPUT CTAB.
EVALUATE WS-CTAB-FST
WHEN 00
WHEN 97
CONTINUE
WHEN OTHER
DISPLAY 'ERROR IN READING INPUT FILE: '
DISPLAY WS-CTAB-FST
MOVE WS-CTAB-FST TO WE-ERR-CODE
PERFORM 9999-ABEND-PARA THRU 9999-EXIT
END-EVALUATE.
1000-EXIT.
EXIT.
2000-PROCESS.
READ CMSTR.
EVALUATE WS-CMSTR-FST
WHEN 00
CONTINUE
WHEN 10
SET WS-CMSTR-EOF-YES TO TRUE
GO TO 2000-EXIT
WHEN OTHER
DISPLAY 'ERROR IN READING INPUT FILE: '
DISPLAY WS-CMSTR-FST
MOVE WS-CMSTR-FST TO WE-ERR-CODE
PERFORM 9999-ABEND-PARA THRU 9999-EXIT
END-EVALUATE
IF CM2-RECORD-TYPE-SOLD-TO
MOVE CM2-ENTERING-BRANCH TO WS-EB
PERFORM 3000-READ THRU 3000-EXIT
UNTIL WS-CTAB-EOF-YES
END-IF.
2000-EXIT.
EXIT.
3000-READ.
MOVE WS-EB TO VSAM-WHSE-CD.
MOVE 'WHSE' TO VSAM-WHSE-ID.
READ CTAB.
EVALUATE WS-CTAB-FST
WHEN 00
MOVE WHSE-DIV-CODE TO WS-DIV
PERFORM 4000-REWRITE-CMF THRU 4000-EXIT
WHEN 10
SET WS-CTAB-EOF-YES TO TRUE
GO TO 3000-EXIT
WHEN OTHER
DISPLAY 'ERROR IN READING TABLE FILE: '
DISPLAY WS-CTAB-FST
MOVE WS-CTAB-FST TO WE-ERR-CODE
PERFORM 9999-ABEND-PARA THRU 9999-EXIT
END-
EVALUATE.
3000-
EXIT.
EXIT.
4000-REWRITE-
CMF.
IF WS-DIV = 250 OR
252
MOVE 'F' TO CM2-FREIGHT-
TYPE
MOVE 1 TO CM2-FREIGHT-THRESHOLD-
AMT
ADD +1 TO WS-CMF-RECS-
REWRITTEN
REWRITE CM2-SOLD-TO-
RECORD
DISPLAY 'RECORD
UPDATED'
END-
IF.
* EVALUATE WS-CMSTR-
FST
* WHEN
00
*
CONTINUE
* WHEN
OTHER
* DISPLAY 'FILE NOT
UPDATED'
* DISPLAY WS-CMSTR-
FST
* MOVE WS-CMSTR-FST TO WE-ERR-CODE
* PERFORM 9999-ABEND-PARA THRU 9999-EXIT
* GO TO 4000-EXIT
* END-EVALUATE.
4000-EXIT.
EXIT.
5000-CLOSE.
CLOSE CMSTR
CTAB.
5000-EXIT.
EXIT.
9999-ABEND-PARA.
COMPUTE WE-ABEND-CODE = WC-ABEND-900 + WE-ERR-CODE
CALL 'ILBOABN0' USING WE-ABEND-CODE
GO TO 5000-CLOSE.
9999-EXIT.
EXIT.
5000-CLOSE.
CLOSE CMSTR
CTAB.
5000-EXIT.
EXIT.
9999-ABEND-PARA.
COMPUTE WE-ABEND-CODE = WC-ABEND-900 + WE-ERR-CODE
CALL 'ILBOABN0' USING WE-ABEND-CODE
GO TO 5000-CLOSE.
9999-EXIT.
EXIT.
//this program is giving maxcc=0, but not updating..
No Answer is Posted For this Question
Be the First to Post Answer
Difference between ps, esds
I have a cobol program with a sub program. How ca i find that it is a dynamic call? or static call..?
what is scope terminator
01 A pic 9(100) find record length of it
consider the following progrm statements MOVE 0 TO SW.NO.OF.REC PERFORM PRI-OUT UNTIL SW=1 DISPALY NO.OF.REC STOP RUN PRE-OUT READ IN-FILE AT END MOVE 1 TO SW WRITE OUO-REC FROM IN-REC ADD 1 TO NO.OF REC if the IN-FILE contains 1000 records what value will be displayedafter the PERFORM is over?assume that N0.OF.REC has PIC 9(4) a.1000 b.1001 c.1 d.none of the above since there is a syntex error
What will happen if we move SPACES to numeric field and ZEROES to alphabetic field?
What is the default value(s) for an initialize? What keyword will allow for an override of the default?
What should be the sorting order for SEARCH ALL?
Which of the following paragraphs is compulsory in every COBOL program? (a) SPECIAL-NAMES (b) PROGRAM-ID (c) FILE-CONTROL (d) OBJECT-COMPUTER
What is the difference between COMP & COMP-3 ?
What type of Call you would use if you don;t want the control back to the calling program?
how to access vsam files in cobol and how to differentiate that this is ESDS file