View previous topic :: View next topic
Author
Message
yianis New User Joined: 14 Aug 2006Posts: 45
I have a job (DFSORT) for now and I read in a Dataset File and want to split it up into multiple output Members.
Here is a sample of my job:
Code:
//JS00200 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=STG.MTL.C4.R01.ESM.BK.WORKFLOW.PROD(0),DISP=SHR
//*
//OUT001 DD DSN=JTZANET.ESM.SYSINESM(MTL003),DISP=SHR
//OUT002 DD DSN=JTZANET.ESM.SYSINESM(MTL004),DISP=SHR
//OUT003 DD DSN=JTZANET.ESM.SYSINESM(MTL005),DISP=SHR
//SYSIN DD *
OPTION COPY
OUTFIL INCLUDE=(01,03,CH,EQ,C'003'),FNAMES=OUT001
OUTFIL INCLUDE=(01,03,CH,EQ,C'004'),FNAMES=OUT002
OUTFIL INCLUDE=(01,03,CH,EQ,C'005'),FNAMES=OUT003
Now, I don't care if it's DFSORT or IDCAMS or FILEAID.
but I'm getting an Abend B14 and cannot do it....
Back to top
Douglas Wilder Active User Joined: 28 Nov 2006Posts: 305 Location: Deerfield IL
Code:
B14
Explanation: The error occurred during processing of a CLOSE macro
instruction for a partitioned data set opened for output to a member. This
system completion code is accompanied by message IEC217I. Refer to the
explanation of message IEC217I for complete information about the task
that was ended and for an explanation of the return code (rc in the
message text) in register 15.
What rc code did you get?
Back to top
superk Global Moderator Joined: 26 Apr 2004Posts: 4652 Location: Raleigh, NC, USA
The job seems fine. The B14 makes me suspect a problem with the PDS (not enough space, not enough directory blocks, etc.).
Back to top
yianis New User Joined: 14 Aug 2006Posts: 45
Actually, i increased the space etc.. and the error is IEC143I 213-30
It's because I am trying to update/create multiple members in the dataset and is causing a problem
It won't allow me to have multiple output members within a single step.
I don't want to split this job into n-multiple steps with each step having a single input and single output...I'd prefer to do it in 1 step but it seems you cannot do this...
Back to top
superk Global Moderator Joined: 26 Apr 2004Posts: 4652 Location: Raleigh, NC, USA
I forgot, you're right, you can't do that. Maybe you'll find your answer using FileAid, unless a combination of SORT and IEBUPDTE would work for you?
I'll move this post over to the FileAid forum.
Back to top
yianis New User Joined: 14 Aug 2006Posts: 45
Yeah I know.. that's why I had it originally posted in the JCL forum...
Back to top
Craq Giegerich Senior Member Joined: 19 May 2007Posts: 1512 Location: Virginia, USA
yianis wrote:
I have a job (DFSORT) for now and I read in a Dataset File and want to split it up into multiple output Members.
Here is a sample of my job:
Code:
//JS00200 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=STG.MTL.C4.R01.ESM.BK.WORKFLOW.PROD(0),DISP=SHR
//*
//OUT001 DD DSN=JTZANET.ESM.SYSINESM(MTL003),DISP=SHR
//OUT002 DD DSN=JTZANET.ESM.SYSINESM(MTL004),DISP=SHR
//OUT003 DD DSN=JTZANET.ESM.SYSINESM(MTL005),DISP=SHR
//SYSIN DD *
OPTION COPY
OUTFIL INCLUDE=(01,03,CH,EQ,C'003'),FNAMES=OUT001
OUTFIL INCLUDE=(01,03,CH,EQ,C'004'),FNAMES=OUT002
OUTFIL INCLUDE=(01,03,CH,EQ,C'005'),FNAMES=OUT003
Now, I don't care if it's DFSORT or IDCAMS or FILEAID.
but I'm getting an Abend B14 and cannot do it....
Make the OUT001, OUT002, and OUT003 files temp files and add 3 iebgener steps to copy them into the JTZANET.ESM.SYSINESM pds.
Back to top
yianis New User Joined: 14 Aug 2006Posts: 45
I could do the same thing with the DFSORT (multiple steps), but I am trying to avoid the creation of multiple steps and would like to do it in a single step. The actual jobb will probably have 100 files to create and I want to avoid 100 steps...Thx for the suggestion
Back to top
Douglas Wilder Active User Joined: 28 Nov 2006Posts: 305 Location: Deerfield IL
You could use separate PS datasets (with the last node different).
Or use a PDSE instead of a PDS.
Back to top
lcmontanez New User Joined: 19 Jun 2007Posts: 50 Location: Chicago
you can also create a 1 step proc that is run 100 times.....
Back to top
gcicchet Senior Member Joined: 28 Jul 2006Posts: 1702 Location: Australia
Hi,
you can get away with it in 2 steps.
See below
Gerry [/code]
//STEP0001 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
003
004
005
//*
//OUT001 DD DSN=&&O001,DISP=(,PASS,DELETE),UNIT=SYSDA,SPACE=(TRK,(1))
//OUT002 DD DSN=&&O002,DISP=(,PASS,DELETE),UNIT=SYSDA,SPACE=(TRK,(1))
//OUT003 DD DSN=&&O003,DISP=(,PASS,DELETE),UNIT=SYSDA,SPACE=(TRK,(1))
//SYSIN DD *
OPTION COPY
OUTFIL INCLUDE=(01,03,CH,EQ,C'003'),FNAMES=OUT001
OUTFIL INCLUDE=(01,03,CH,EQ,C'004'),FNAMES=OUT002
OUTFIL INCLUDE=(01,03,CH,EQ,C'005'),FNAMES=OUT003
//*
//**********************************************************************
//*
//REPRO EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//FILEIN1 DD DSN=&&O001,DISP=(OLD,DELETE)
//FILEIN2 DD DSN=&&O002,DISP=(OLD,DELETE)
//FILEIN3 DD DSN=&&O003,DISP=(OLD,DELETE)
/*
//FILEOUT1 DD DSN=PDS(A),DISP=SHR
//FILEOUT2 DD DSN=PDS(B),DISP=SHR
//FILEOUT3 DD DSN=PDS(C),DISP=SHR
//SYSIN DD *
REPRO INFILE(FILEIN1) OUTFILE(FILEOUT1)
REPRO INFILE(FILEIN2) OUTFILE(FILEOUT2)
REPRO INFILE(FILEIN3) OUTFILE(FILEOUT3)
Back to top
yianis New User Joined: 14 Aug 2006Posts: 45
Thanks... I actually created a dataset with the type as LIBRARY (i.e. PDSE) and it worked...I will also keep your suggestion in mind too.
Back to top
Please enable JavaScript!