Why are positional problems an issue? They should be just as easy to parse as keyword parameters, although I probably wouldn't use REXX for the job.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Discussion List <[email protected]> on behalf of ITschak Mugzach <[email protected]> Sent: Wednesday, July 11, 2018 4:45 PM To: [email protected] Subject: Re: REXX as JCL replacement BTW, I wrote a rexx interpreter of JCL a year ago. ITs so easy because JCL has a name token format, almost nothing is positional. The aim was verifying security readiness of JCL, just like the JCL checkers but with security in mind. so migration is not a problem, but as others said, why migrate something that most time performs to something that sometimes performs? You miss an IF before the first exec? insert a dummy EXEC PGM-IEFBR14. Does nothing and allows the IF. ITschak On Wed, Jul 11, 2018 at 10:39 PM ITschak Mugzach <[email protected]> wrote: > Yap. google "Work Flow Language (WFL) Programming Reference Manual pdf" to > get the PDF version. Just performing a pentest for a UNISYS client in > Europe and every-time i am surprised with the agility of it. > > ITschak > > On Wed, Jul 11, 2018 at 7:29 PM Seymour J Metz <[email protected]> wrote: > >> Do you have a link to the WFL reference? >> >> >> -- >> Shmuel (Seymour J.) Metz >> http://mason.gmu.edu/~smetz3 >> >> ________________________________________ >> From: IBM Mainframe Discussion List <[email protected]> on behalf >> of ITschak Mugzach <[email protected]> >> Sent: Wednesday, July 11, 2018 6:20 AM >> To: [email protected] >> Subject: Re: REXX as JCL replacement >> >> Speaking of replacing JCL, how about unisys WFL? It's a programming >> language dedicated to job flows. BTW, I am happy with jcl... >> >> ITschak >> >> On Wed, Jul 11, 2018 at 12:09 PM Tony Thigpen <[email protected]> wrote: >> >> > So where does JOL get all the other informatoin for the DD card? Is >> > there some back-end database that has information for all the files that >> > may be used? >> > >> > Tony Thigpen >> > >> > Clem Clarke wrote on 07/10/2018 08:33 PM: >> > > Below is an example of Jol, and the equivalent JCL. >> > > >> > > Clem >> > > >> > > Simplified Jol Scripting Language for Z/OS, TSO, Linux and Windows >> > > >> > > Payroll: Job class C 1000 k; >> > > Exec Validate Input.Trans, Trans.Action(+1); /* Validate Transations >> */ >> > > if Validate=0 >> > > then do; >> > > Sort transaction(+1) to Sorted.Trans.Actions(+1) >> > > Fields(10,10,CH,A); >> > > Exec Update Payroll.Master(0), Sorted.Trans.Action(+1), >> > > Payroll.Master(+1); >> > > If Update = 0 >> > > then do; >> > > Catalog Payroll.Master(+1), Sorted.Trans.Action(+1); >> > > Submit Job2; >> > > end; >> > > end; >> > > else Stop 'Error in PAYROLL Job'; >> > > >> > > >> > > ________________________________ >> > > >> > > Equivalent Existing Job Control Language >> > > >> > > >> > > //PAYROLL JOB CLASS=C,REGION=1000K >> > > //VALIDATE EXEC PGM=VALIDATE >> > > //SYSPRINT DD SYSOUT=* >> > > //INTRANS DD DSN=INPUT.TRANS,DISP=SHR >> > > //OUTTRANS DD DSN=TRANS.ACTIONS(+1),DISP=(NEW,PASS), >> > > // DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030), >> > > // SPACE=(CYL,(10,10),RLSE), >> > > // UNIT=SYSDA,VOL=SER=WORK01 >> > > //SORT EXEC PGM=SORT,COND=(VALIDATE,NE,0) >> > > //SYSOUT DD SYSOUT=* >> > > //SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,20) >> > > //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,20) >> > > //SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,20) >> > > //SORTIN DD DSN=TRANS.ACTIONS(+1),DISP=(SHR,PASS) >> > > //SORTOUT DD DSN=SORTED.TRANS.ACTIONS(+1), >> > > // DISP=(NEW,PASS), >> > > // DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030), >> > > // SPACE=(CYL,(10,10),RLSE), >> > > // UNIT=SYSDA,VOL=SER=WORK01 >> > > //SYSIN DD * >> > > SORT FIELDS=(10,10,CH,A) >> > > //UPDATE EXEC PGM=UPDATE,COND=(VALIDATE,NE,0) >> > > //SYSPRINT DD SYSOUT=* >> > > //MASTIN DD DSN=PAYROLL.MASTER(0),DISP=SHR >> > > //TRANS DD DSN=TRANS.ACTION(+1),DISP=(SHR,PASS) >> > > //MASTOUT DD DSN=PAYROLL.MASTER(+1),DISP=(NEW,PASS), >> > > // DCB=(RECFM=VB,LRECL=200,BLKSIZE=13030), >> > > // SPACE=(CYL,(10,10),RLSE), >> > > // UNIT=SYSDA,VOL=SER=WORK01 >> > > //CATLG EXEC PGM=IEFBR14,COND=(UPDATE,NE,0) >> > > //DUMMY1 DD DSN=PAYROLL.MASTER(+1),DISP=(SHR,CATLG) >> > > //DUMMY2 DD DSN=SORTED.TRANS.ACTIONS(+1), >> > > // DISP=(SHR,CATLG) >> > > //SUBMIT EXEC PGM=IEBGENER,COND=(UPDATE,NE,0) >> > > //SYSPRINT DD SYSOUT=* >> > > //SYSUT1 DD DSN=SUBMIT.LIBRARY(JOB2),DISP=SHR >> > > //SYSUT2 DD SYSOUT=(*,INTRDR) >> > > //SYSIN DD DUMMY >> > > //ERRMSG EXEC PGM=SHOWERR,COND=(VALIDATE,EQ,0), >> > > // PARM='Error in PAYROLL Job' >> > > >> > > >> > > >> > > Andrew Rowley wrote: >> > >> On 9/07/2018 10:46 PM, Hobart Spitz wrote: >> > >>> >> > >>> Basically, JCL is so far from real a programming language, that I >> can't >> > >>> describe it. >> > >>> >> > >> That's because JCL isn't a programming language. There are plenty of >> > >> other languages that also suck as programming languages e.g. HTML, >> > >> XML, JSON, but that's not what they are supposed to be. >> > >> >> > >> JCL is really a kind of definition language. In programming language >> > >> terms it is more like a set of classes in OOP than a language in >> > >> itself: you have a job, which has steps, steps have DDs etc. The >> > >> syntax is old fashioned, but the concepts are very much OOP. It would >> > >> be relatively simple to create a set of classes in your OOP language >> > >> of choice to hide the syntax - just create a Job object, add Step >> > >> objects, add DataDefinition objects etc. and have a Submit method >> emit >> > >> JCL. >> > >> >> > >> If I want to write a program, I will choose a programming language. >> If >> > >> I want to define a unit of work to the system, JCL does a pretty good >> > >> job. I definitely prefer JCL to long command lines with multiple >> > >> switches and options defining input and output files, which is the >> > >> non-z/OS equivalent. >> > >> >> > >> Andrew Rowley >> > >> Black Hill Software >> > >> >> > >> >> ---------------------------------------------------------------------- >> > >> For IBM-MAIN subscribe / signoff / archive access instructions, >> > >> send email to [email protected] with the message: INFO >> IBM-MAIN >> > >> >> > > >> > > ---------------------------------------------------------------------- >> > > For IBM-MAIN subscribe / signoff / archive access instructions, >> > > send email to [email protected] with the message: INFO >> IBM-MAIN >> > > >> > > >> > >> > ---------------------------------------------------------------------- >> > For IBM-MAIN subscribe / signoff / archive access instructions, >> > send email to [email protected] with the message: INFO IBM-MAIN >> > >> >> >> -- >> ITschak Mugzach >> *|** IronSphere Platform* *|* *Information Security Contiguous Monitoring >> for Legacy **| * >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN >> >> ---------------------------------------------------------------------- >> For IBM-MAIN subscribe / signoff / archive access instructions, >> send email to [email protected] with the message: INFO IBM-MAIN >> > > > -- > ITschak Mugzach > *|** IronSphere Platform* *|* *Information Security Contiguous Monitoring > for Legacy **| * > > > -- ITschak Mugzach *|** IronSphere Platform* *|* *Information Security Contiguous Monitoring for Legacy **| * ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
