View previous topic :: View next topic
|
Author |
Message |
ezio vin
New User
Joined: 16 Aug 2012 Posts: 44 Location: india
|
|
|
|
I have developed ISREDIT macros and I’m using it in all the session.
i don’t have access to add the macros to default SYSEXEC libraries.
every time i login i supposed to allocate the rexx library to SYSEXEC in 6 "ISPF Command Shell" is there any way to allocate once i login |
|
Back to top |
|
|
Pandora-Box
Global Moderator
Joined: 07 Sep 2006 Posts: 1592 Location: Andromeda Galaxy
|
|
|
|
Ask some Admin person to edit a member a do a
ALLOC FI(SYSEXEC) for you
So every time you login your library gets allocated as well |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1314 Location: Vilnius, Lithuania
|
|
|
|
Many sites will do this automagically if your datasets have certain pre-defined names. Ask your support. |
|
Back to top |
|
|
Anbarasan D
New User
Joined: 20 Apr 2010 Posts: 21 Location: USA
|
|
|
|
I added the below code to my startup CLIST
Code: |
<userid>.TSOUTIL.CLIST(STARTUP) |
Code: |
ADDRESS TSO
"ALTLIB DEACTIVATE APPL(EXEC)"
"ALTLIB ACTIVATE APPL(EXEC) DA('<your personal CLIST library>')"
ISPF |
it might help for you. |
|
Back to top |
|
|
Gary McDowell
Active User
Joined: 15 Oct 2012 Posts: 139 Location: USA
|
|
|
|
Just to be sure you are viewing all sysproc datasets allocated to you I would do…
TSO ISRDDN
Find sysproc
Maybe, just maybe there is a dataset you have write-access to?
If not, possibly change your =6 execution to a lesser used F-key (13-24 (i.e. Shift/F8 for F20)) for faster access. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
The places i've supported that allow people to write REXX for general use have a separate "user-contributed" library for these.
When one signs on to the system, the "user" library is automatically made part of the lib concatenation. |
|
Back to top |
|
|
Michael Jakob
New User
Joined: 13 Mar 2011 Posts: 17 Location: Switzerland
|
|
|
|
Hi Ezio
Maybe, you have acess to the function ISPSETUP. You may try
TSO ISPSETUP
--> EXTRAS
--> SYSPROC
--> A - Add an allocation
...
SAVE allocation by point and shoot options.
With kind regards
Michael |
|
Back to top |
|
|
ezio vin
New User
Joined: 16 Aug 2012 Posts: 44 Location: india
|
|
|
|
Michael Jakob
thanks for you valuable information.
when i try this command im getting error message
Code: |
IKJ56500I COMMAND ISPSETUP NOT FOUND
*** |
maybe it will be helpfull for others.
All,
i have tried your suggestions. i did not get what i expect.
Thanks,
Ezio. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello,
To get what you want you most likely need to talk with the people who support your tso/ispf system. This was mentioned earlier in the topic . . .
Explain you have a genral use REXX and want to learn how to have this available to others. |
|
Back to top |
|
|
ezio vin
New User
Joined: 16 Aug 2012 Posts: 44 Location: india
|
|
|
|
Thanks Dick,
Super i copy your sentence !!!!
But in our organization there is no chance to get in touch with support team. need to get many approvals and lots of procedures.
Thanks,
Ezio. |
|
Back to top |
|
|
Ranjithkumar
New User
Joined: 10 Sep 2008 Posts: 93 Location: India
|
|
|
|
Ezio
Have you tried using the COMMAND option is TSO LOGON Screen?
In the COMMAND field of the logon panel, you can enter a single command of upto 80 characters long. You can type the command here to allocate your dataset to SYSEXEC. |
|
Back to top |
|
|
xknight
Active User
Joined: 22 Jan 2008 Posts: 117 Location: Liberty city
|
|
|
|
ezio vin,
All you need to do is Concatenate your macro residing PDS to the SYSEXEC library via the BPXWDYN routine. There are many examples in the forum suggested by enrico on making use of it.
If you dont know where to append the concatenante statement , try looking for your USER.* (may be USERID.LOGON or USERID.CLIST or something related like that)
Note: Im assuming the given PDS is used for logon startups at your site.
So once you have included the statement in the startup member, every time you login your MACRO pds will be concatenated to the SYSEXEC library by itself.
Post it if you have still issues. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
Quote: |
Note: Im assuming the given PDS is used for logon startups at your site.
So once you have included the statement in the startup member, every time you login your MACRO pds will be concatenated to the SYSEXEC library by itself. |
if the TS organization has a <setup> Rexx/Clist defined in the logon procedure
the only way is to execute the <override> command manually |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6248 Location: Mumbai, India
|
|
|
|
enrico-sorichetti wrote: |
if the TS organization has a <setup> Rexx/Clist defined in the logon procedure
the only way is to execute the <override> command manually |
That's how it is set-up at my shop and that's what I do. |
|
Back to top |
|
|
xknight
Active User
Joined: 22 Jan 2008 Posts: 117 Location: Liberty city
|
|
|
|
Quote: |
the only way is to execute the <override> command manually |
enrico
but if the logon procedure is able to get customized, then it is possible to override automatically isn't it.
P.S Sorry for the delay. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
Quote: |
but if the logon procedure is able to get customized, then it is possible to override automatically isn't it. |
NO!
we are taking about some Simple Joe providing its overrides
all depends on how the setup has been planned.
for example
ALL my logon procedures are almost empty ...
required TSO ddnames
SYSPROC
STEPLIB
all the dataset allocation gets done dynamically in the <setup> Rexx
in my case if ...
<userid>.ISPF.EXEC
<userid>.ISPF.PANELS
<userid>.ISPF.MSGS
<userid>.ISPF.SKELS
<userid>.ISPF.TABLES
are found
they are properly concatenated
BUT AS I SAID ALL DEPENDS ON THE STANDARDS AND IMPLEMENTATION |
|
Back to top |
|
|
xknight
Active User
Joined: 22 Jan 2008 Posts: 117 Location: Liberty city
|
|
|
|
Quote: |
all the dataset allocation gets done dynamically in the <setup> Rexx |
Quote: |
BUT AS I SAID ALL DEPENDS ON THE STANDARDS AND IMPLEMENTATION |
Point taken. Thanks a bunch enrico!! |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
since I am in a very good mood here is my setup Rexx
Code: |
EDIT xxxx.xxxx.xxxx($SETUP) - 01.49 Columns 00001 00072
Command ===> Scroll ===> CSR
****** ***************************** Top of Data ******************************
000001 /*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
000002 /* */
000003 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
000004 Trace "O"
000005 Numeric Digits 24
000006 Parse Source _sys _how _cmd .
000007 parse arg args
000008 args = space(args)
000009 argc = words(args)
000010 if argc = 0 then ,
000011 xopt = "OPT(CTBADD)"
000012 else ,
000013 xopt = ""
000014 If sysvar(SYSISPF) = "ACTIVE" Then Do
000015 zretc = 4
000016 zerralrm = "YES"
000017 zerrhm = "ISR2MACR"
000018 zerrsm = "ISPF already active"
000019 zerrlm = left(_cmd,8)"- Should run outside ISPF "
000020 call $ispex "SETMSG MSG(ISRZ002) "
000021 exit
000022 End
000023 Address TSO "ZCLEAR"
000024 xmsg = msg("OFF")
000025 call $tsoex "PROFILE NOWTPMSG "
000026 user = strip(Sysvar("SYSUID"))
000027 pref = strip(Sysvar("SYSPREF"))
000028 if pref = "" then ,
000029 pref = "NOPREFIX"
000030 else ,
000031 call $tsoex "PROFILE NOPREFIX "
000032
000033 list = "ISPPROF DITPROF"
000034 suff = "PROFILE DITPROF"
000035 do i = 1 to words(list)
000036 ddnm = word(list,i)
000037 dsnm = $listdd(ddnm)
000038 if dsnm = "" then do
000039 dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"'"
000040 if 0 = listdsi(dsnm ) then ,
000041 misc = ""
000042 else ,
000043 misc = "SPACE(8 0) CYLINDERS DIR(44) UNIT(SYSDA) " || ,
000044 "DSORG(PO) RECFM(F B) LRECL(80) BLKSIZE(27920) " || ,
000045 "NEW CATALOG "
000046 call $alloc ddnm, dsnm, misc
000047 end
000048 end
000049
000050 list = "SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
000051 suff = "EXEC PANELS MSGS SKELS TABLES"
000052 do i = 1 to words(list)
000053 ddnm = word(list,i)
000054 dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"' "
000055 if 0 = listdsi(dsnm) then ,
000056 call $concat ddnm, dsnm, "BEFORE"
000057 end
000058
000059 list = "ISPTABL ISPPARM "
000060 suff = "TABLES PARMS "
000061 do i = 1 to words(list)
000062 ddnm = word(list,i)
000063 dsnm = "'"|| user || ".ISPF." || word(suff,i) ||"'"
000064 if 0 = listdsi(dsnm) then ,
000065 call $alloc ddnm, dsnm, "SHR REUSE"
000066 end
000067 /* ditto */
000068 if 0 = listdsi("'DIT130.SDITMOD1'") then do
000069 call $alloc "DITPLIB", "DIT130.SDITPLIB", "SHR REUSE"
000070 call $concat "ISPLLIB", "DIT130.SDITMOD1"
000071 end
000072
000073 /* Rexx */
000074 if 0 = listdsi("'FAN140.SFANPENU'") then do
000075 call $concat "SYSPROC", "FAN140.SFANCMD"
000076 call $concat "ISPPLIB", "FAN140.SFANPENU"
000077 call $concat "ISPMLIB", "FAN140.SFANMSEU"
000078 call $concat "ISPSLIB", "FAN140.SFANSKL"
000079 end
000080
000081 /* Filemanager */
000082 if 0 = listdsi("'FMN810.SFMNMOD1'") then do
000083 call $concat "ISPLLIB", "FMN810.SFMNMOD1"
000084 call $concat "SYSPROC", "FMN810.SFMNEXEC"
000085 call $concat "ISPPLIB", "FMN810.SFMNPENU"
000086 call $concat "ISPMLIB", "FMN810.SFMNMENU"
000087 call $concat "ISPSLIB", "FMN810.SFMNSLIB"
000088 call $concat "ISPTLIB", "FMN810.SFMNTENU"
000089 end
000090
000091 /* COBOL */
000092 if 0 = listdsi("'IGY410.SIGYCOMP'") then do
000093 call $concat "ISPLLIB", "IGY410.SIGYCOMP"
000094 end
000095
000096 /* */
000097 Address TSO "ISPSTART PANEL(ISRZPRIM)" xopt "NOLOGO NEWAPPL(ISR)"
000098
000099 if pref /= "NOPREFIX" then ,
000100 call $tsoex "PROFILE PREFIX("pref") "
000101
000102 Exit 0
000103
000104 /* $tsoex */
000105 $tsoex:
000106 tso_0tr = trace("O")
000107 Address TSO arg(1)
000108 tso_0rc = rc
000109 trace value(tso_0tr)
000110 return tso_0rc
000111
000112 /* $ispex */
000113 $ispex:
000114 isp_0tr = trace("O")
000115 Address ISPEXEC arg(1)
000116 isp_0rc = rc
000117 trace value(isp_0tr)
000118 return isp_0rc
000119
000120 /* $alloc */
000121 $alloc:procedure
000122 alc_0tr = trace("O")
000123 alc_0ms = msg("OFF")
000124 parse upper arg ddnm, dsnm, misc
000125 ddnm = strip(ddnm)
000126 dsnm = strip(dsnm)
000127 dsnm = "DA("dsnm") "
000128 misc = space(misc)
000129 Address TSO "FREE FI("ddnm") "
000130 Address TSO "ALLOC FI("ddnm") " dsnm misc
000131 alc_0rc = rc
000132 z = msg(alc_0ms)
000133 trace value(alc_0tr)
000134 Return alc_0rc
000135
000136 /* $concat */
000137 $concat:procedure
000138 cat_0tr = trace("O")
000139 Parse upper arg ddnm, dsnm, posn
000140 if strip(posn) = "BEFORE" then ,
000141 temp = dsnm $listdd(ddnm)
000142 else ,
000143 temp = $listdd(ddnm) dsnm
000144 temp = translate(temp," ","'")
000145 temp = space(temp)
000146 list = ""
000147 Do i = 1 to words(temp)
000148 work = word(temp,i)
000149 work = "'"|| strip(work) ||"'"
000150 if wordpos(work,list) = 0 then ,
000151 list = list work
000152 end
000153 list = space(list)
000154 Address TSO "FREE FI("ddnm") "
000155 Address TSO "ALLOC FI("ddnm") DA("list") SHR REUSE"
000156 trace value(cat_0tr)
000157 Return
000158
000159 /* $listdd */
000160 $listdd:procedure
000161 Trace "O"
000162 parse arg ddnm
000163 ddnm = translate(strip(ddnm))
000164 list = ""
000165 if ddnm = "" then ,
000166 return list
000167 tiotptr=24+ptr32(12+ptr32(ptr32(ptr32(16))))
000168 tioelen=c2d(stg(tiotptr,1))
000169 do until ( tioelen = 0 | tioeddn = ddnm )
000170 tioeddn = strip(stg(tiotptr+4,8))
000171 if tioeddn \= ddnm then ,
000172 tiotptr=tiotptr+tioelen
000173 tioelen=c2d(stg(tiotptr,1))
000174 end
000175 if tioeddn = ddnm then ,
000176 Do Until ( tioelen=0 | stg(4+tiotptr,1) \= " " )
000177 jfcb = swareq(stg(tiotptr+12,3))
000178 list = list strip(stg(jfcb,44))
000179 tiotptr=tiotptr+tioelen
000180 tioelen=c2d(stg(tiotptr,1))
000181 End
000182 list = space(list)
000183 return list
000184
000185 /* $ctlblks */
000186 ptr32: Return c2d(Storage(d2x(Arg(1)),4))
000187 ptr64: Return c2d(Storage(d2x(Arg(1)),8))
000188 stg: Return Storage(d2x(Arg(1)),Arg(2))
000189
000190 /* swareq */
000191 swareq:procedure
000192 If right(c2x(Arg(1)),1) \= 'F' Then
000193 return c2d(Arg(1))+16
000194 sva = c2d(Arg(1))
000195 tcb = ptr32(540)
000196 jscb = ptr32(tcb+180)
000197 qmpl = ptr32(jscb+244)
000198 qmat = ptr32(qmpl+24)
000199 do while (sva>65536)
000200 qmat = ptr32(qmat+12)
000201 sva = sva - 65536
000202 end
000203 return ptr32(qmat+sva+1)+16
****** **************************** Bottom of Data **************************** |
it works with a PRIMARY ISPF PANEL modified to accept the command CTBADD
to create a customized command table |
|
Back to top |
|
|
xknight
Active User
Joined: 22 Jan 2008 Posts: 117 Location: Liberty city
|
|
|
|
Awesome. This would be pretty useful to many of us.
Thank you again for the snippet. |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10886 Location: italy
|
|
|
|
follow on ...
if somebody uses also the SYSEXEC ddname
just change
Code: |
000050 list = "SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
000051 suff = "EXEC PANELS MSGS SKELS TABLES" |
to
Code: |
000050 list = "SYSEXEC SYSPROC ISPPLIB ISPMLIB ISPSLIB ISPTLIB"
000051 suff = "EXEC EXEC PANELS MSGS SKELS TABLES" |
|
|
Back to top |
|
|
|