I have the requirement to compare the two files and pick up
the matching records.
File 1. file2
23 32
32 13
34 15
35 36
36 35
43
Get the matching records from this 2 files to out file. how
you will do this in cobol program?
Answer Posted / arun
IDENTIFICATION DIVISION.
PROGRAM-ID. MATCH.
DATE-COMPILED.
*-----------------------------------------------------
----------*
*
*
* THIS PROGRAM COMPARES THE CAP INFO AGAINS THE ELIG
INFO AND *
* CREATES A FILE OF MATCHED PROVIDER, PERSON, RATE
INFO. *
*-----------------------------------------------------
----------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT COMP-CAP ASSIGN TO UT-S-CAP.
SELECT COMP-ELG ASSIGN TO UT-S-ELIG.
SELECT NEW-RATE ASSIGN TO UT-S-NEWRATE.
DATA DIVISION.
FILE SECTION.
FD COMP-CAP
LABEL RECORDS ARE STANDARD
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS.
01 COMP-CAP-REC.
05 CCR-PROV PIC X(9).
05 CCR-FILL PIC X.
05 CCR-RATE PIC X(5).
05 FILLER PIC X(65).
FD COMP-ELG
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS ARE STANDARD.
01 COMP-ELG-REC.
05 CER-PRSN PIC X(12).
05 FILLER PIC X.
05 CER-PROV PIC X(9).
05 FILLER PIC X(58).
FD NEW-RATE
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS ARE STANDARD.
01 NEW-RATE-REC PIC X(80).
WORKING-STORAGE SECTION.
77 WKS-MESSAGE PIC X(23) VALUE
'WORKING-STORAGE
SECTION'.
77 CAP-READ PIC 9(7) COMP-3 VALUE 0.
77 ELG-READ PIC 9(7) COMP-3 VALUE 0.
77 NEW-RATE-RECS PIC 9(7) COMP-3 VALUE 0.
77 RATE-ZEROED PIC 9(7) COMP-3 VALUE 0.
77 TOT-MONEY PIC 9(7)V99 COMP-3 VALUE
0.
01 MATCH-FILES.
05 NEED-CAP PIC X VALUE 'Y'.
05 NEED-ELG PIC X VALUE 'Y'.
05 EOF-CAP PIC X VALUE 'N'.
05 EOF-ELG PIC X VALUE 'N'.
05 COMP-CAPP PIC 9(9) VALUE ZEROS.
05 COMP-ELIG PIC 9(9) VALUE ZEROS.
01 NEW-RATE-REC-WORK.
05 NRR-PROV PIC X(9).
05 FILLER PIC X VALUE X'05'.
05 NRR-PRSN PIC X(12).
05 FILLER PIC X VALUE X'05'.
05 NRR-RATE PIC X(5).
05 FILLER REDEFINES NRR-RATE.
10 FILLER PIC X.
10 NRR-DLR PIC 9.
10 FILLER PIC X.
10 NRR-CENTS PIC 99.
05 FILLER PIC X(52).
01 WORK-MONEY PIC 9V99.
01 WORK-MONEY-R REDEFINES WORK-MONEY.
05 WM-DLR PIC 9.
05 WM-CENTS PIC 99.
PROCEDURE DIVISION.
010-OPEN-FILES.
OPEN INPUT COMP-CAP
COMP-ELG
OUTPUT NEW-RATE.
020-READ-CAP-RECORDS.
IF EOF-CAP = 'Y' OR
NEED-CAP = 'N'
GO TO 030-READ-ELG.
READ COMP-CAP AT END
MOVE 'Y' TO EOF-CAP
MOVE 'N' TO NEED-CAP
MOVE 999999999 TO COMP-CAPP
MOVE ALL 'Z' TO COMP-CAP-REC
GO TO 030-READ-ELG.
IF CCR-PROV NOT NUMERIC
DISPLAY 'CAP PROVIDER NOT NUMERIC - SKIPPED
= '
COMP-CAP-REC
GO TO 020-READ-CAP-RECORDS.
MOVE CCR-PROV TO COMP-CAPP.
ADD 1 TO CAP-READ.
MOVE 'N' TO NEED-CAP.
030-READ-ELG.
IF EOF-ELG = 'Y' OR
NEED-ELG = 'N'
GO TO 040-MATCH-FILES.
READ COMP-ELG AT END
MOVE 'Y' TO EOF-ELG
MOVE 'N' TO NEED-ELG
MOVE 999999999 TO COMP-ELIG
MOVE ALL 'Z' TO COMP-ELG-REC
GO TO 040-MATCH-FILES.
IF CER-PROV NOT NUMERIC
DISPLAY 'ELG PROVIDER NOT NUMERIc - SKIPPED'
GO TO 030-READ-ELG.
MOVE CER-PROV TO COMP-ELIG.
ADD 1 TO ELG-READ.
MOVE 'N' TO NEED-ELG.
040-MATCH-FILES.
IF EOF-CAP = 'Y' AND
EOF-ELG = 'Y'
GO TO 990-PUBLISH-STATS.
IF COMP-CAPP = COMP-ELIG GO TO 100-CAP-ELIG-
MATCH.
these compares/comments change dependng on
requirements.
IF COMP-CAPP < COMP-ELIG GO TO 120-CAP-NOT-
USED.
IF COMP-CAPP < COMP-ELIG
MOVE 'Y' TO NEED-CAP
GO TO 020-READ-CAP-RECORDS.
IF COMP-CAPP > COMP-ELIG GO TO 140-GET-RATE.
IF COMP-CAPP > COMP-ELIG
MOVE 'Y' TO NEED-ELG
DISPLAY 'MISSING CLAIM DATA '
GO TO 020-READ-CAP-RECORDS.
WE SHOULD NOT BE ABLE TO GET HERE. . . .
DISPLAY ' 040-MATCH-FILES FATAL ERROR'.
DISPLAY ' CAP=' CCR-PROV ' ELIG=' CER-PROV.
DISPLAY ' RUN TERMINATED.'.
GOBACK.
100-CAP-ELIG-MATCH.
these may change depending on how duplicates are
handled.
MOVE 'Y' TO NEED-CAP, NEED-ELG.
MOVE 'Y' TO NEED-ELG.
MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE CCR-RATE TO NRR-RATE.
MOVE NRR-DLR TO WM-DLR.
MOVE NRR-CENTS TO WM-CENTS.
COMPUTE TOT-MONEY = TOT-MONEY + WORK-MONEY.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.
GO TO 020-READ-CAP-RECORDS.
120-CAP-NOT-USED.
MOVE 'Y' TO NEED-CAP.
DISPLAY 'CAP RECORD NOT USED = ' COMP-CAP-REC.
MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE CCR-RATE TO NRR-RATE.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.
GO TO 020-READ-CAP-RECORDS.
140-GET-RATE.
MOVE 'Y' TO NEED-ELG.
MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE ' 0.00' TO NRR-RATE.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.
COMPUTE RATE-ZEROED = RATE-ZEROED + 1.
GO TO 020-READ-CAP-RECORDS.
990-PUBLISH-STATS.
DISPLAY 'CAP RECS READ = ' CAP-READ.
DISPLAY 'ELG RECS READ = ' ELG-READ.
DISPLAY 'NEW RECS = ' NEW-RATE-RECS.
DISPLAY 'ZEROED RATES = ' RATE-ZEROED.
DISPLAY 'TOTAL MONEY = ' TOT-MONEY.
9999-STOP.
CLOSE COMP-CAP COMP-ELG NEW-RATE.
GOBACK.
| Is This Answer Correct ? | 0 Yes | 2 No |
Post New Answer View All Answers
Define cobol?
There are 5 fields and 1000 records in a file. Unload it into an array. Write the syntax for declaration and how will you unload it.
What is comp-1 and comp-2?
Our issue is there seems to be a disconnect, or no link, between our SELECT statement and our SD. We had SELECT SORT-FILE and SELECT SORT-FILE ASSIGN TO SORTWRK. ASSIGN TO SORTWRK1 SORTWRK2 SORTWRK3 SORTWRK4. with SD SORT_FILE RECORD CONTAINS 7833 CHARACTERS. In either case, at run time, the system ignored our SORTWRK# DD statements and allocated 16 sort works with the SORTWK## naming convention. Any ideas why the system does not recognize the connection? We do not even need the SORTWRK DD statements. Thanks
what is difference between cobol and cobol/400
Is it possible that the redefines clause has different picture clauses compared to the one it redefined?
how do you reference the esds vsam file formats from cobol programs
Why do we code s9 (4) comp. Inspite of knowing comp-3 will occupy less space?
how to move the records from file to array table. give with code example
State the various causes of s0c1, s0c5 and s0c7.
What is amode(31)
what happens if parmparameter passes zero bytes to the program
2 input fles: 2 flat files, with different number of records. both are having unique key for each record and already sorted in ascending order . match these files using unique key and in output only matching key value has to be written. please procide cobol logic
which is Best IBM Mainframe Training and Placement Institute in Ameerpet Hyderabad
What are the different types of condition in cobol and write their forms.