Overskriften på denne uges tip er nok lidt overdrevet, da JCL på ingen måde supporterer brugen af REXX, men med nogle ganske få kunstgreb er det muligt at skrive et REXX program direkte i JCL og eksekvere programmet i et efterfølgende step. Jeg har set princippet anvendt af andre, men har ikke selv fundet brug for det, indtil en dag jeg havde brug for at anvende en JCL variabel i noget SYSIN. Desværre understøtter JCL ikke anvendelsen af JCL variable i SYSIN, så i stedet opfandt jeg følgende stump JCL:
Steppet MAKEREXX skriver REXX-koden til dent temporære dataset &&REXX i member REXXPGM. Det næste step RUNREXX afvikler REXX'en, som skriver en linie i det temporære dataset &&MYSQLWHR, som jeg anvender i et efterfølgende step til at opbygge et SQL-kald. Det vigtigste her er dog, at jeg ved hjælp af inline REXX'en kan få overført værdien af JCL variablen PGMNAME til et dataset, som jeg kan anvende i noget SYSIN (eller et hvilket som helst andet input dataset for den sags skyld). Jeg kunne også have valgt at danne al SYSIN i REXX'en, men så ville REXX'en bare blive større og JCL'en sværere at læse og forstå. Hvis du ikke helt har styr på at concatenere SYSIN data skrevet direkte i JCL'en med datasets, så er det en god ide at lade REXX'en danne alt input.