IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Parameter Passing from a JOB to a PROC


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 7:49 pm
Reply with quote

Hi all,

My requirement is to pass 2 parameters from my job to a proc. The proc receives the parameters and then sends executes the corresponding cobol program.

I have written parameter passing JCLs before. But this one seems to give me an error and I am not able to correct them.

I have the below JCL to pass 2 parameters to a PARM. And the error I get are :-

Code:
//user123  JOB (U,NM),                           
//         'TEST-JOB',                           
//         MSGCLASS=X,                           
//         CLASS=0,                               
//         NOTIFY=&SYSUID                         
// JCLLIB ORDER=user123.DENVER.PROCLIB           
//STEP1    EXEC PROCNAME
//         MKT=11,                               
//         SYSTEM=ABC


LABEL SV MSG.NO. ERROR MESSAGE
-------- -- -------- -------------------------------------------------
.JAAA 8 DSS5210E - IMPROPER ATTRIBUTES FOR A
JOBLIB/STEPLIB
.JAAA 0 DSS2052A - LIBRARY NOT SEARCHED FOR PROGRAM
NAME
.JAAA 8 DSS6130E - CONTINUATION CARD STARTS PAST COLUMN
16
.JAAA 8 DSS6050E - UNKNOWN OPERATOR
.JAAA 4 DSS2050W - PROGRAM "DOCONE " NOT FOUND
.JAAB 8 DSS6050E - UNKNOWN OPERATOR

Below is the PROC, and I have inserted the error in them too.

Code:
//PROCNAME PROC MKT=,SYSTEM=                           
//STEP1    EXEC PGM=<program name>,PARM='&MKT.&SYSTEM'         
//STEPLIB  DD   DSN=x.y.z,DISP=SHR   
 ***ERROR  - DSS5210E - IMPROPER ATTRIBUTES FOR A JOBLIB/STEPLIB
 *ADVISORY - DSS2052A - LIBRARY NOT SEARCHED FOR PROGRAM NAME   
//IDOC     DD   DSN=user123.INPUT.FILE,DISP=SHR       
//ODOC     DD   DSN=user123.OUTPUT.FILE,               
//              DISP=(NEW,CATLG,CATLG),               
 ***ERROR  - DSS6130E - CONTINUATION CARD STARTS PAST COLUMN 16   
//              DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
***ERROR  - DSS6050E - UNKNOWN OPERATOR           
**WARNING - DSS2050W - PROGRAM "DOCONE " NOT FOUND
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Wed Jan 31, 2007 8:07 pm
Reply with quote

murali922 wrote:
LABEL SV MSG.NO. ERROR MESSAGE
-------- -- -------- -------------------------------------------------
.JAAA 8 DSS5210E - IMPROPER ATTRIBUTES FOR A
JOBLIB/STEPLIB
.JAAA 0 DSS2052A - LIBRARY NOT SEARCHED FOR PROGRAM
NAME
.JAAA 8 DSS6130E - CONTINUATION CARD STARTS PAST COLUMN
16
.JAAA 8 DSS6050E - UNKNOWN OPERATOR
.JAAA 4 DSS2050W - PROGRAM "DOCONE " NOT FOUND
.JAAB 8 DSS6050E - UNKNOWN OPERATOR
Is x.y.z a PDS? With the correct recfm?
The DISP of the output file starts after cc16, move it over. Same for the DCB.
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 8:14 pm
Reply with quote

Yes x.y.z is a PDS. And its should have the correct recfm as i am using it in other jobs.

Code:
//STEPLIB  DD   DSN=CHGMAN.CRSU.#003238.BSB,DISP=SHR             
***ERROR  - DSS5210E - IMPROPER ATTRIBUTES FOR A JOBLIB/STEPLIB 
*ADVISORY - DSS2052A - LIBRARY NOT SEARCHED FOR PROGRAM NAME     


The above is the error I dont know how to resolve....

x.y.z looks like this :-

Code:
General Data                           Current Allocation                     
 Management class . . : NOACTION        Allocated tracks  . : 240             
 Storage class  . . . : SINGLEV         Allocated extents . : 16             
  Volume serial . . . : SVZQ90                                               
  Device type . . . . : 3390                                                 
 Data class . . . . . : NONSTD         Current Utilization                   
  Organization  . . . : PO              Used tracks . . . . : 33             
  Record format . . . : FB              Used extents  . . . : 3               
  Record length . . . : 80                                                   
  Block size  . . . . : 27920                                                 
  1st extent tracks . : 15                                                   
  Secondary tracks  . : 15                                                   
  Data set name type  : PDS                                                   
                                                                             
  Creation date . . . : 2007/01/23      Referenced date . . : 2007/01/31     
  Expiration date . . : ***None***                                           
                                                                             
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 8:19 pm
Reply with quote

