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

Use of PARM=JPn,&Name


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

New User


Joined: 22 Aug 2020
Posts: 15
Location: United States

PostPosted: Tue Feb 15, 2022 9:45 am
Reply with quote

I wanted to use a symbolic in a include cond in icetool. I normally use symnames DD in the JCL. However, I came across documentation (in USER GUIDE for DFSORT PTFs UK90025 & UK90026) using a parm on ICETOOL exec for JPn then have the JPn in the sort card. However, I get syntax error any suggestions? is the use of this any better than symnames.

The code that works is
Code:

//TOOLIN   DD *                           
  COPY FROM(INDD01) TO(OUTDD00) USING(SRT1)
//SYMNAMES DD *                           
//  WANTDBU,+128453                       
//SRT1CNTL DD *                           
   SORT FIELDS=(1514,04,PD,A,             
                0747,04,PD,A,             
                0708,02,PD,A,             
                0003,19,CH,A)             
   INCLUDE COND=(1514,4,PD,EQ,WANTDBU,AND,
     938,19,SS,EQ,C' ',AND,               
     747,4,PD,GT,+0)                   

Job Output from the code that works:
Code:

ICE000I 0 - CONTROL STATEMENTS FOR 5650-ZOS, Z/OS DFSORT V2R4  - 14:49 ON MON F
           SORT FIELDS=(1514,04,PD,A,0747,04,PD,A,0708,02,PD,A,0003,19,CH,A)   
           INCLUDE COND=(1514,4,PD,EQ,+128453,AND,938,19,SS,EQ,C' ',AND,747,4,P
                         GT,+0)                                               

Code that fails with ICE113A
Code:

// SET WANTDBU='+128453'         
//CG44715Z EXEC PGM=ICETOOL,     
// PARM='JP1,"&WANTDBU"'       
//SRT1CNTL DD *
SORT FIELDS=(1514,04,PD,A,         
             0747,04,PD,A,         
             0708,02,PD,A,         
             0003,19,CH,A)         
INCLUDE COND=(1514,4,PD,EQ,JP1,AND,
       938,19,SS,EQ,C' ',AND,               
     747,4,PD,GT,+0)                   


