Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Substitution jcl not substituting

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
bbxrider

New User


Joined: 25 Feb 2008
Posts: 5
Location: stockton ca

PostPosted: Sat Jun 07, 2008 4:57 am    Post subject: Substitution jcl not substituting
Reply with quote

this is a company proc for cobol compile and link and debugger setup
there is an extract step to get the source code from a panvalet lib
below is the jcl to invoke the proc and substitution i have coded
//JS010 EXEC COMP370B,
// YOURID='TMCTR1B',
// STAGE='PROD',
// MEMBER='MCD149',
// PARM.COBOL=RENT,REGION=1400K,
// PARM.LKED='LIST,XREF,LET,MAP'
//*
//EXTRACT.PANDD1 DD DSN=TMCTR1B.PAN.COBOL ** INPUT PANVALET DS
//EXTRACT.SYSIN DD *
++WRITE WORK,PGMID


but below is the job output showing the substitution is different
its subbing tmcal.tmctr1b.sorpan instead of tmctr1b.pan.cobol from above
XXEXTRACT EXEC PGM=PAN#1, ** WRITE PGM TO SEQ FILE
XX REGION=0K
XX*
//EXTRACT.PANDD1 DD DSN=TMCTR1B.PAN.COBOL ** INPUT PANVALET DS
X/PANDD1 DD DSN=TMCAL.&YOURID..SORPAN, ** INPUT PANVALET DS
X/ DISP=(SHR,KEEP,KEEP)
IEFC653I SUBSTITUTION JCL - DSN=TMCAL.TMCTR1B.SORPAN[/b],DISP=(SHR,KEEP,K
XXPANDD2 DD DSN=&&SEQWORK, ** OUTPUT SEQUENTIAL DS

???????? i remeber something special can take place in the procs if the substitution line is coded as '/x' instead of the standard '//'
but not sure and am stuck here
bob
Back to top
View user's profile Send private message

dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Sat Jun 07, 2008 5:17 am    Post subject:
Reply with quote

Hello Bob and welcome to the forums,

When a proc expands, the // are the jcl, the XX are straight expansion from the cataloged proc, and X/ are statements resolved during expansion.

Please post the first part of your compile proc thru the step after "extract".
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Sat Jun 07, 2008 6:13 am    Post subject:
Reply with quote

Hi Bob,
there is no problem with your JCL. it's only symblic parameters that get substituted,

X/ as Dick mentioned shows the DD statement that has been overridden but will not show you the new name as being substitued, in your case PANDD1.

Run your job, it should be ok.

Gerry
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Sat Jun 07, 2008 7:38 am    Post subject: Reply to: substitution jcl not substituting
Reply with quote

Hi Gerry,

My interpretation may have been off - that the job did not run as expected (hence the request to see that part of the proc). . .

Bob,

If it did run ok, no need to post the proc icon_smile.gif - but do let us know if you're good to go.

d
Back to top
View user's profile Send private message
bbxrider

New User


Joined: 25 Feb 2008
Posts: 5
Location: stockton ca

PostPosted: Sat Jun 07, 2008 11:54 pm    Post subject: Reply to: substitution jcl not substituting
Reply with quote

thanks for the replies, i wont be able to post any other pieces of the proc until monday back at work but will try to explain problem more here in the meantime.
this is kinda standard compile stream getting source from panvalet, etc
i want the compile to get the source extracted from tmctr1b.pan.cobol, and passed to the compile as sysin, the 'member' is also a parm, see 3rd card after the proc exec. however, the 'substituted' dsn on the x/ card is 'tmcal.&yourid..sorpan', not the right dataset.
i thought my //extract.pandd1 override card would cause the stream to substitute and point to my desired dsn, tmctr1b.pan.cobol
the compile step returns 16 with a message something to the effect that there was no sysin data, which i'm thinking it tried to pull member 'mcd149' out of tmcal.tmctr1b.sorpan, but that pds does not exist
since there is no tmcal.tmctr1b.sorpan i would have thought the job would have a bad return code in the 'extract' step due to data set not found
phew
just to beat this a little further, i was expecting the iefc message to be
IEFC653I SUBSTITUTION JCL - DSN=TMCTR1B.PAN.COBOL[/b],DISP.......
instead of what it did substitute
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Sun Jun 08, 2008 1:38 am    Post subject:
Reply with quote

Hello,

Quote:
but that pds does not exist
I've not worked closely (at a lower level) with Panvalet, but if it works anything like Librarian (and i believe it does), the source is not in a pds - it is in a file with a proprietary format. If this is correct a pds may not be substituted for a panvalet library. You would need a different "front-end" to create the sysin for the compiler.

Is there some reason not to put the module into Panvalet with a new name?
Back to top
View user's profile Send private message
bbxrider

New User


Joined: 25 Feb 2008
Posts: 5
Location: stockton ca

PostPosted: Tue Jun 10, 2008 5:43 am    Post subject:
Reply with quote

thanks again for the replies, turns out it local knowledge and imho, better instructions for the jcl mask that invokes the proc.
turns out my override was ok for the source pds.
the jcl indicates you only need to specify the source 'member' name in one place, see 'member' below
//JS010 EXEC COMP370B,
// YOURID='TMCTR1B',
// STAGE='PROD',
// MEMBER='MCD149',
// PARM.COBOL=RENT,REGION=1400K,
// PARM.LKED='LIST,XREF,LET,MAP'
however, the member name also needs to specified in an override for the extract sysin card for PGMID, see below
//EXTRACT.SYSIN DD *
++WRITE WORK,PGMID
so this literally needs to be coded as
//EXTRACT.SYSIN DD *
++WRITE WORK,MCD149

so the member name needs to be specified a 2nd time, sorry about the confusion on the issue.
bob
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Jun 10, 2008 6:04 am    Post subject: Reply to: Substitution jcl not substituting
Reply with quote

You're welcome - good to hear that it is now working.

Thanks for posting the resolution icon_smile.gif

d
Back to top
View user's profile Send private message
Subha Sreenivasan

New User


Joined: 04 Aug 2008
Posts: 5
Location: Chennai

PostPosted: Thu Jan 15, 2009 3:00 pm    Post subject:
Reply with quote

Hi,

On getting the information from the above replies we had tried to extract the member from PANVALET library with the following JCL

//STEP1 EXEC PGM=PAN#1
//DD1 DD DSN=TNAME.PROD.PANLIB,DISP=SHR
//SYSIN DD *
++WRITE WORK,PGMNAME
//* ******

The member name is PGMNAME, PANVALET library name is TNAME.PROD.PANLIB. On executing the above JCL we are getting an abend U0205. Kindly correct us and help us to extract the member from PANVALET to a sequential file.
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Thu Jan 15, 2009 9:06 pm    Post subject:
Reply with quote

Hello,

What does the Panvalet documentation say about a U0205?

There is possibly additional diagnostic info in the output from the job as well.

Suggest you look at a compile from a Panvalet library that is working and compare your extract that abends to what is done in the process that is working.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts z/OS V2.1 Instream substitution of sy... colin777 JCL & VSAM 0 Thu Dec 05, 2013 10:22 am
No new posts Rexx Variable Substitution with POS c... Mickeydusaor CLIST & REXX 8 Thu Jul 07, 2011 7:21 pm
No new posts Using dynamic substitution in jcl on ... dominickim JCL & VSAM 14 Fri Sep 18, 2009 3:58 pm
No new posts GDG substitution khamarutheen JCL & VSAM 7 Thu Jul 30, 2009 12:38 am
No new posts Reg: Copybook Substitution in endevor dick scherrer CA Products 2 Wed Jan 28, 2009 3:55 am

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us