I changed the steplib to proclib and the problem is resolved.
But I am still getting one error which is

Quote:
***ERROR - DSS2050E - PROGRAM "DOC1VER4" NOT FOUND
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 8:47 pm
Reply with quote

Hi william,

As u suggested I checked the PDS attributes again and resolved the problem. The following are the errors I get now...

Code:
1 //PV9793AA JOB (UU506505625,NM),                                   
  //         'TEST-JOB',                                             
  //         MSGCLASS=X,                                             
  //         CLASS=0,                                               
  //         NOTIFY=&SYSUID                                         
2 //PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB                           
3 //STEP1    EXEC DOC1PROC,                                         
  //         MKT=37,SYSTEM=TRIUMPH                                   


STMT NO. MESSAGE
2 IEFC019I MISPLACED DD STATEMENT
3 IEFC612I PROCEDURE DOC1PROC WAS NOT FOUND
3 IEFC657I THE SYMBOL MKT WAS NOT USED
3 IEFC657I THE SYMBOL SYSTEM WAS NOT USED
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Wed Jan 31, 2007 8:55 pm
Reply with quote

murali922 wrote:
I changed the steplib to proclib and the problem is resolved.
But I am still getting one error which is

Quote:
***ERROR - DSS2050E - PROGRAM "DOC1VER4" NOT FOUND
What is DOC1VER4? A program? And where is it located, not in x.y.z I hope.....
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 8:58 pm
Reply with quote

But I am still getting the error message as quoted in my previous message...
Code:

1 //PV9793AA JOB (UU506505625,NM),                                   
  //         'TEST-JOB',                                             
  //         MSGCLASS=X,                                             
  //         CLASS=0,                                               
  //         NOTIFY=&SYSUID                                         
2 //PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB                           
3 //STEP1    EXEC DOC1PROC,                                         
  //         MKT=37,SYSTEM=TRIUMPH     



STMT NO. MESSAGE
2 IEFC019I MISPLACED DD STATEMENT
3 IEFC612I PROCEDURE DOC1PROC WAS NOT FOUND
3 IEFC657I THE SYMBOL MKT WAS NOT USED
3 IEFC657I THE SYMBOL SYSTEM WAS NOT USED
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Wed Jan 31, 2007 9:03 pm
Reply with quote

To be clear, you can see below the JCL along with the PROC prefixed with P1 :-

Code:
//PV9793AA JOB (UU506505625,NM),                       
//         'TEST-JOB',                                 
//         MSGCLASS=X,                                 
//         CLASS=0,                                   
//         NOTIFY=&SYSUID                             
--         NOTIFY=PV9793A                             
//PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB               
//STEP1    EXEC DOC1PROC,                             
//         MKT=37,                                     
//         SYSTEM=TRIUMPH                             
  P1//DOC1PROC PROC MKT=,SYSTEM=                       
  P1//STEP1    EXEC PGM=DOCONE,PARM=&MKT.&SYSTEM       
  P1--STEP1    EXEC PGM=DOCONE,PARM=37TRIUMPH         
  P1//STEPLIB  DD DSN=CHGMAN.CRSU.#003238.BLB,DISP=SHR
  P1//IDOC     DD DSN=PV9793A.INPUT.FILE,DISP=SHR     
  P1//ODOC     DD DSN=PV9793A.OUTPUT.FILE,             
  P1//            DISP=(NEW,CATLG,CATLG),             
  P1//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=800) 
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Wed Jan 31, 2007 11:20 pm
Reply with quote

Hello,

Look in the PV9793A.DENVER.PROCLIB dataset for a member named DOC1PROC. The member name is what the PROCload looks for. The //DOC1PROC inside the proc is not what the system uses to find and load the proc.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Jan 31, 2007 11:23 pm
Reply with quote

Code:

//PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB


is a new one on me, and is not documented in the JCL Reference Manuals. Does this statement actually do anything?
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Feb 01, 2007 1:17 am
Reply with quote

Hello,

If memory serves (and it may not) this may be an obsolete statement. I seem to recall that some sites installed an exit to just ignore this statement rather than raise a JES2 error because it was in all of their jobstreams. It may have been re-activated in JES3, but i don't know for sure. If raises a jcl error here. This machine is JES2.

