View previous topic :: View next topic
Author
Message
Learncoholic New User Joined: 20 Sep 2007Posts: 97 Location: India
Hi
I have written the following JCL:
Code:
//STEP1 EXEC PGM=SYNCTOOL
//DFSMSG DD SYSOUT=*
//TOOLMSG DD SYSOUT=*
//SYMBOL DD DSN=&&SYMBOL,DISP=(NEW,PASS),SPACE=(CYL,(1,1))
//INDD DD *
AAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEE
/*
//OUTDD DD SYSOUT=*
//TOOLIN DD *
SORT FROM(INDD) TO(SYMBOL) USING(CNT1)
SORT FROM(TEMP1) TO(OUTDD) USING(CNT2)
/*
//CNT1CNTL DD *
OPTION COPY
OUTFIL REMOVECC,NODETAIL,BUILD=(80X),
TRAILER1=(C' OUTFIL IFTHEN=(WHEN=(81,5,PD,EQ,',
COUNT=(M11,LENGTH=05),C'),BUILD=(C'''',1,28,29:C'')'',80:X)),')
/*
//CNT2CNTL DD *
SORT FIELDS=(81,5,PD,D)
INREC OVERLAY(81:SEQNUM,5,PD)
/*
// DD DSN=&&SYMBOL1,DISP=(OLD,PASS)
// DD *
IFTHEN=(WHEN=NONE,BUILD=(C'''',1,28,C''',',80:X))
/*
This JCL is throwing the error as:
Code:
STEP1 CNT2CNTL+001 - DATA SET NOT FOUND
STEP1 - STEP WAS NOT EXECUTED.
I want the o/p as:
Code:
'AAAAAAAAAAAAAAAAAAAAAAAAAA',
'BBBBBBBBBBBBBBBBBBBBBBBBBB',
'CCCCCCCCCCCCCCCCCCCCCCCCCC',
'DDDDDDDDDDDDDDDDDDDDDDDDDD',
'EEEEEEEEEEEEEEEEEEEEEEEEEE)
I would like to know why this is happening.
Back to top
superk Global Moderator Joined: 26 Apr 2004Posts: 4652 Location: Raleigh, NC, USA
Here, in the JCL, you call the temp dataset &&SYMBOL:
//SYMBOL DD DSN=&&SYMBOL,DISP=(NEW,PASS),SPACE=(CYL,(1,1))
but here you refer to it as &&SYMBOL1:
// DD DSN=&&SYMBOL1,DISP=(OLD,PASS)
looks like a typo.
Back to top
Learncoholic New User Joined: 20 Sep 2007Posts: 97 Location: India
Hi superk,
That was a typing error. Sorry for that.
It is infact &&symbol
Back to top
Aaru Senior Member Joined: 03 Jul 2007Posts: 1287 Location: Chennai, India
Learncoholic,
Code:
SORT FROM(TEMP1) TO(OUTDD) USING(CNT2)
What is TEMP1 here? I don't find any DD named TEMP1 in your code?
Back to top
Learncoholic New User Joined: 20 Sep 2007Posts: 97 Location: India
Sorry
Another typing error
It is INDD in fact
Back to top
Aaru Senior Member Joined: 03 Jul 2007Posts: 1287 Location: Chennai, India
Learncoholic,
This requirement is very similar to the one that you had asked few days before. Check this link and make necessary changes and it should work. Else, post your queries here.
http://ibmmainframes.com/viewtopic.php?t=26252
Back to top
Aaru Senior Member Joined: 03 Jul 2007Posts: 1287 Location: Chennai, India
Learncoholic,
I have modified the code as per your requirement. Juct check if this is working fine.
Code:
//S EXEC PGM=SORT
//SORTIN DD *
AAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEE
/*
//SORTOUT DD DSN=&&SYMNAME,DISP=(,PASS),SPACE=(TRK,(1,1))
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTFIL REMOVECC,NODETAIL,BUILD=(80X),
TRAILER1=(C'LASTREC,+',COUNT=(M11,LENGTH=8))
/*
// EXEC PGM=SORT
//SORTIN DD *
AAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEE
/*
//SYMNAMES DD DSN=*.S.SORTOUT,DISP=(OLD,DELETE),VOL=REF=*.S.SORTOUT
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(81,8,ZD,LT,LASTREC),BUILD=(C'''',1,27,C''',',80:X)),
IFTHEN=(WHEN=(81,8,ZD,EQ,LASTREC),BUILD=(C'''',1,27,C')',80:X))
OUTFIL BUILD=(1,80)
/*
output:
Code:
'AAAAAAAAAAAAAAAAAAAAAAAAAAA',
'BBBBBBBBBBBBBBBBBBBBBBBBBBB',
'CCCCCCCCCCCCCCCCCCCCCCCCCCC',
'DDDDDDDDDDDDDDDDDDDDDDDDDDD',
'EEEEEEEEEEEEEEEEEEEEEEEEEEE)
Back to top
Learncoholic New User Joined: 20 Sep 2007Posts: 97 Location: India
Hi Aaru
Thank you so much. Your JCL is working fine.
I would also want to know where exactly was my error and why it didn't work out.
Back to top
Aaru Senior Member Joined: 03 Jul 2007Posts: 1287 Location: Chennai, India
You are welcome .
The problem is with the second control card. I guess the syntax is wrong. what were you trying to do with this code?
Code:
// DD DSN=&&SYMBOL,DISP=(OLD,PASS)
// DD *
IFTHEN=(WHEN=NONE,BUILD=(C'''',1,28,C''',',80:X))
/*
Back to top
Learncoholic New User Joined: 20 Sep 2007Posts: 97 Location: India
Hi Aaru,
Well I wanted to concatanate The Control cards to give a complete control as:
Code:
SORT FIELDS=(81,5,PD,D)
INREC OVERLAY(81:SEQNUM,5,PD)
OUTFIL IFTHEN=(WHEN=(81,5,PD,EQ,00005),BUILD=(1,28,29:C')',80:X)),
IFTHEN=(WHEN=NONE,BUILD=(C'''',1,28,C''',',80:X))
The first two lines is provided through CNT2CNTL. Then the SYMBOL dataset is concatinated to give the 3rd line and finally the last instream DD statement concatinates the last of control statements.
Back to top
Please enable JavaScript!