Dave, 

This is not an application. The is standart JCL stored in your librabry.
Suppose that you have some tens of CICS environments. All have the same
charcturistics execpt some prefix. JCL SET command will take care of the JCL
variables, but what about the sysin data? This rexx exec take care of the
sysin data only and let MVS take care of the JCL side, but both areusing the
same set of values visa JCL SET commands. 

Regards,  


| Itschak Mugzach | Director | SecuriTeam Software |
| Email: [EMAIL PROTECTED] | Mob: +972 522 986404 | Skype: Itschak
Mugzach | Web: www.Securiteam.co.il  | 

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[EMAIL PROTECTED] On Behalf
Of Dave Salt
Sent: Tuesday, July 01, 2008 5:27 PM
To: IBM-MAIN@BAMA.UA.EDU
Subject: Re: Edit macro to support jcl set commands in instream inputs

I must have missed the original thread, but wouldn't it be easier to do this
with an ISPF skeleton?


Dave Salt

See the new SimpList(tm) rollover image at:
http://www.mackinney.com/products/SIM/simplist.htm


> Date: Tue, 1 Jul 2008 17:05:05 +0200
> From: [EMAIL PROTECTED]
> Subject: Edit macro to support jcl set commands in instream inputs
> To: IBM-MAIN@BAMA.UA.EDU
>
> Dear all,
>
> As promised, below please find the rexx program. It was not fully 
> tested, and need some enhancements ((like support for instream set 
> commands that is easy to implement and will come soon). The atatched 
> will help you use variables in the a jcl like this:
>
> //jobcard etc.
> //var1 jcllib order=my.pds
>
> //include unclude member=setup
>
> //step1 exec pgm=idcams
> //sysprint dd sysout=*
> //sysin dd *
> listcat ent(&hlq.data) all
> delete &hlq..data
> Listcat ent(&hlq..data) all
> /*
>
> Will be happpy to get feedbacks. Enjoy it.
>
> | Itschak Mugzach | Director | SecuriTeam Software |
> | Email: [EMAIL PROTECTED] | Mob: +972 522 986404 | Skype: 
> | Itschak
> Mugzach | Web: www.Securiteam.co.il |
>
> /* MugiRexx */
> Signal set.Var
> Trace On
> Set.Doc:
> ------------------------------------------------------------------
> JCL SET Support for SYSIN
>
> Function: This program runs as an EDIT MACRO replacing the original 
> SUB macro. It will substitute Variables in an "DD *" type datasets 
> (Instream sysin) based on the JCL SET commands.
>
> Below are the main functions of the program:
>> checkpoint with save, change profile to nosave rec on.
>> Find and read the INCLUDE member pointed by JCCLIB.
>> Create a command table that holds the vars & values.
>> Ignores none sysin variables (Let interpeter dos it).
>> Mark the "DD *" data with labels.
>> Do the actual change.
>> Submit the job
>> Discard changes.
>
> NextRel.:> Support for Instream SET command
>> Ignore IEBUPDTE inputs
>
> Location: Your Clist (sysproc) concatanation.
>
> Contact:  [EMAIL PROTECTED]
>
>
> (c) SecuriTeam Software Ltd. 1999-2008
> ------------------------------------------------------------------
> Set.Var:
> Cindx = 1
> Csetup.0 = 1
> Csetup.1.Var = '..'
> Csetup.1.Val = '.'
> Lindx = 0
> LabelStr = "abcdefghijklmnopqrstuvwxyz"
> SIFlag = -1
>
> Set.MsgDir:
> SA0001E = "SA0001E no JCLLIB Definition found in"
> SA0002E = "SA0002E no INCLUDE Definition found in"
> SA0003I = "SA0003I variable name & value:"
>
> Set.Main:
> Address ISPEXEC
> "isredit macro"
> "ISREDIT Recovery On" /* Enable UNDO */ "ISREDIT Nosave " /* Enable 
> UNDO */ "ISREDIT (qfdsn) = DATASET" /* get library name */ "ISREDIT 
> (qmemb) = MEMBER" /* get Member name */ If (Qmemb <> 'QMEMB') Then Do 
> /* meber of pds? */ Qfdsn = qfdsn||'('||Qmemb||')' /* create full dsn 
> */ end "ISREDIT FIND 'JCLLIB' first" /* locate in jcl */ If (Rc> 0) 
> Then do /* not found? */ say SA0001E qfdsn exit /* tell & exit */ end 
> /* of not found */ "ISREDIT (TextLine) = LINE .ZCSR" /* Get Line 
> number */ Qvardsn = Substr(TextLine,Pos('ORDER=',TextLine)+6)
> "ISREDIT FIND 'INCLUDE' first" /* locate in jcl */ If (Rc> 0) Then do 
> /* Not found? */ say SA0002E qfdsn exit /* Tell & Exit */ end /* of 
> RC>0 */ "ISREDIT (TextLine) = LINE .ZCSR" /* Get text in line */ 
> Qvardsn = Strip(Qvardsn)||'('||, /* Build dsn of set */ 
> Strip(Substr(TextLine,Pos('MEMBER=',TextLine)+7))||')'
> ADDRESS TSO /* switch to tso */
> "Alloc f(QSETUP) da("||Qvardsn||") shr reuse"
> "EXECIO * DISKR QSETUP (FINIS STEM QSETUP."
> Qindx = 0
> Do While (Qindx < Qsetup.0)
> Qindx = Qindx + 1
> TextLine = Qsetup.Qindx
> If (Substr(TextLine,1,3) = '//*') Then Do Iterate end TextLine = 
> Translate(textline,' ','=') Cindx = Cindx + 1 Csetup.Cindx.Var = 
> '&'||Word(Textline,3) Csetup.Cindx.Val = Word(Textline,4)
> /* say 'var=' Csetup.Cindx.Var
> Say 'Val=' Csetup.Cindx.Val */
> end
> Address ispexec /* switch back to member */ "isredit (lastline) = 
> LINENUM .zlast"
> Qindx = 0
> Do While (Qindx < LastLine)
> Qindx = Qindx + 1
> "ISREDIT (TextLine) = LINE " Qindx
> If (Substr(TextLine,1,1) = '/') Then do If (SIFlag> 0) Then Do 
> "ISREDIT LABEL " Qindx-1 "=" ".E"||,
> Substr(LabelStr,LIndx,1)
> say ".E"||,
> Substr(LabelStr,LIndx,1)
> Say 'end label at line' Qindx-1
> SIFlag = -1
> Iterate
> end
> SIFlag = 0
> Iterate
> End
> If (SIFlag < 1) Then Do
> LIndx = LIndx + 1
> "ISREDIT LABEL " Qindx " = " ".S"||Substr(LabelStr,LIndx,1) Say 'start 
> label at line' Qindx end SIFlag = SIFlag + 1 End exit Cindx = 0 Tindx 
> = 0 ChngCnt = 0 Do while (Cindx < Csetup) Cindx = Cindx + 1 CmdVar = 
> Csetup.Cindx.Var CmdVal = Csetup.Cindx.Var Do while (Tindx < LIndx) 
> Tindx = Tindx + 1 SLabel = ".S"||Substr(LabStr,Tindx,1) ELabel = 
> ".E"||Substr(LabStr,Tindx,1) "isredit change " CmdVar CmdVal " ALL " 
> Slabel Elabel If (Rc = 0) then do ChngCnt = ChngCnt + 1 End End End
> /* undo changes
> CIndx = 0
> Do While (Cindx < ChngCnt)
> Cindx = Cindx + 1
> "ISREDIT UNDO"
> End */
> Say "That All folks"
>
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions, send 
> email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO 
> Search the archives at http://bama.ua.edu/archives/ibm-main.html
>

_________________________________________________________________

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email
to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO Search the
archives at http://bama.ua.edu/archives/ibm-main.html


__________ NOD32 3232 (20080701) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to