View previous topic :: View next topic
|
Author |
Message |
parsesource
New User
Joined: 06 Feb 2006 Posts: 97
|
|
|
|
hello
my personal tso logon proc MYPROC EXECs MAINPROC.
MYPROC only contains various additional dd-statements (@SYSEXEC,@ISPPLIB etc.) with my personal datasets.
the logon-rexx makes a tiot-scan and adds datasets allocated to @ddname to ddname (eg recreates DD SYSEXEC in sequence @SYSEXEC+SYSEXEC)
this works ok
i want to do this without control-block navigation or an external asm-program.
bpxwdyn has a concat-option. i can concatenate a ddname to another ddname. bpxwdyn ddlist(dd1,dd2) creates dd1 with datasets from both dds (sequence fixed dd1,dd2)
this is useless in this case, because i need a function that created dd1 with sequence dd2,dd1
the only solution i see is to use "bpxwdyn info" function to get all dataset-names and "tso allocate reuse" them together. are there other solutions available? |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
I usually use something like this
Code: |
/* REXX *** INSERT PRIVATE ISPF LIBRARIES INTO CURRENT LOGON CONCAT */
UID = STRIP(SYSVAR(SYSUID))
PRX = UID".REXX"
IF SYSDSN("'"STRIP(PRX)"'") <> "OK"
THEN PRX=''
PCL = UID".CLIST"
IF SYSDSN("'"STRIP(PCL)"'") <> "OK"
THEN PCL = ''
PPA = UID".PANELS"
IF SYSDSN("'"STRIP(PPA)"'") <> "OK"
THEN PPA=''
PSK = UID".SKELS"
IF SYSDSN("'"STRIP(PSK)"'") <> "OK"
THEN PSK=''
RX0 = 0
CL0 = 0
PA0 = 0
SK0 = 0
A = 1
Y = MSG('OFF')
X=OUTTRAP(LIST.)
"LISTA STATUS"
X=OUTTRAP(OFF)
"FREE FI(TEST01)"
"ALLOC FI(TEST01) RECFM(F B) LRECL(133) TRACKS SPACE(5 5) NEW "
DO FOREVER
A = A + 1
IF A > LIST.0 THEN LEAVE
DSNAME = SUBSTR(LIST.A,1,44)
IF SUBSTR(DSNAME,1,8) = 'TERMFILE' THEN ITERATE
IF SUBSTR(DSNAME,1,8) = '--DDNAME' THEN ITERATE
A = A + 1
IF A > LIST.0 THEN LEAVE
NEXTDD = SUBSTR(LIST.A,3,8)
IF NEXTDD <> ' ' THEN DO
DDNAME = NEXTDD
END
PUSH DDNAME DSNAME
"EXECIO 1 DISKW TEST01"
END
"EXECIO 0 DISKW TEST01 ( FINIS"
"EXECIO * DISKR TEST01 ( STEM LIBS. FINIS"
"FREE FI(TEST01)"
DO A = 1 TO LIBS.0
PARSE VAR LIBS.A DD DSN
IF DD = "SYSPROC" THEN DO
IF CL0 = 0 THEN DO
CL0 = 1
IF PCL <> ""
THEN STRCL = "'"PCL"' '"STRIP(DSN)"'"
ELSE STRCL = "'"STRIP(DSN)"'"
END
ELSE STRCL = STRCL "'"STRIP(DSN)"'"
END
ELSE IF DD = "SYSEXEC" THEN DO
IF RX0 = 0 THEN DO
RX0 = 1
IF PRX <> ""
THEN STRRX = "'"PRX"' '"STRIP(DSN)"'"
ELSE STRRX = "'"STRIP(DSN)"'"
END
ELSE STRRX = STRRX "'"STRIP(DSN)"'"
END
ELSE IF DD = "ISPPLIB" THEN DO
IF PA0 = 0 THEN DO
PA0 = 1
IF PPA <> ""
THEN STRPA = "'"PPA"' '"STRIP(DSN)"'"
ELSE STRPA = "'"STRIP(DSN)"'"
END
ELSE STRPA = STRPA "'"STRIP(DSN)"'"
END
ELSE IF DD = "ISPSLIB" THEN DO
IF SK0 = 0 THEN DO
SK0 = 1
IF PSK <> ""
THEN STRSK = "'"PSK"' '"STRIP(DSN)"'"
ELSE STRSK = "'"STRIP(DSN)"'"
END
ELSE STRSK = STRSK "'"STRIP(DSN)"'"
END
END
"FREE FI(SYSPROC)"
"ALLOC FI(SYSPROC) DA("STRCL") SHR"
"FREE FI(SYSEXEC)"
"ALLOC FI(SYSEXEC) DA("STRRX") SHR"
"FREE FI(ISPPLIB)"
"ALLOC FI(ISPPLIB) DA("STRPA") SHR"
"FREE FI(ISPSLIB)"
"ALLOC FI(ISPSLIB) DA("STRSK") SHR"
MENU |
Which was set up for one particular site.
You may need to jiggle the code.
Executed from the main logon panel as 'EXEC mylib(member)' |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
expat wrote: |
I usually use something like this
Which was set up for one particular site.
You may need to jiggle the code.
Executed from the main logon panel as 'EXEC mylib(member)' |
If it's specific for one particular site, which in my case it is, I just do a
and add the required data sets to my exec that invokes ISPF with my libs in front of all the site-specific stuff. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
Maybe i missed something, but what is wrong with LIBDEF and ALTLIB ? |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
PeterHolland wrote: |
Maybe i missed something, but what is wrong with LIBDEF and ALTLIB ? |
That would be possible, but having your own libs available straight from the moment you get into ISPF is a lot easier.
Next to that, my exec also reallocates ISPLLIB before entering ISPF, which means that I can use my own ISPF configuration table, which is not possible using LIBDEF. |
|
Back to top |
|
|
PeterHolland
Global Moderator
Joined: 27 Oct 2009 Posts: 2481 Location: Netherlands, Amstelveen
|
|
|
|
As far as i know ISPLLIB is for load libraries, beside that its also possible to use the following in a logon script :
When the DATASET keyword is specified with the LIBDEF service, it causes the
newly defined application-level library to be searched before the allocated ISPF
library for a particular type. To allow the user to continue to define user-level
libraries that are to be searched first, these new ddnames must be specified in
ALLOCATE commands before ISPF is invoked:
ISPMUSR User message library
ISPPUSR User panel library
ISPSUSR User skeleton library
ISPTUSR User table library
ISPTABU User table output library
ISPFILU User file tailoring output library
ISPLUSR User link library
ISPIUSR User image library. |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1306 Location: Vilnius, Lithuania
|
|
|
|
PeterHolland wrote: |
As far as i know ISPLLIB is for load libraries, beside that its also possible to use the following in a logon script :
When the DATASET keyword is specified with the LIBDEF service, it causes the
newly defined application-level library to be searched before the allocated ISPF
library for a particular type. To allow the user to continue to define user-level
libraries that are to be searched first, these new ddnames must be specified in
ALLOCATE commands before ISPF is invoked:
ISPMUSR User message library
ISPPUSR User panel library
ISPSUSR User skeleton library
ISPTUSR User table library
ISPTABU User table output library
ISPFILU User file tailoring output library
ISPLUSR User link library
ISPIUSR User image library. |
And if you need to use ALLOCATE before invoking ISPF, why not just allocate your own libraries in front of the system defined ones |
|
Back to top |
|
|
|