The job:

//ECHO      JOB  505303JOB,'Paul Gilmartin',
// MSGLEVEL=(1,1),REGION=0M
//*
//* Doc: Hack to display PARM in SYSPRINT
//*
//USERC    OUTPUT JESDS=ALL,DEFAULT=YES,
//*  DEST=&SYSNAME..&SYSUID,
//  CLASS=R,PAGEDEF=V0648Z,CHARS=GT12
//*
//  SET ME='gil'
//*
//* Only to display PARM in error message.
//A     EXEC  PGM=ASMA90,
//  PARM='''Bonnie&&Clyde''&&&ME'
//SYSPRINT  DD  SYSOUT=(,)
//

Shows in JESJCL:

          //* Only to display PARM in error message.
        4 //A     EXEC  PGM=ASMA90,
          //  PARM='''Bonnie&&Clyde''&&&ME'
          IEFC653I SUBSTITUTION JCL - 
PGM=ASMA90,PARM='''Bonnie&&Clyde''&&gil'

... but in HLASM SYSPRINT:

OPTIONS MESSAGES
** ASMA400W Error in invocation parameter - 'Bonnie&Clyde'&gil

I believe the ASMA400W is correct and IEFC653I is incorrect.
The PARM passed to the program should be 
not: ''Bonnie&&Clyde''&&gil
but: 'Bonnie&Clyde'&gil

... because JCL substitution collapses double ampersands
to single ampersands and double apostrophes to single
apostrophes in the PARM actually passed to the executed
program.  IEFC653I should properly reflect this, even as
HLASM does.

I hate JCL!

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to