Job output with error:
Code:

ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0001                               
ICE805I 0 JOBNAME: MXSPEERC , STEPNAME: CG44715Z                               
ICE802I 0 BLOCKSET     TECHNIQUE IN CONTROL                                     
ICE143I 0 BLOCKSET     SORT  TECHNIQUE SELECTED                                 
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 0 - CONTROL STATEMENTS FOR 5650-ZOS, Z/OS DFSORT V2R4  - 21:47 ON MON FE
             SORT FIELDS=(1514,04,PD,A,                     
                          0747,04,PD,A,                         
                          0708,02,PD,A,               
                          0003,19,CH,A)                     
             INCLUDE COND=(1514,4,PD,EQ,JP1,AND,                 
                                        $                                       
ICE113A E COMPARISON FIELD ERROR                                               
               938,19,SS,EQ,C' ',AND,                     
               $                                                               
[/code]
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1381
Location: Bamberg, Germany

PostPosted: Tue Feb 15, 2022 10:44 am
Reply with quote

Syntax would be
Code:
//CG44715Z EXEC PGM=ICETOOL,PARM='JP1"&WANTDBU."'

but also see notes in https://www.ibm.com/docs/en/zos/2.4.0?topic=usfc-using-set-proc-symbols-in-dfsort-icetool-statements
Back to top
View user's profile Send private message
sergeyken

Senior Member


Joined: 29 Apr 2008
Posts: 2194
Location: USA

PostPosted: Tue Feb 15, 2022 7:25 pm
Reply with quote

MichelleSpeer wrote:
The code that works is
Code:

//TOOLIN   DD *                           
  COPY FROM(INDD01) TO(OUTDD00) USING(SRT1)
//SYMNAMES DD *                           
//  WANTDBU,+128453                       
//SRT1CNTL DD *                           
   SORT FIELDS=(1514,04,PD,A,             
                0747,04,PD,A,             
                0708,02,PD,A,             
                0003,19,CH,A)             
   INCLUDE COND=(1514,4,PD,EQ,WANTDBU,AND,
     938,19,SS,EQ,C' ',AND,               
     747,4,PD,GT,+0)                   

This code cannot work. I bet it gives a JCL ERROR in those statements
Code:
//SYMNAMES DD *                           
//  WANTDBU,+128453


P.S.
This question is related to SORT utility, not to JCL/VSAM
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1381
Location: Bamberg, Germany

PostPosted: Tue Feb 15, 2022 8:10 pm
Reply with quote

sergeyken wrote:
This code cannot work. I bet it gives a JCL ERROR in those statements..

Maybe the reason why it has been posted in JCL/VSAM. *SCNR* icon_lol.gif
Back to top
View user's profile Send private message
MichelleSpeer

New User


Joined: 22 Aug 2020
Posts: 15
Location: United States

PostPosted: Tue Feb 15, 2022 9:20 pm
Reply with quote

You are correct. The actual code that woks.
I had this //* in testing this PARM='JP1...' tests and forgot remove the "//'
Code:

//SYMNAMES DD *           
  WANTDBU,+128453         
[/code]
Back to top
View user's profile Send private message
MichelleSpeer

New User


Joined: 22 Aug 2020
Posts: 15
Location: United States

PostPosted: Wed Feb 16, 2022 2:11 am
Reply with quote

this thread was made in JCL/VSAM by mistake, had multiple tabs open. I did get pass syntax error. I'm moving my thread over to right forum.
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1381
Location: Bamberg, Germany

PostPosted: Wed Feb 16, 2022 7:55 am
Reply with quote

MichelleSpeer wrote:
this thread was made in JCL/VSAM by mistake, had multiple tabs open. I did get pass syntax error. I'm moving my thread over to right forum.

A Moderator will do that.
Back to top
View user's profile Send private message
MichelleSpeer

New User


Joined: 22 Aug 2020
Posts: 15
Location: United States

PostPosted: Wed Mar 05, 2025 4:36 pm
Reply with quote

Found a way to pass in from JCL parms.

Code:

// EXPORT SYMLIST=(WANTDBU)       
// SET  WANTDBU=+128453                       
//SRT1CNTL DD *,SYMBOLS=JCLONLY                               
   SORT FIELDS=(1514,04,PD,A,             
                0747,04,PD,A,             
                0708,02,PD,A,             
                0003,19,CH,A)             
   INCLUDE COND=(1514,4,PD,EQ,&WANTDBU.,AND,
     938,19,SS,EQ,C' ',AND,               
     747,4,PD,GT,+0)     
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1381
Location: Bamberg, Germany

PostPosted: Wed Mar 05, 2025 11:29 pm
Reply with quote

Jobclass must allow SYSSYM to use this construct. I am not a fan of using JCL symbols in the SYSIN as it will let your code flow in some kind. Worst case is the jobs fails, depending on the setting.
Back to top
View user's profile Send private message
Joerg.Findeisen

Senior Member


Joined: 15 Aug 2015
Posts: 1381
Location: Bamberg, Germany

PostPosted: Fri Mar 07, 2025 10:14 am
Reply with quote

A better way to implement this is IMHO:
Code:
//    EXPORT SYMLIST=(WANTDBU)                         
//    SET WANTDBU=+123456789012345123456789012345
:
//SYMNAMES DD *,SYMBOLS=JCLONLY
WANTDBU,&WANTDBU.               
*                               
/*                             
//SYMNOUT  DD SYSOUT=*         
:
INCLUDE COND=(1514,4,PD,EQ,WANTDBU,AND,938,19,SS,EQ,C' ',AND,
              747,4,PD,GT,+0)                                 
SORT FIELDS=(1514,04,PD,A,                                   
             0747,04,PD,A,                                   
             0708,02,PD,A,                                   
             0003,19,CH,A)

You will see the difference, an ABEND, when you code it instead as suggested:
Code:
INCLUDE COND=(1514,4,PD,EQ,&WANTDBU.,AND,938,19,SS,EQ,C' ',AND,
              747,4,PD,GT,+0)
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 System add a USER parm when job submi... TSO/ISPF 4
No new posts JCL EXEC PARM data in C Java & MQSeries 2
No new posts Need to specify PARM='POSIX(ON) Java & MQSeries 4
No new posts How to pass the PARM value to my targ... COBOL Programming 8
No new posts Passing parm from JCL to Assembler, b... PL/I & Assembler 2
Search our Forums:

Back to Top