View previous topic :: View next topic
Author
Message
srj1957 New User Joined: 15 Dec 2005Posts: 72 Location: RALEIGH NC, USA
I have two files and want to combine fields from FILEA and FILEB to create FILEC
FILEA FIXED LENGTH
000007271070214439804 000005RAMAL SUJATHA R40110...
FILEB FIXED LENGTH 302
00000727107RAMAL SUJATHA 00000000003N001431744 …
FILEC FIXED LENGTH 302
00000727107RAMAL SUJATHA 02144398043 3N001431744 …
The key is 1-11 on file A and B.
From FILEA I need only bytes 11 to 22
From FILEB I need bytes 1 to 41 and 52 to 302
Then build FILEC like this
FILEC bytes 1 to 41 need to have FILEB bytes 1 to 41
then FILEC bytes 42 to 51 to have bytes 11 to 22 from FILEA
then FILEC bytes 52 to 302 bytes 52 to 302 from FILEB
This is my JCL and i cannot work out how to do it ...Please help
Code:
//TOOLIN DD *
COPY FROM(IN1) TO(TEMP1) USING(CTL1)
COPY FROM(IN2) TO(TEMP1) USING(CTL2)
SPLICE FROM(TEMP1) TO(OUT) ON(1,11,CH) WITH(51,209)
//CTL1CNTL DD *
OUTFIL FNAMES=TEMP1,OUTREC FIELDS=(11:12,22)
/*
//CTL2CNTL DD *
OUTFIL FNAMES=TEMP1,OUTREC FIELDS=(1:1,41,52:52,209)
/*
Back to top
srj1957 New User Joined: 15 Dec 2005Posts: 72 Location: RALEIGH NC, USA
I have just tried this and getting data in TEMP file but not OUT file
Code:
//IN1 DD DSN=TRANSFER.SRJ.DAILY,DISP=SHR
//IN2 DD DSN=TRANSFER.SRJ.DATA,DISP=SHR
//TEMP1 DD DSN=ISD.SRJ.TEMP, ...
// .
// .
//OUT DD DSN=ISD.SRJ.D.SEQ.TDEMPLY.LOAD, ...
// .
// .
//TOOLIN DD *
COPY FROM(IN1) TO(TEMP1) USING(CTL1)
COPY FROM(IN2) TO(TEMP1) USING(CTL2)
SPLICE FROM(TEMP1) TO(OUT) ON(1,11,CH) WITH(11,22)
//CTL1CNTL DD *
OUTREC FIELDS=(11:12,22)
/*
//CTL2CNTL DD *
OUTREC FIELDS=(1:1,41,52:52,209)
/*
I get no data in OUT file
and TEMP1 looks like this ( * = blank )
00000727107RAMAL SUJATHA*********** 3N001431744…
I'm not understanding...
Does anyone have any ideas what is wrong ?
Thank you
Back to top
Frank Yaeger DFSORT Developer Joined: 15 Feb 2005Posts: 7129 Location: San Jose, CA
You aren't lining things up correctly.
Here's a DFSORT/ICETOOL job that will do what you asked for:
Code:
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN1 DD DSN=TRANSFER.SRJ.DAILY,DISP=SHR
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)
//CON DD DSN=*.T1,VOL=REF=*.T1,DISP=(OLD,PASS)
// DD DSN=TRANSFER.SRJ.DATA,DISP=SHR
//OUT DD DSN=ISD.SRJ.D.SEQ.TDEMPLY.LOAD, ...
//TOOLIN DD *
COPY FROM(IN1) TO(T1) USING(CTL1)
SPLICE FROM(CON) TO(OUT) ON(1,11,CH) -
WITH(1,41) WITH(52,251)
/*
//CTL1CNTL DD *
INREC BUILD=(1,11,42:12,10,302:X)
/*
Back to top
srj1957 New User Joined: 15 Dec 2005Posts: 72 Location: RALEIGH NC, USA
Frank,
I really appreciate your time and effort in resolving this for me...as usual it worked perfectly.
Thanks again..
Steve
Back to top
Please enable JavaScript!