Once upon a time, it could be used for PROCs like like JOBLIB is used for programs.

Murali922 - where did you get the "P1" lines you posted? Which pds and member name?
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Feb 01, 2007 4:07 am
Reply with quote

No, the "2 IEFC019I MISPLACED DD STATEMENT" says it isn't.
Just how do you override modify the concat for proclibs?

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

Moderator Emeritus


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

PostPosted: Thu Feb 01, 2007 5:18 am
Reply with quote

Hello,

Well, now i'm confused. . . Bill, help me out here - i know that my IEBIBALL isn't what it used to be, but in the following:

Quote:
No, the "2 IEFC019I MISPLACED DD STATEMENT" says it isn't.


what is "it" and what "is it not"? icon_confused.gif

I'm pretty sure the IEFC019I is because this DD card is encountered before an EXEC.
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Feb 01, 2007 5:57 am
Reply with quote

I'm sorry Dick, but (as you pointed out earlier for him, to look into the PDS for the existence of the proc) the (as you may already know from COBOL compiles) first error generally explains a lot that follow.
If the (whatever) says that the PROCLIB is a "MISPLACED" statement, any hope of murali922 finding his PROC in it is zip.
And I still ask the question, just how do you override/modify/whatever the "standard" PROCLIB concatenation? 'Cause that might be his problem....grin....
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Feb 01, 2007 6:43 am
Reply with quote

Hi Bill,

To answer you last question, a way to override the system PROCLIB concatenation is with the JCLLIB statement. It is not a dd systement and goes something like:
Code:

//MYLIB  JCLLIB  ORDER=('MY.PROC1','MY.PROC2',etc)


There is also the ever popular:
Code:
/*JOBPARM PROCLIB=dsn


Have a good one. . . icon_biggrin.gif
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Feb 01, 2007 6:46 am
Reply with quote

thanks.... icon_lol.gif
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Feb 01, 2007 6:52 am
Reply with quote

You're Welcome. icon_wink.gif
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Thu Feb 01, 2007 8:13 am
Reply with quote

I got all the /P1 lines when I did a job scan on the main JCL.

Job Scan just showed the PROC contents with a /P1 prefixed....

Should I just change the PARMLIB statement to something else ?
Also I have checked PV9793A.DENVER.PROCLIB and it does have the PROC DOC1PROC in it !

I just dont know how to rectify the misplaced DD statement error....

Seeing the discussion, I find that the problem might be because of

Code:
//PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB


Should I be removing the above and then putting in :-

Code:
//MYLIB  JCLLIB  ORDER=('PV9793A.DENVER.PROCLIB ')


Let me know if I have understood...
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus


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

PostPosted: Thu Feb 01, 2007 9:15 am
Reply with quote

Hello,

PARMLIB?

Please try to run the job without either the PROCLIB or the JCLLIB statements.

If that does not work, try with the JCLLIB you posted.

If you don't need it, it will be cleaner to leave it out.

You might also look in the PV9793A.DENVER.PROCLIB and see what other PROCs are there. Check the execution jcl for a couple of them and see if they specify the proc library in the jcl or if the standard procedure library concatenation is sufficient for other PROCs in that library.

The system support people can tell you what PROClibs are in the standard list.

Good luck and let us know how it progresses icon_smile.gif
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Thu Feb 01, 2007 3:05 pm
Reply with quote

Superb ! Thanks a lot guys. Its working perfect now icon_biggrin.gif
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Thu Feb 01, 2007 3:17 pm
Reply with quote

Oh good, what a relief.
After so many suggestions, just what was the solution?
Back to top
View user's profile Send private message
murali922

New User


Joined: 25 Jul 2005
Posts: 92
Location: India

PostPosted: Thu Feb 01, 2007 3:51 pm
Reply with quote

Just removed :-

Code:
//PROCLIB  DD DSN=PV9793A.DENVER.PROCLIB


and added

Code:
//MYLIB  JCLLIB  ORDER=('PV9793A.DENVER.PROCLIB ')
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Using the Jobname parameter in a Qual... ABENDS & Debugging 1
No new posts Passing Parameters to Programs Invoke... PL/I & Assembler 5
No new posts Passing SYSPRINT to Invoked Program PL/I & Assembler 9
No new posts Demand with DEADLINE TIME parameter CA Products 4
No new posts Option DYNALLOC second parameter. DFSORT/ICETOOL 11
Search our Forums:

Back to Top