We have two PS files,want to compare those files and put
the duplicate records in one file.
Input file 1 contains(1,2,4,9,10)
Input file 2 contains (1,4,5,11,12,14,16).
Help me with jcl.
Answers were Sorted based on User's Feedback
Answer / shriram supalwar, dharmabad
//jobcard
//step1 exec pgm=iebgener
//sysprint dd sysout=*
//sysut1 dd dsn=proj.test.file1,disp=shr
// dd dsn=proj.test.file2,disp=shr
//sysut2 dd dsn=proj.output,disp=shr
//sysin dd dummy
//if (step1.rc eq 0) then
//step2 exec pgm=sort
//sysprint dd sysout=*
//sortin dd dsn=proj.output,disp=shr
//sortout dd dsn=proj.sortout,disp=shr
//sortxsum dd dsn=proj.duplicate,disp=shr
//sysin dd *
sort fields=(1,5,ch,a)
sum fields=none,xsum
/*
Now, all these records are copied to proj.output
and out of those records the duplicate records are copied to
proj.duplicate
Correct me if i am wrong
| Is This Answer Correct ? | 3 Yes | 1 No |
Answer / aditi
hi,
I have also faced the same question.
as we have the two seperate input files.
Nitika, U have taken only one input file so how we sort it
using only one file?
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / nitika
Use SORTXSUM utility in JCL to get the output.
//JOB1 JOB ,, CLASS = A
//STEP1 EXEC PGM=SORT
//SORTIN DD DSN=TEST.PS.INPUT
//SORTOUT DD DSN=TEST.PS.OUTPUT
//SORTXSUM DD DSN=TEST.PS.OUTPUT
//SYSIN DD *
SORT FIELDS = (1,1,CH,A)
SUM FIELDS = (NONE,XSUM)
/*
Now SUM FIELDS = NONE means no duplicates in the output file
(TEST.PS.OUTPUT)and XSUM means duplicates, in the two files
being matched, should be sent to the file mentioned in
SORTXSUM ddname.
So, output file will have 1,4.
| Is This Answer Correct ? | 3 Yes | 3 No |
Answer / karthik
@aditi n nikita
i think we can use ibm utility iebcompare
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / mdv
@Shriram Supalwar, Dharmabad
You don't need the IEBGENER STEP.
Your second step sort can have both the files concatenated
as one and given as Input.
Thanks
| Is This Answer Correct ? | 0 Yes | 0 No |
Use join keys
//STEP01 EXEC PGM=SORT
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SORTJNF1 DD DSN=INPUT.FILE.ONE,DISP=SHR
//SORTJNF2 DD DSN=INPUT.FILE.TWO,DISP=SHR
//SORTOUT DD DSN=OUTPUT.FILE,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(CYL,(100,200),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0,LRECL=80)
//SYSIN DD *
SORT FIELDS=COPY
JOINKEYS FILES=F1,FIELDS=(1,10,A)
JOINKEYS FILES=F2,FIELDS=(1,10,A)
REFORMAT FIELDS=(F1:1,71,F2:1,9)
/*
| Is This Answer Correct ? | 0 Yes | 0 No |
Mention the types of job control statements?
how many max steps can we use in a job? pls answer to my question
Is it possiable to use a gdg in the INCLUDE statement in a SORT jcl? I am using this because I want to change the condition with out changing the jcl. Please provide with a sample code.
How to run cobol program using jcl?
Explain how can values be passed from the job stream to an executable program?
what are the statements that are not valid to be included in an include statement?
what is the JCL statement consists of?
what is the compile process of cobol program expalin with code
a dd statement has 2 types of parameters. Name them?
can any one plzzzzzz tell the jcl code for creating ps using idcams
i am trying to copy a PS file into VSAM file in step2 by using PGM=IDCAMS,COND=(0,LT) and the pS file is getting sorted in the step1. I got the return code 00 for step1 but step2 got flushed. can u please help on this. Below is My JCL. SEPP050 EXEC PGM=SORT,REGION=6144K SYSIN DD DSN=SYSCMN.PROD.CCLIB (F5910BNN), DISP=SHR SYSOUT DD SYSOUT=* SYSUDUMP DD SYSOUT=A SORTIN DD DSN=Z1225BT.F5910EPP.HISOUT, DISP=SHR SORTOUT DD DSN=Z1225BT.F5910EPP.HISOUT.SORTOUT5, DISP= (NEW,CATLG,DELETE),UNIT=DELQ, SPACE=(CYL, (500,500),RLSE), DCB= (RECFM=FB,LRECL=1606,BLKSIZE=16060,BUFNO=15) SORTWK01 DD UNIT=SYSDA,SPACE=(CYL, (1)) SORTWK02 DD UNIT=SYSDA,SPACE=(CYL, (1)) SORTWK03 DD UNIT=SYSDA,SPACE=(CYL, (1)) SORTWK04 DD UNIT=SYSDA,SPACE=(CYL, (1)) SYSIN1 DD UNIT=VIO,SPACE= (80,1) * SEPP060 EXEC PGM=IDCAMS,COND= (0,LT) SYSPRINT DD SYSOUT=* SYSOUT DD SYSOUT=* SYSLIST DD SYSOUT=* *** DD01 DD DSN=Z1225BT.F5910EPP.HISOUT.SORTOUT, // DISP=SHR //*** //DD01O DD DSN=Z1225BT.F5910PHS, // DISP=SHR, // AMP=(AMORG,'BUFND=12,BUFNI=5') //SYSIN DD DSN=SYSCMN.PROD.CCLIB(F5910BBB), // DISP=SHR Output RC for the two steps: SDCBPJ05 SEPP050 00 236 .00 .00 .0 SDCBPJ05 SEPP060 FLUSH 0 .00 .00 .0
IN DFSORT sum fields=none is usec to remove duplicates.how to write the duplicates in another dataset?