There is an EXEC statement parameter in zOS 2.1 and above, PARMDD.
This parameter enables the job to pass a string longer than 100 characters to the EXEC program IGYCRCTL.
Using PARMDD it is possible to pass a string up to approx. 32000 characters. If would be extremely helpful if it were possible to pass parameters longer than 100 characters.
Endevor does not support the PARMDD parameter. Therefore processors are limited to passing up to 100 characters using the PARM parameter.
The suggestion is to use MULTIPLE C1PRMGEN steps to build the parameter file content and use PARM=OPTFILE in your IGYCRCTL step :
//S1 EXEC PGM=C1PRMGEN, PARM=’PARM 1'
//PARMOUT DD DSN=&&PARM1,DISP=(,PASS)
//S2 EXEC PGM=C1PRMGEN, PARM=’PARM 2'
//PARMOUT DD DSN=&&PARM2,DISP=(,PASS)
//COMPILE EXEC PGM=IGYCRCTL,PARM=OPTFILE
//SYSOPTF DD DSN=&&PARM1,DISP=(OLD,DELETE)
// DD DSN=&&PARM2,DISP=(OLD,DELETE)
The processor will be executed as shown in the example below:
09:15:25 C1X0240I //***************************************************************
09:15:25 C1X0240I //* C1PRMGEN - use C1PRMGEN to create a global edit parm cards
09:15:25 C1X0240I //**************************************************************
09:15:25 C1X0240I 21 //C1PRMGN1 EXEC PGM=C1PRMGEN,
09:15:25 C1X0240I // PARM=' LIB,NOSEQ,OBJECT,APOST,NOADATA,CODEPAGE(1140)'
09:15:25 C1X0240I 22 //PARMOUT DD DISP=(NEW,PASS),
09:15:25 C1X0240I // UNIT=VIO,
09:15:25 C1X0240I // SPACE=(80,(1,0)),
09:15:25 C1X0240I // DCB=(RECFM=FB,LRECL=80),
09:15:25 C1X0240I // DSN=&PRMGEN01
09:15:25 C1X0240I //*
09:15:25 C1X0240I 23 //C1PRMGN2 EXEC PGM=C1PRMGEN,
09:15:25 C1X0240I // PARM=' NODBCS,NODECK,NOEXIT,LANGUAGE(EN),LINECOUNT(60),'
09:15:25 C1X0240I 24 //PARMOUT DD DISP=(NEW,PASS),
09:15:25 C1X0240I // UNIT=VIO,
09:15:25 C1X0240I // SPACE=(80,(1,0)),
09:15:25 C1X0240I // DCB=(RECFM=FB,LRECL=80),
09:15:25 C1X0240I // DSN=&PRMGEN02
09:15:25 C1X0240I //*
09:15:25 C1X0240I 25 //C1PRMGN3 EXEC PGM=C1PRMGEN,
09:15:25 C1X0240I // PARM=' TRUNC(OPT),NODYNAM,LIST,RENT,MAP,XREF,OPT'
09:15:25 C1X0240I 26 //PARMOUT DD DISP=(NEW,PASS),
09:15:25 C1X0240I // UNIT=VIO,
09:15:25 C1X0240I // SPACE=(80,(1,0)),
09:15:25 C1X0240I // DCB=(RECFM=FB,LRECL=80),
09:15:25 C1X0240I // DSN=&PRMGEN03
09:15:25 C1X0240I //*
09:15:25 C1X0240I //*******************************************************************
09:15:25 C1X0240I //** COMPILE THE ELEMENT **
09:15:25 C1X0240I //*******************************************************************
09:15:25 C1X0240I 27 //COMPILE EXEC PGM=IGYCRCTL,COND=(0,LT),MAXRC=4,
09:15:25 C1X0240I // PARM=OPTFILE
09:15:25 C1X0240I //* PARM='&PARMCOB'
09:15:25 C1X0240I 28 //SYSOPTF DD DISP=(OLD,PASS),
09:15:25 C1X0240I // DSN=&PRMGEN01
09:15:25 C1X0240I 29 // DD DISP=(OLD,PASS),
09:15:25 C1X0240I // DSN=&PRMGEN02
09:15:25 C1X0240I 30 // DD DISP=(OLD,PASS),
09:15:25 C1X0240I // DSN=&PRMGEN03