En af de rigtig gode ting ved MVS er, at man kan sende batchjobs afsted, så man kan arbejde videre online, mens batchjobbet udfører et eller andet længerevarende stykke arbejde. De fleste af os benytter ganske givet ISPF EDIT til at lave batchjobbet i og SUBMIT kommandoen til at sende batchjobbet afsted med. Hvis jeg ofte skal benytte det samme batchjob, men med små forandringer, eksempelvis et ændret datasetnavn, så laver jeg typisk noget ISPF File Tailoring til at opbygge jobbet med. File Tailoering er sådan set ganske smart, men nogle gange lidt omstændeligt, især hvis man skal bruge det i batch.
En dag blev det for meget for mig, specielt på grund af, at jeg havde brug for at submitte jobs lavet til OPC. OPC jobs er typisk fyldt med &variable, som OPC ved submit oversætter til noget, der bliver til rigtig JCL. Disse &variable kan den almindelige SUBMIT kommando ikke rigtig gøre noget ved, så resultatet blev, at jeg opfandt min egen SUBMIT kommando. I bund og grund er det ganske simpelt, se her:
Denne REXX læser de data, der er allokeret til DD-navn MYJCL, laver dem om til store bogstaver og submitter dem via internal reader også kaldet INTRDR. INTRDR er den direkte linie til JES. Faktisk er det eneste opsigtsvækkende i REXX'en allokeringen af et DD-navn til INTRDR. Man kan kun skrive til INTRDR og JES bruger kun data til noget, når den har genkendt et jobkort.
Her fra er det sådan set kun din fantasi, der sætter grænserne for, hvad du vil proppe ind i JES. Ovenstående REXX kan læse JCL fra mange kilder, eksempelvis DB2, hvis du har adgang til et fornuftigt REXX/DB2 interface, og den kan for eksempel scanne efter &variable og oversætte dem til noget fornuftigt på samme måde som eksempelvis OPC gør det. Eller måske kan du bruge tippet til at lave din helt egen file tailoring. Til sidst bør jeg nok nævne, at man allokerer INTRDR således i JCL:
Ja, det er faktisk ret enkelt, når man ved hvordan.