|
| 1 | +//*--------------------------------------------------------------------* |
| 2 | +//* T4ZOPTNR - CREATE A PARM OPTION MODEL FROM TABLE |
| 3 | +//* PARM='ENBPIU00 M <SRCHVAL1> <SRCHVAL2> ....' |
| 4 | +//* Option M - Process only selected rows based on search value given |
| 5 | +//*--------------------------------------------------------------------* |
| 6 | +//T4ZOPTNR EXEC PGM=IKJEFT1B, **Examine T4Z Options** |
| 7 | +// PARM='ENBPIU00 M &C1ELEMENT', |
| 8 | +// COND=(4,LT) |
| 9 | +//SYSEXEC DD DISP=SHR,DSN=&CSIQCLS0 |
| 10 | +// DD DISP=SHR,DSN=&USERCLS0 |
| 11 | +//MYYAML DD DISP=SHR,DSN=&OPTIONS(&C1ELEMENT) |
| 12 | +//OPTIONS DD * |
| 13 | + $nomessages = 'Y' |
| 14 | + $NumberModelsAndTblouts= 1 |
| 15 | + Addnl_parm = ' ' |
| 16 | + x=BuildFromMODEL('MODEL') |
| 17 | + call bpxwdyn "info fi(MYYAML) inrtdsn(dsnvar)" |
| 18 | + dsnmem = dsnvar||'('&C1ELEMENT')'; |
| 19 | + x = SYSDSN("'"dsnmem"'"); |
| 20 | + if x = 'OK' then, Addnl_parm = 'Y' |
| 21 | +//TABLE DD DSN=&TABLE(RTABLE), |
| 22 | +// DISP=SHR |
| 23 | +//MODEL DD * *Reporting output |
| 24 | + Element = '&Element' |
| 25 | + Recording = '&Recording' |
| 26 | +//SYSTSIN DD DUMMY |
| 27 | +//SYSTSPRT DD SYSOUT=* |
| 28 | +//TBLOUT DD DSN=&&ROPTIONS,DISP=(,PASS,DELETE) |
| 29 | +//*--------------------------------------------------------------------* |
| 30 | +//* RECORDING JCL |
| 31 | +//*--------------------------------------------------------------------* |
| 32 | +//T4ZRECRD EXEC PGM=IKJEFT1B, **Create RECORDING JCL |
| 33 | +// PARM='ENBPIU00 1', |
| 34 | +// COND=(4,LT) |
| 35 | +//TABLE DD * |
| 36 | +* Any |
| 37 | + * |
| 38 | +//SYSEXEC DD DISP=SHR,DSN=&USERCLS0 |
| 39 | +// DD DISP=SHR,DSN=&CSIQCLS0 |
| 40 | +//YAML2REX DD DUMMY <- Turn on/off REXX trace |
| 41 | +//MYYAML DD DISP=SHR,DSN=&OPTIONS(&C1ELEMENT) |
| 42 | +//*YYAML DD DISP=(OLD,DELETE),DSN=&&OPTIONS |
| 43 | +//OPTIONS DD * Bump jobcard and fetch Accounting code |
| 44 | +* Identify Whether Recording needs to be executed |
| 45 | + X = IncludeQuotedOptions(TEST4OPT) |
| 46 | + if Recording \= 'Y' then, exit(3) |
| 47 | + WhoAmI = USERID() |
| 48 | +* Accounting value fetch may not be necessary at your site |
| 49 | + myJobAccountingCode = GETACCTC(whoAmI) |
| 50 | + myJobName = MVSVAR('SYMDEF',JOBNAME ) |
| 51 | + BumpedJobname = BUMPJOB(myJobName) |
| 52 | +* Include the additional parms or lines in Recording JCL |
| 53 | + if Addnl_parm = ' ' then do; + |
| 54 | + x=BuildFromMODEL('MODEL'); + |
| 55 | + IncludeJcl='//*'; + |
| 56 | + x=BuildFromMODEL('MODEL1'); + |
| 57 | + x=BuildFromMODEL('MODEL2'); + |
| 58 | + $SkipRow='Y'; + |
| 59 | + END; |
| 60 | + Call YAML2REX 'MYYAML' |
| 61 | + HowManyYamls = QUEUED() |
| 62 | + Do yaml# =1 to HowManyYamls; + |
| 63 | + Parse pull yaml2rexx; + |
| 64 | + interpret yaml2rexx; + |
| 65 | + End; |
| 66 | + x=BuildFromMODEL('MODEL') |
| 67 | + Do yaml# =1 to TEST4Z.JCLS.0 ; + |
| 68 | + Includejcl=substr(TEST4Z.JCLS.yaml#,3); + |
| 69 | + if Includejcl = ' ' then, Includejcl = '//*'; + |
| 70 | + x=BuildFromMODEL('MODEL1'); + |
| 71 | + END; |
| 72 | + x=BuildFromMODEL('MODEL2') |
| 73 | + Do yaml# =1 to TEST4Z.PARMS.0; + |
| 74 | + Includejcl=substr(TEST4Z.PARMS.yaml#,3); + |
| 75 | + x=BuildFromMODEL('MODEL1'); + |
| 76 | + END; |
| 77 | + $SkipRow='Y' |
| 78 | +//TEST4OPT DD DSN=&&ROPTIONS,DISP=(OLD,PASS) |
| 79 | +//MODEL DD DATA,DLM=QQ |
| 80 | +//&BumpedJobname JOB (&myJobAccountingCode),'&whoAmI T4Z', |
| 81 | +// CLASS=A,MSGCLASS=X,NOTIFY=&SYSUID |
| 82 | +//RUNTEST EXEC PGM=ZTESTEXE |
| 83 | +//STEPLIB DD DISP=SHR,DSN=your_Test4z_Runtime_Loadlib |
| 84 | +// DD DISP=SHR,DSN=&LOADLIB |
| 85 | +//ZLDATA DD DSN=&PROJECT..&C1STAGE..T4ZLDATA(RECORDNG), |
| 86 | +// DISP=OLD |
| 87 | +//SYSPRINT DD SYSOUT=* |
| 88 | +QQ |
| 89 | +//MODEL1 DD DATA,DLM=Q1 |
| 90 | +&Includejcl |
| 91 | +Q1 |
| 92 | +//MODEL2 DD DATA,DLM=Q2 |
| 93 | +//ZLOPTS DD * |
| 94 | +RUN(&C1ELEMENT) |
| 95 | +Q2 |
| 96 | +//SYSIN DD DUMMY |
| 97 | +//SYSTSIN DD DUMMY |
| 98 | +//SYSTSPRT DD SYSOUT=* |
| 99 | +//TBLOUT DD DSN=&PROJECT..&C1ELEMENT..RECRDNG, |
| 100 | +// DISP=(,PASS,DELETE) |
| 101 | +//********************************************************************** |
| 102 | +//* SHOW THE RECORDING JCL |
| 103 | +//********************************************************************** |
| 104 | +//SHOWJCL EXEC PGM=IEBGENER, **Show Results** |
| 105 | +// COND=(4,LT) |
| 106 | +//* COND=((4,GT,T4ZRECRD)), |
| 107 | +//* EXECIF=(&C1ACTION,EQ,GENERATE) |
| 108 | +//SYSPRINT DD SYSOUT=* |
| 109 | +//SYSUT1 DD DISP=(OLD,PASS),DSN=&PROJECT..&C1ELEMENT..RECRDNG |
| 110 | +//SYSUT2 DD DSN=&&ZLJCR,DISP=(,PASS,DELETE) |
| 111 | +//SYSUT2 DD SYSOUT=* |
| 112 | +//SYSIN DD DUMMY |
| 113 | +//*---------------------------------------------------------- |
| 114 | +//SUBMITRB EXEC PGM=IKJEFT1B, **Submit RECORDING JCL |
| 115 | +// COND=((3,EQ,T4ZRECRD),(4,LT)), |
| 116 | +// PARM='SUBMITST &PROJECT..&C1ELEMENT..RECRDNG 10 01' |
| 117 | +//SYSEXEC DD DISP=SHR,DSN=&USERCLS0 |
| 118 | +//SYSTSPRT DD SYSOUT=* |
| 119 | +//SYSTSIN DD DUMMY |
| 120 | +//*---------------------------------------------------------- |
| 121 | +//*STEP TO FOOTPRINT THE RECORDING DATASET |
| 122 | +//*---------------------------------------------------------- |
| 123 | +//RECCOPY EXEC PGM=IEBGENER,MAXRC=0, |
| 124 | +// COND=((4,LT)) |
| 125 | +//SYSPRINT DD SYSOUT=* |
| 126 | +//SYSUT1 DD DSN=&PROJECT..&C1STAGE..T4ZLDATA(RECORDNG), |
| 127 | +// DISP=SHR |
| 128 | +//SYSUT2 DD DSN=&PROJECT..&C1STAGE..T4ZLDATA(&C1ELEMENT.),DISP=OLD, |
| 129 | +// MONITOR=COMPONENTS,FOOTPRNT=CREATE |
| 130 | +//SYSIN DD DUMMY |
| 131 | +//* |
| 132 | +//* |
| 133 | +//RECDELET EXEC PGM=IKJEFT01 |
| 134 | +//SYSTSPRT DD SYSOUT=* |
| 135 | +//SYSTSIN DD * |
| 136 | +DELETE '&PROJECT..&C1STAGE..T4ZLDATA(RECORDNG)' |
| 137 | +/* |
0 commit comments