Discussion:
[TSO-REXX] Sdsf rexx
(too old to reply)
Jake Anderson
2018-05-08 19:49:37 UTC
Permalink
Cross posted

Lizette,

We are using EJES. I think it has its own rexx interface.

So finding a way to know the destination based on first character of a
Jobname.


---------- Forwarded message ----------
From: Lizette Koehler <***@mindspring.com>
Date: Wed, May 9, 2018 at 12:20 AM
Subject: Re: [TSO-REXX] Sdsf rexx
To: TSO-***@vm.marist.edu


What level of z/OS are you running?

If z/OS V2.3 then SDSF has a REXX Wizard (I think) It should help you
build what you want

If you google JES2DISK by John McKown then that will be a good basis to
work with.


Lizette
-----Original Message-----
Anderson
Sent: Tuesday, May 08, 2018 11:41 AM
Subject: [TSO-REXX] Sdsf rexx
Hi
Is it possible to use rexx to check Jobname based on the destination
where it
is printed ?
I am trying to take a list of Jobname with its first character as $ and
its
destination.
Any working code that I can try ? Basically I want to know the
destination of
each jobname starting with $.
Jake
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to ***@VM.MARIST.EDU with the message: INFO TSO-REXX

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Gibney, Dave
2018-05-08 19:53:20 UTC
Permalink
Phoenix has superb support, they should be able to point you to the right places in their manuals.

It's usually takes a few additional tricks with the runtime JCL of STCs if you want to siphon off JESMSGLG and/or JESYSMSG
-----Original Message-----
On Behalf Of Jake Anderson
Sent: Tuesday, May 08, 2018 12:51 PM
Subject: Fwd: [TSO-REXX] Sdsf rexx
Cross posted
Lizette,
We are using EJES. I think it has its own rexx interface.
So finding a way to know the destination based on first character of a
Jobname.
---------- Forwarded message ----------
Date: Wed, May 9, 2018 at 12:20 AM
Subject: Re: [TSO-REXX] Sdsf rexx
What level of z/OS are you running?
If z/OS V2.3 then SDSF has a REXX Wizard (I think) It should help you build
what you want
If you google JES2DISK by John McKown then that will be a good basis to work
with.
Lizette
-----Original Message-----
Jake Anderson
Sent: Tuesday, May 08, 2018 11:41 AM
Subject: [TSO-REXX] Sdsf rexx
Hi
Is it possible to use rexx to check Jobname based on the destination
where it
is printed ?
I am trying to take a list of Jobname with its first character as $ and
its
destination.
Any working code that I can try ? Basically I want to know the
destination of
each jobname starting with $.
Jake
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Barkow, Eileen
2018-05-08 20:17:53 UTC
Permalink
This is a SDSF/REXX clist that extracts sysout datasets with names S0000* on the ST queue and archives them to datatsets.
It can be adapted to extract datasets with other criteria.

/* REXX */
TRACE e
/*ISFTRACE="ON" */
/*ISFTRMASK="ALL" */
PROFILE NOPREFIX
rc=isfcalls('ON')
PARSE ARG p1 p2 p3
IF p1 ="" THEN DO
ISFPREFIX = 'CICS*'
END
ELSE
DO
ISFPREFIX = p1
END
IF p2 ="" THEN DO
HLQ = 'XCICSR.'
END
ELSE
DO
HLQ = p2||'.'
END
IF p3 ="" THEN DO
ISFPRTVOLSER = 'W1STG1'
END
ELSE
DO
ISFPRTVOLSER = 'W1STG1'
END
ISFOWNER = '*'
ISFFILTER = 'QUEUE PRINT'
CICSJOBN = ISFPREFIX
ASTPO = POS('*',CICSJOBN)
if ASTPO ^= 0 then
do
ASTPO = ASTPO - 1
CICSJOBN = SUBSTR(CICSJOBN,1,ASTPO)
end
/* Access the ST panel. A TOKEN variable is */
/* created for each row which is subsequently */
/* needed to perform actions */
Address SDSF "ISFEXEC ST"
lrc=rc
call msgrtn
/* Find a job starting with CICSjobn and list data sets */
/* rexx */
numrows=isfrows
if isfrows<=0 then exit
six = 1
setix:
if six > numrows then signal endit
do ix=six to numrows /* Loop for all rows returned */
if pos(CICSJOBN,JNAME.ix) = 1 then /* If this is desired row */
do
/* Issue the ? action character for the job */
/* identified by the token variable. Note */
/* the token must be enclosed in single quotes */
/* Use the prefix option to ensure unique */
/* variables are created, beginning with JDS_ */
Address SDSF "ISFACT ST TOKEN('"TOKEN.ix"') PARM(NP ?)",
"("prefix JDS_
if JDS_DDNAME.0 = 0 then exit
lrc=rc
if lrc<>0 then
exit 20
startjx = 2
jf = 0
IF JDS_DDNAME.0 =1 then signal SETJL1
/***if 2 jesmsglgs use 2nd */
do jf = 2 to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jf,1,4) = 'JESM' then signal GETJLINF
end
SETJL1:
startjx = 1
GETJLINF:
do jx=startjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'JESM' then signal GOTJESM
end
signal nextjob
lrc=rc
call msgrtn
if lrc<>0 then do
exit 20
GOTJESM:
sjx = jx /*save position of current ddname entry */
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)"
lc = rc
k = isfddname.0
/*******READ 3RD RECORD TO GET STARTED TASK NUMBER */
"EXECIO 1 DISKR " isfddname.k 3 " (STEM STCREC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL NOSTC
PARSE VAR STCREC.1 S1 STRNUM S3
STRNUM = STRIP(STRNUM)
STCNUM = SUBSTR(STRNUM,1,8)
/*******READ 4TH RECORD TO GET JOBNAME */
"EXECIO 1 DISKR " isfddname.k 4 " (STEM STCREC. "
PARSE VAR STCREC.1 X1 X2 X3 JN XX
JN = STRIP(JN)
"EXECIO 0 DISKR " isfddname.k " (finis "
sjx = sjx+1
signal setjx
setjx:
IF sjx > JDS_DDNAME.0 then signal nextjob
do jx=sjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'S000' then signal GOTSTAT
end
signal NOSTAT
NOSTC:
EXIT
NOSTAT:
six =six+1
signal setix
EXIT
GOTSTAT:
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)",
"("prefix SDS_
lc = rc
k = isfddname.0
STATIN = isfddname.k
STATDS = isfdsname.k
/*******READ FIRST RECORD TO GET INFO TO WRITE OUTPUT DATAST */
"EXECIO * DISKR " isfddname.k " (STEM REC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL noapp
PARSE VAR REC.1 A A2 A3 A4 A5 JN A7 JD A9 JT A6
IF SUBSTR(A,1,4) = '1App' THEN SIGNAL GOTAPP
noapp:
EXIT
GOTAPP:
JDATE= ".D"||SUBSTR(JD,1,2)||SUBSTR(JD,4,2)||SUBSTR(JD,9,2)
JTIME= ".T"||SUBSTR(JT,1,2)||SUBSTR(JT,4,2)||SUBSTR(JT,7,2)
STPNUM = "."||STCNUM
"FREE FILE(STATOUT)"
/*OUTDS = "XCICS."||JN||JDATE||STPNUM||JTIME */
OUTDS = HLQ||JN||JDATE||STPNUM||JTIME
/*if SYSDSN(OUTDS) ^= 'OK' */
/* THEN SIGNAL NEWDS */
"FREE FILE(XXX) "
"ALLOC FILE(XXX) DSNAME("OUTDS") SHR "
IF RC ^= 0 THEN SIGNAL NEWDS
SIGNAL MOREDS
NEWDS:
/*"DELETE "OUTDS" " */
/*LLOC FILE(STATOUT) DSNAME("OUTDS") NEW CATALOG DSORG(PS) */
/*PACE(10 5) TRACKS RECFM(F B A) BLKSIZE(14300) LRECL(143) VOL(XCICS1)*/
ISFPRTDDNAME='STATOUT'
ISFPRTDSNAME= "'"OUTDS"'"
ISFPRTDEST='NEW'
ISFPRTRECFM = 'FB'
ISFPRTLRECL = '143'
ISFPRTBLKSIZE= '14300'
/*ISFPRTVOLSER= 'XCICS1' */
ISFPRTSPACETYPE = 'BLKS'
ISFPRTPRIMARY = '1000'
ISFPRTSECONDARY = '0500'
ISFPRTUNIT = 'SYSDA'
ISFPRTDISP = 'NEW'
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP XDC)"
lrc = rc
if lrc = 0 then signal MOREDS
call msgrtn
MOREDS:
/****look for more STAT (S00*) DATASETS **************/
sjx =sjx+1
signal setjx
/*CALL msgrtn */
endit:
EXIT
nextjob:
/***process more jobs with the same jobname **********/
six = six+1
sjx = 2
signal setix
exit
/* Subroutine to list error messages */
msgrtn: procedure expose isfmsg isfmsg2.
/* The isfmsg variable contains a short message */
if isfmsg<>"" then
Say "isfmsg is:" isfmsg
/* The isfmsg2 stem contains additional descriptive */
/* error messages */
do ix=1 to isfmsg2.0
Say "isfmsg2."ix "is:" isfmsg2.ix
end
return

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Gibney, Dave
Sent: Tuesday, May 08, 2018 3:55 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [TSO-REXX] Sdsf rexx

Phoenix has superb support, they should be able to point you to the right places in their manuals.

It's usually takes a few additional tricks with the runtime JCL of STCs if you want to siphon off JESMSGLG and/or JESYSMSG
-----Original Message-----
On Behalf Of Jake Anderson
Sent: Tuesday, May 08, 2018 12:51 PM
Subject: Fwd: [TSO-REXX] Sdsf rexx
Cross posted
Lizette,
We are using EJES. I think it has its own rexx interface.
So finding a way to know the destination based on first character of a
Jobname.
---------- Forwarded message ----------
Date: Wed, May 9, 2018 at 12:20 AM
Subject: Re: [TSO-REXX] Sdsf rexx
What level of z/OS are you running?
If z/OS V2.3 then SDSF has a REXX Wizard (I think) It should help you build
what you want
If you google JES2DISK by John McKown then that will be a good basis to work
with.
Lizette
-----Original Message-----
Jake Anderson
Sent: Tuesday, May 08, 2018 11:41 AM
Subject: [TSO-REXX] Sdsf rexx
Hi
Is it possible to use rexx to check Jobname based on the destination
where it
is printed ?
I am trying to take a list of Jobname with its first character as $ and
its
destination.
Any working code that I can try ? Basically I want to know the
destination of
each jobname starting with $.
Jake
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

________________________________

This e-mail, including any attachments, may be confidential, privileged or otherwise legally protected. It is intended only for the addressee. If you received this e-mail in error or from someone who was not authorized to send it to you, do not disseminate, copy or otherwise use this e-mail or its attachments. Please notify the sender immediately by reply e-mail and delete the e-mail from your system.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Hobart Spitz
2018-05-11 01:08:31 UTC
Permalink
For those who may not be aware, SIGNAL is *not* a GOTO.

I counted 18 SIGNALs, and only 1 CALL. Many of the SIGNALs here seem to
have been better done with DO...END.

In the words of TRL, SIGNAL terminates "all active pending DO loops, DO
groups, IF constructs, SELECT construct, and INTERPRET instructions" such
that "they cannot be reactivated".

With apologies to Eileen and/or the original coder: Not being aware of
that fact has apparently let the coder down into a "black hole". I hope my
post can encourage anyone who thinks this is the way to write REXX, to do
better, and that anyone who copies sees this code not use it as an model
for anything.

This is not an issue of style, pedantics, or personal preference. Using
SIGNAL this way is even more of a barrier to maintainable, readable code
than a GOTO. For more information, see the appropriate resources.

It should not even be necessary to say it, but I vote for SIGNAL-less
coding (except for SIGNAL ON/OFF, and where actually necessary.)

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Barkow, Eileen
This is a SDSF/REXX clist that extracts sysout datasets with names S0000*
on the ST queue and archives them to datatsets.
It can be adapted to extract datasets with other criteria.
/* REXX */
TRACE e
/*ISFTRACE="ON" */
/*ISFTRMASK="ALL" */
PROFILE NOPREFIX
rc=isfcalls('ON')
PARSE ARG p1 p2 p3
IF p1 ="" THEN DO
ISFPREFIX = 'CICS*'
END
ELSE
DO
ISFPREFIX = p1
END
IF p2 ="" THEN DO
HLQ = 'XCICSR.'
END
ELSE
DO
HLQ = p2||'.'
END
IF p3 ="" THEN DO
ISFPRTVOLSER = 'W1STG1'
END
ELSE
DO
ISFPRTVOLSER = 'W1STG1'
END
ISFOWNER = '*'
ISFFILTER = 'QUEUE PRINT'
CICSJOBN = ISFPREFIX
ASTPO = POS('*',CICSJOBN)
if ASTPO ^= 0 then
do
ASTPO = ASTPO - 1
CICSJOBN = SUBSTR(CICSJOBN,1,ASTPO)
end
/* Access the ST panel. A TOKEN variable is */
/* created for each row which is subsequently */
/* needed to perform actions */
Address SDSF "ISFEXEC ST"
lrc=rc
call msgrtn
/* Find a job starting with CICSjobn and list data sets */
/* rexx */
numrows=isfrows
if isfrows<=0 then exit
six = 1
if six > numrows then signal endit
do ix=six to numrows /* Loop for all rows returned */
if pos(CICSJOBN,JNAME.ix) = 1 then /* If this is desired row */
do
/* Issue the ? action character for the job */
/* identified by the token variable. Note */
/* the token must be enclosed in single quotes */
/* Use the prefix option to ensure unique */
/* variables are created, beginning with JDS_ */
Address SDSF "ISFACT ST TOKEN('"TOKEN.ix"') PARM(NP ?)",
"("prefix JDS_
if JDS_DDNAME.0 = 0 then exit
lrc=rc
if lrc<>0 then
exit 20
startjx = 2
jf = 0
IF JDS_DDNAME.0 =1 then signal SETJL1
/***if 2 jesmsglgs use 2nd */
do jf = 2 to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jf,1,4) = 'JESM' then signal GETJLINF
end
startjx = 1
do jx=startjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'JESM' then signal GOTJESM
end
signal nextjob
lrc=rc
call msgrtn
if lrc<>0 then do
exit 20
sjx = jx /*save position of current ddname entry */
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)"
lc = rc
k = isfddname.0
/*******READ 3RD RECORD TO GET STARTED TASK NUMBER */
"EXECIO 1 DISKR " isfddname.k 3 " (STEM STCREC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL NOSTC
PARSE VAR STCREC.1 S1 STRNUM S3
STRNUM = STRIP(STRNUM)
STCNUM = SUBSTR(STRNUM,1,8)
/*******READ 4TH RECORD TO GET JOBNAME */
"EXECIO 1 DISKR " isfddname.k 4 " (STEM STCREC. "
PARSE VAR STCREC.1 X1 X2 X3 JN XX
JN = STRIP(JN)
"EXECIO 0 DISKR " isfddname.k " (finis "
sjx = sjx+1
signal setjx
IF sjx > JDS_DDNAME.0 then signal nextjob
do jx=sjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'S000' then signal GOTSTAT
end
signal NOSTAT
EXIT
six =six+1
signal setix
EXIT
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)",
"("prefix SDS_
lc = rc
k = isfddname.0
STATIN = isfddname.k
STATDS = isfdsname.k
/*******READ FIRST RECORD TO GET INFO TO WRITE OUTPUT DATAST */
"EXECIO * DISKR " isfddname.k " (STEM REC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL noapp
PARSE VAR REC.1 A A2 A3 A4 A5 JN A7 JD A9 JT A6
IF SUBSTR(A,1,4) = '1App' THEN SIGNAL GOTAPP
EXIT
JDATE= ".D"||SUBSTR(JD,1,2)||SUBSTR(JD,4,2)||SUBSTR(JD,9,2)
JTIME= ".T"||SUBSTR(JT,1,2)||SUBSTR(JT,4,2)||SUBSTR(JT,7,2)
STPNUM = "."||STCNUM
"FREE FILE(STATOUT)"
/*OUTDS = "XCICS."||JN||JDATE||STPNUM||JTIME */
OUTDS = HLQ||JN||JDATE||STPNUM||JTIME
/*if SYSDSN(OUTDS) ^= 'OK' */
/* THEN SIGNAL NEWDS */
"FREE FILE(XXX) "
"ALLOC FILE(XXX) DSNAME("OUTDS") SHR "
IF RC ^= 0 THEN SIGNAL NEWDS
SIGNAL MOREDS
/*"DELETE "OUTDS" " */
/*LLOC FILE(STATOUT) DSNAME("OUTDS") NEW CATALOG DSORG(PS) */
/*PACE(10 5) TRACKS RECFM(F B A) BLKSIZE(14300) LRECL(143) VOL(XCICS1)*/
ISFPRTDDNAME='STATOUT'
ISFPRTDSNAME= "'"OUTDS"'"
ISFPRTDEST='NEW'
ISFPRTRECFM = 'FB'
ISFPRTLRECL = '143'
ISFPRTBLKSIZE= '14300'
/*ISFPRTVOLSER= 'XCICS1' */
ISFPRTSPACETYPE = 'BLKS'
ISFPRTPRIMARY = '1000'
ISFPRTSECONDARY = '0500'
ISFPRTUNIT = 'SYSDA'
ISFPRTDISP = 'NEW'
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP XDC)"
lrc = rc
if lrc = 0 then signal MOREDS
call msgrtn
/****look for more STAT (S00*) DATASETS **************/
sjx =sjx+1
signal setjx
/*CALL msgrtn */
EXIT
/***process more jobs with the same jobname **********/
six = six+1
sjx = 2
signal setix
exit
/* Subroutine to list error messages */
msgrtn: procedure expose isfmsg isfmsg2.
/* The isfmsg variable contains a short message */
if isfmsg<>"" then
Say "isfmsg is:" isfmsg
/* The isfmsg2 stem contains additional descriptive */
/* error messages */
do ix=1 to isfmsg2.0
Say "isfmsg2."ix "is:" isfmsg2.ix
end
return
-----Original Message-----
Behalf Of Gibney, Dave
Sent: Tuesday, May 08, 2018 3:55 PM
Subject: Re: [TSO-REXX] Sdsf rexx
Phoenix has superb support, they should be able to point you to the right
places in their manuals.
It's usually takes a few additional tricks with the runtime JCL of STCs if
you want to siphon off JESMSGLG and/or JESYSMSG
-----Original Message-----
On Behalf Of Jake Anderson
Sent: Tuesday, May 08, 2018 12:51 PM
Subject: Fwd: [TSO-REXX] Sdsf rexx
Cross posted
Lizette,
We are using EJES. I think it has its own rexx interface.
So finding a way to know the destination based on first character of a
Jobname.
---------- Forwarded message ----------
Date: Wed, May 9, 2018 at 12:20 AM
Subject: Re: [TSO-REXX] Sdsf rexx
What level of z/OS are you running?
If z/OS V2.3 then SDSF has a REXX Wizard (I think) It should help you
build
what you want
If you google JES2DISK by John McKown then that will be a good basis to
work
with.
Lizette
-----Original Message-----
Jake Anderson
Sent: Tuesday, May 08, 2018 11:41 AM
Subject: [TSO-REXX] Sdsf rexx
Hi
Is it possible to use rexx to check Jobname based on the destination
where it
is printed ?
I am trying to take a list of Jobname with its first character as $ and
its
destination.
Any working code that I can try ? Basically I want to know the
destination of
each jobname starting with $.
Jake
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send
email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send
email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
________________________________
This e-mail, including any attachments, may be confidential, privileged or
otherwise legally protected. It is intended only for the addressee. If you
received this e-mail in error or from someone who was not authorized to
send it to you, do not disseminate, copy or otherwise use this e-mail or
its attachments. Please notify the sender immediately by reply e-mail and
delete the e-mail from your system.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Barkow, Eileen
2018-05-11 12:41:01 UTC
Permalink
Thanks for the critique Hobart.
Actually the intention of the SINGALS was to terminate the loops and other constructs.
This clist was a conversion from an SDSF BATCH process to extract and archive the files and it was my first experience with SDSF/REXX so
I was more interested in the conversion process than in writing elegant REXX code, but I will take your comments into consideration the
Next time I write some REXX code, which I may have to do shortly.

So maybe you or some other REXX guru can help me with this:
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
I know how to get the file names in a HFS directory but have not seen anything to extract the PDSE member names.


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Hobart Spitz
Sent: Thursday, May 10, 2018 9:10 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [TSO-REXX] Sdsf rexx

For those who may not be aware, SIGNAL is *not* a GOTO.

I counted 18 SIGNALs, and only 1 CALL. Many of the SIGNALs here seem to
have been better done with DO...END.

In the words of TRL, SIGNAL terminates "all active pending DO loops, DO
groups, IF constructs, SELECT construct, and INTERPRET instructions" such
that "they cannot be reactivated".

With apologies to Eileen and/or the original coder: Not being aware of
that fact has apparently let the coder down into a "black hole". I hope my
post can encourage anyone who thinks this is the way to write REXX, to do
better, and that anyone who copies sees this code not use it as an model
for anything.

This is not an issue of style, pedantics, or personal preference. Using
SIGNAL this way is even more of a barrier to maintainable, readable code
than a GOTO. For more information, see the appropriate resources.

It should not even be necessary to say it, but I vote for SIGNAL-less
coding (except for SIGNAL ON/OFF, and where actually necessary.)

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Barkow, Eileen
This is a SDSF/REXX clist that extracts sysout datasets with names S0000*
on the ST queue and archives them to datatsets.
It can be adapted to extract datasets with other criteria.
/* REXX */
TRACE e
/*ISFTRACE="ON" */
/*ISFTRMASK="ALL" */
PROFILE NOPREFIX
rc=isfcalls('ON')
PARSE ARG p1 p2 p3
IF p1 ="" THEN DO
ISFPREFIX = 'CICS*'
END
ELSE
DO
ISFPREFIX = p1
END
IF p2 ="" THEN DO
HLQ = 'XCICSR.'
END
ELSE
DO
HLQ = p2||'.'
END
IF p3 ="" THEN DO
ISFPRTVOLSER = 'W1STG1'
END
ELSE
DO
ISFPRTVOLSER = 'W1STG1'
END
ISFOWNER = '*'
ISFFILTER = 'QUEUE PRINT'
CICSJOBN = ISFPREFIX
ASTPO = POS('*',CICSJOBN)
if ASTPO ^= 0 then
do
ASTPO = ASTPO - 1
CICSJOBN = SUBSTR(CICSJOBN,1,ASTPO)
end
/* Access the ST panel. A TOKEN variable is */
/* created for each row which is subsequently */
/* needed to perform actions */
Address SDSF "ISFEXEC ST"
lrc=rc
call msgrtn
/* Find a job starting with CICSjobn and list data sets */
/* rexx */
numrows=isfrows
if isfrows<=0 then exit
six = 1
if six > numrows then signal endit
do ix=six to numrows /* Loop for all rows returned */
if pos(CICSJOBN,JNAME.ix) = 1 then /* If this is desired row */
do
/* Issue the ? action character for the job */
/* identified by the token variable. Note */
/* the token must be enclosed in single quotes */
/* Use the prefix option to ensure unique */
/* variables are created, beginning with JDS_ */
Address SDSF "ISFACT ST TOKEN('"TOKEN.ix"') PARM(NP ?)",
"("prefix JDS_
if JDS_DDNAME.0 = 0 then exit
lrc=rc
if lrc<>0 then
exit 20
startjx = 2
jf = 0
IF JDS_DDNAME.0 =1 then signal SETJL1
/***if 2 jesmsglgs use 2nd */
do jf = 2 to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jf,1,4) = 'JESM' then signal GETJLINF
end
startjx = 1
do jx=startjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'JESM' then signal GOTJESM
end
signal nextjob
lrc=rc
call msgrtn
if lrc<>0 then do
exit 20
sjx = jx /*save position of current ddname entry */
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)"
lc = rc
k = isfddname.0
/*******READ 3RD RECORD TO GET STARTED TASK NUMBER */
"EXECIO 1 DISKR " isfddname.k 3 " (STEM STCREC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL NOSTC
PARSE VAR STCREC.1 S1 STRNUM S3
STRNUM = STRIP(STRNUM)
STCNUM = SUBSTR(STRNUM,1,8)
/*******READ 4TH RECORD TO GET JOBNAME */
"EXECIO 1 DISKR " isfddname.k 4 " (STEM STCREC. "
PARSE VAR STCREC.1 X1 X2 X3 JN XX
JN = STRIP(JN)
"EXECIO 0 DISKR " isfddname.k " (finis "
sjx = sjx+1
signal setjx
IF sjx > JDS_DDNAME.0 then signal nextjob
do jx=sjx to JDS_DDNAME.0 /* loop for all rows returned */
IF SUBSTR(JDS_DDNAME.jx,1,4) = 'S000' then signal GOTSTAT
end
signal NOSTAT
EXIT
six =six+1
signal setix
EXIT
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP SA)",
"("prefix SDS_
lc = rc
k = isfddname.0
STATIN = isfddname.k
STATDS = isfdsname.k
/*******READ FIRST RECORD TO GET INFO TO WRITE OUTPUT DATAST */
"EXECIO * DISKR " isfddname.k " (STEM REC. "
lrc = rc
If lrc ^= 0 THEN SIGNAL noapp
PARSE VAR REC.1 A A2 A3 A4 A5 JN A7 JD A9 JT A6
IF SUBSTR(A,1,4) = '1App' THEN SIGNAL GOTAPP
EXIT
JDATE= ".D"||SUBSTR(JD,1,2)||SUBSTR(JD,4,2)||SUBSTR(JD,9,2)
JTIME= ".T"||SUBSTR(JT,1,2)||SUBSTR(JT,4,2)||SUBSTR(JT,7,2)
STPNUM = "."||STCNUM
"FREE FILE(STATOUT)"
/*OUTDS = "XCICS."||JN||JDATE||STPNUM||JTIME */
OUTDS = HLQ||JN||JDATE||STPNUM||JTIME
/*if SYSDSN(OUTDS) ^= 'OK' */
/* THEN SIGNAL NEWDS */
"FREE FILE(XXX) "
"ALLOC FILE(XXX) DSNAME("OUTDS") SHR "
IF RC ^= 0 THEN SIGNAL NEWDS
SIGNAL MOREDS
/*"DELETE "OUTDS" " */
/*LLOC FILE(STATOUT) DSNAME("OUTDS") NEW CATALOG DSORG(PS) */
/*PACE(10 5) TRACKS RECFM(F B A) BLKSIZE(14300) LRECL(143) VOL(XCICS1)*/
ISFPRTDDNAME='STATOUT'
ISFPRTDSNAME= "'"OUTDS"'"
ISFPRTDEST='NEW'
ISFPRTRECFM = 'FB'
ISFPRTLRECL = '143'
ISFPRTBLKSIZE= '14300'
/*ISFPRTVOLSER= 'XCICS1' */
ISFPRTSPACETYPE = 'BLKS'
ISFPRTPRIMARY = '1000'
ISFPRTSECONDARY = '0500'
ISFPRTUNIT = 'SYSDA'
ISFPRTDISP = 'NEW'
Address SDSF "ISFACT ST TOKEN('"JDS_TOKEN.jx"') PARM(NP XDC)"
lrc = rc
if lrc = 0 then signal MOREDS
call msgrtn
/****look for more STAT (S00*) DATASETS **************/
sjx =sjx+1
signal setjx
/*CALL msgrtn */
EXIT
/***process more jobs with the same jobname **********/
six = six+1
sjx = 2
signal setix
exit
/* Subroutine to list error messages */
msgrtn: procedure expose isfmsg isfmsg2.
/* The isfmsg variable contains a short message */
if isfmsg<>"" then
Say "isfmsg is:" isfmsg
/* The isfmsg2 stem contains additional descriptive */
/* error messages */
do ix=1 to isfmsg2.0
Say "isfmsg2."ix "is:" isfmsg2.ix
end
return
-----Original Message-----
Behalf Of Gibney, Dave
Sent: Tuesday, May 08, 2018 3:55 PM
Subject: Re: [TSO-REXX] Sdsf rexx
Phoenix has superb support, they should be able to point you to the right
places in their manuals.
It's usually takes a few additional tricks with the runtime JCL of STCs if
you want to siphon off JESMSGLG and/or JESYSMSG
-----Original Message-----
On Behalf Of Jake Anderson
Sent: Tuesday, May 08, 2018 12:51 PM
Subject: Fwd: [TSO-REXX] Sdsf rexx
Cross posted
Lizette,
We are using EJES. I think it has its own rexx interface.
So finding a way to know the destination based on first character of a
Jobname.
---------- Forwarded message ----------
Date: Wed, May 9, 2018 at 12:20 AM
Subject: Re: [TSO-REXX] Sdsf rexx
What level of z/OS are you running?
If z/OS V2.3 then SDSF has a REXX Wizard (I think) It should help you
build
what you want
If you google JES2DISK by John McKown then that will be a good basis to
work
with.
Lizette
-----Original Message-----
Jake Anderson
Sent: Tuesday, May 08, 2018 11:41 AM
Subject: [TSO-REXX] Sdsf rexx
Hi
Is it possible to use rexx to check Jobname based on the destination
where it
is printed ?
I am trying to take a list of Jobname with its first character as $ and
its
destination.
Any working code that I can try ? Basically I want to know the
destination of
each jobname starting with $.
Jake
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions, send
email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions, send
email to
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
________________________________
This e-mail, including any attachments, may be confidential, privileged or
otherwise legally protected. It is intended only for the addressee. If you
received this e-mail in error or from someone who was not authorized to
send it to you, do not disseminate, copy or otherwise use this e-mail or
its attachments. Please notify the sender immediately by reply e-mail and
delete the e-mail from your system.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-05-11 03:29:00 UTC
Permalink
Post by Hobart Spitz
For those who may not be aware, SIGNAL is *not* a GOTO.
I counted 18 SIGNALs, and only 1 CALL. Many of the SIGNALs here seem to
have been better done with DO...END.
In the words of TRL, SIGNAL terminates "all active pending DO loops, DO
groups, IF constructs, SELECT construct, and INTERPRET instructions" such
that "they cannot be reactivated".
With apologies to Eileen and/or the original coder: Not being aware of
that fact has apparently let the coder down into a "black hole". I hope my
post can encourage anyone who thinks this is the way to write REXX, to do
better, and that anyone who copies sees this code not use it as an model
for anything.
This is not an issue of style, pedantics, or personal preference. Using
SIGNAL this way is even more of a barrier to maintainable, readable code
than a GOTO. For more information, see the appropriate resources.
I saw that; I was appalled. Also by the (lack of) indention. There were a
few meager DO loops, mostly with a single line body.

Fear of indention is collateral damage of RECFM=FB,80. When Rexx first came
to TSO it came with a GIM that recommended RECFM=VB,LRECL=generous.
IBM then ignored its own advice and made SYSPROC FB,80, dragging wiser
coders down with it.

"Black hole" is an apt metaphor. It's hard to escape. To convert SIGNA
loops to DO loops the programmer must eliminate any interior SIGNALs.

We had a VM sysprog who was SIGNAL-afficted. Now retired, but his ugly
code remains. In some fairnes, it was an interactive menu-driven system
and some menus had options to jump to other menus. But I would have
used a SELECT within a main DO loop, even though that mostly emulates
GOTO.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Edward Gould
2018-05-11 04:46:05 UTC
Permalink
——————SNIP-----------------------------------
Fear of indention is collateral damage of RECFM=FB,80. When Rexx first came
to TSO it came with a GIM that recommended RECFM=VB,LRECL=generous.
IBM then ignored its own advice and made SYSPROC FB,80, dragging wiser
coders down with it.
—————————————_SNIP——————————————————
This issue long predates Rexx. Someone please correct me but the first conflict came in Netview (no idea of release but it was early even then)
There also may have been an issue with SPF (early version) We did not jump on that bandwagon .
Memory says it was Netview though. They were the second people to come along with clists. This was in the 70’s (i think) I was caught in the middle trying to keep both.
My memory also could be wrong as somewhere in this mess as IBM insisted that source had to be maintained by IEBUPDTE. Somewhere in that mess VB won out, I *vaguely* remember arguments at SHARE/GUIDE (not sure which) as what the right way to go. A memory says there were factions at SHARE and they almost got into a fight over this but it was almost 40 years ago and after drinking at Scids everybody calmed down. It is still discussed today so nobody was happy with the solution. REXX for MVS did not appear until 1992(?). I remember it was that time frame as management wanted some device support on an IPO but I knew the next IPO contained REXX so I was able to hold back and wait for REXX.

Ed
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Gerard Schildberger
2018-05-11 06:38:20 UTC
Permalink
Post by Hobart Spitz
For those who may not be aware, SIGNAL is *not* a GOTO.
I counted 18 SIGNALs, and only 1 CALL. Many of the SIGNALs here seem to
have been better done with DO...END.
In the words of TRL, SIGNAL terminates "all active pending DO loops, DO
groups, IF constructs, SELECT construct, and INTERPRET instructions" such
that "they cannot be reactivated".
-----[-----snipped----]----

The above phrase should have something like:

... all active loops at the current procedural level are terminated ...
_____________________________________________________ Gerard Schildberger
Carmen Vitullo
2018-05-11 12:59:32 UTC
Permalink
outrap with LISTD works well
soemthing like this works well



X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End


or even LM services ?
a clist example







CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on



Carmen Vitullo

----- Original Message -----

From: "Mike Wawiorko" <0000014ab5cdfb21-dmarc-***@LISTSERV.UA.EDU>
To: IBM-***@LISTSERV.UA.EDU
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx

OUTTRAP with LISTD dsname M ?

I'm pretty sure others will have better suggestions.

Mike Wawiorko

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [TSO-REXX] Sdsf rexx


...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.

...

This e-mail and any attachments are confidential and intended solely for the addressee and may also be privileged or exempt from disclosure under applicable law. If you are not the addressee, or have received this e-mail in error, please notify the sender immediately, delete it from your system and do not copy, disclose or otherwise act upon any part of this e-mail or its attachments.
Internet communications are not guaranteed to be secure or virus-free. The Barclays Group does not accept responsibility for any loss arising from unauthorised access to, or interference with, any Internet communications by any third party, or from the transmission of any viruses. Replies to this e-mail may be monitored by the Barclays Group for operational or business reasons.
Any opinion or other information in this e-mail or its attachments that does not relate to the business of the Barclays Group is personal to the sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services across Barclays group. Barclays Services Limited is an appointed representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc are authorised by the Prudential Regulation Authority and regulated by the Financial Conduct Authority and the Prudential Regulation Authority. Clydesdale Financial Services Limited is authorised and regulated by the Financial Conduct Authority.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Hobart Spitz
2018-05-11 14:46:46 UTC
Permalink
"pipe listpds" dsn "| stem members."

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Carmen Vitullo
outrap with LISTD works well
soemthing like this works well
X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End
or even LM services ?
a clist example
CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on
Carmen Vitullo
----- Original Message -----
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
Mike Wawiorko
-----Original Message-----
Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
Subject: Re: [TSO-REXX] Sdsf rexx
...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
...
This e-mail and any attachments are confidential and intended solely for
the addressee and may also be privileged or exempt from disclosure under
applicable law. If you are not the addressee, or have received this e-mail
in error, please notify the sender immediately, delete it from your system
and do not copy, disclose or otherwise act upon any part of this e-mail or
its attachments.
Internet communications are not guaranteed to be secure or virus-free. The
Barclays Group does not accept responsibility for any loss arising from
unauthorised access to, or interference with, any Internet communications
by any third party, or from the transmission of any viruses. Replies to
this e-mail may be monitored by the Barclays Group for operational or
business reasons.
Any opinion or other information in this e-mail or its attachments that
does not relate to the business of the Barclays Group is personal to the
sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services
across Barclays group. Barclays Services Limited is an appointed
representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale
Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc are
authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority.
Clydesdale Financial Services Limited is authorised and regulated by the
Financial Conduct Authority.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Dyck, Lionel B. , TRA
2018-05-11 14:53:18 UTC
Permalink
PIPES - it would be very nice if IBM were to just integrate PIPES into TSO/REXX and then we can move on and make z/OS an even better platform for the future.

--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners

-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:48 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx

"pipe listpds" dsn "| stem members."

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Carmen Vitullo
outrap with LISTD works well
soemthing like this works well
X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End
or even LM services ?
a clist example
CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on
Carmen Vitullo
----- Original Message -----
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
Mike Wawiorko
-----Original Message-----
Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
Subject: Re: [TSO-REXX] Sdsf rexx
...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
...
This e-mail and any attachments are confidential and intended solely for
the addressee and may also be privileged or exempt from disclosure under
applicable law. If you are not the addressee, or have received this e-mail
in error, please notify the sender immediately, delete it from your system
and do not copy, disclose or otherwise act upon any part of this e-mail or
its attachments.
Internet communications are not guaranteed to be secure or virus-free. The
Barclays Group does not accept responsibility for any loss arising from
unauthorised access to, or interference with, any Internet communications
by any third party, or from the transmission of any viruses. Replies to
this e-mail may be monitored by the Barclays Group for operational or
business reasons.
Any opinion or other information in this e-mail or its attachments that
does not relate to the business of the Barclays Group is personal to the
sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services
across Barclays group. Barclays Services Limited is an appointed
representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale
Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc are
authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority.
Clydesdale Financial Services Limited is authorised and regulated by the
Financial Conduct Authority.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Hobart Spitz
2018-05-11 14:55:11 UTC
Permalink
It's already integrated. It's just not in the z/OS base. And you have to
pay extra.

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Dyck, Lionel B. , TRA
PIPES - it would be very nice if IBM were to just integrate PIPES into
TSO/REXX and then we can move on and make z/OS an even better platform for
the future.
--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners
-----Original Message-----
Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:48 AM
Subject: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx
"pipe listpds" dsn "| stem members."
OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Carmen Vitullo
outrap with LISTD works well
soemthing like this works well
X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End
or even LM services ?
a clist example
CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on
Carmen Vitullo
----- Original Message -----
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
Mike Wawiorko
-----Original Message-----
Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
Subject: Re: [TSO-REXX] Sdsf rexx
...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
...
This e-mail and any attachments are confidential and intended solely for
the addressee and may also be privileged or exempt from disclosure under
applicable law. If you are not the addressee, or have received this
e-mail
Post by Carmen Vitullo
in error, please notify the sender immediately, delete it from your
system
Post by Carmen Vitullo
and do not copy, disclose or otherwise act upon any part of this e-mail
or
Post by Carmen Vitullo
its attachments.
Internet communications are not guaranteed to be secure or virus-free.
The
Post by Carmen Vitullo
Barclays Group does not accept responsibility for any loss arising from
unauthorised access to, or interference with, any Internet communications
by any third party, or from the transmission of any viruses. Replies to
this e-mail may be monitored by the Barclays Group for operational or
business reasons.
Any opinion or other information in this e-mail or its attachments that
does not relate to the business of the Barclays Group is personal to the
sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services
across Barclays group. Barclays Services Limited is an appointed
representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale
Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc
are
Post by Carmen Vitullo
authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority.
Clydesdale Financial Services Limited is authorised and regulated by the
Financial Conduct Authority.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Dyck, Lionel B. , TRA
2018-05-11 15:00:29 UTC
Permalink
Ask your friendly IBM rep, or search the IBM site, and you won't find it. It may be there but it isn't obvious and unless it is integrated it won't be exploited by ISVs (or IBM).

--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:57 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx

It's already integrated. It's just not in the z/OS base. And you have to
pay extra.

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Dyck, Lionel B. , TRA
PIPES - it would be very nice if IBM were to just integrate PIPES into
TSO/REXX and then we can move on and make z/OS an even better platform for
the future.
--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners
-----Original Message-----
Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:48 AM
Subject: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx
"pipe listpds" dsn "| stem members."
OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Carmen Vitullo
outrap with LISTD works well
soemthing like this works well
X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End
or even LM services ?
a clist example
CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on
Carmen Vitullo
----- Original Message -----
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
Mike Wawiorko
-----Original Message-----
Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
Subject: Re: [TSO-REXX] Sdsf rexx
...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
...
This e-mail and any attachments are confidential and intended solely for
the addressee and may also be privileged or exempt from disclosure under
applicable law. If you are not the addressee, or have received this
e-mail
Post by Carmen Vitullo
in error, please notify the sender immediately, delete it from your
system
Post by Carmen Vitullo
and do not copy, disclose or otherwise act upon any part of this e-mail
or
Post by Carmen Vitullo
its attachments.
Internet communications are not guaranteed to be secure or virus-free.
The
Post by Carmen Vitullo
Barclays Group does not accept responsibility for any loss arising from
unauthorised access to, or interference with, any Internet communications
by any third party, or from the transmission of any viruses. Replies to
this e-mail may be monitored by the Barclays Group for operational or
business reasons.
Any opinion or other information in this e-mail or its attachments that
does not relate to the business of the Barclays Group is personal to the
sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services
across Barclays group. Barclays Services Limited is an appointed
representative of Barclays Bank UK plc, Barclays Bank plc and Clydesdale
Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc
are
Post by Carmen Vitullo
authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority.
Clydesdale Financial Services Limited is authorised and regulated by the
Financial Conduct Authority.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Hobart Spitz
2018-05-11 15:07:42 UTC
Permalink
Lionel:

You are so right. That's why it needs to be in the base.

(There are sites that still have it.)

Ok, people!!! Go out there and rattle some cages!!! Your boss, your data
center manager, you sales rep., your SHARE rep., your neighbor's dog, and
anyone else you can think of. (Skip your manager and/or the dog if they
bite. :-) )

LET'S GET PIPELINES IN THE Z/OS BASE!!!

OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Dyck, Lionel B. , TRA
Ask your friendly IBM rep, or search the IBM site, and you won't find it.
It may be there but it isn't obvious and unless it is integrated it won't
be exploited by ISVs (or IBM).
--------------------------------------------------------------------------
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners
-----Original Message-----
Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:57 AM
Subject: Re: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx
It's already integrated. It's just not in the z/OS base. And you have to
pay extra.
OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
On Fri, May 11, 2018 at 10:54 AM, Dyck, Lionel B. (TRA) <
Post by Dyck, Lionel B. , TRA
PIPES - it would be very nice if IBM were to just integrate PIPES into
TSO/REXX and then we can move on and make z/OS an even better platform
for
Post by Dyck, Lionel B. , TRA
the future.
------------------------------------------------------------
--------------
Post by Dyck, Lionel B. , TRA
Lionel B. Dyck (Contractor) <sdg><
Mainframe Systems Programmer – RavenTek Solution Partners
-----Original Message-----
Behalf Of Hobart Spitz
Sent: Friday, May 11, 2018 9:48 AM
Subject: [EXTERNAL] Re: [TSO-REXX] Sdsf rexx
"pipe listpds" dsn "| stem members."
OREXXMan
JCL is the buggy whip of 21st century computing.
We want Pipelines in the z/OS base.
Post by Carmen Vitullo
outrap with LISTD works well
soemthing like this works well
X = Listdsi(DSN 'DIRECTORY NORECALL')
If X=16 Then Do
If SYSREASON = 9 Then Do
Say '** Data set has been migrated .. Abort'
Exit
End
If SYSREASON = 5 Then Do
Say '** Data set not cataloged .. Abort'
Exit
End
Else Do
Say '** Servere error in LISTDSI...Rc=16 - SYSREASON=' SYSREASON
Exit
End
End
or even LM services ?
a clist example
CONTROL PROMPT NOFLUSH NOMSG END(ENDO)
ISPEXEC CONTROL ERRORS RETURN
CONTROL END(ENDO)
ISPEXEC LMINIT DATASET('&DSN') +
DATAID(PDS) ENQ(SHR) ORG(ORG)
ISPEXEC LMOPEN DATAID(&PDS) OPTION(INPUT)
SET &MEMPGM =
GETMBR: +
ISPEXEC LMMLIST DATAID(&PDS) OPTION(LIST) MEMBER(MEMPGM)
SET &CC = &LASTCC
IF &CC = 0 THEN DO
SET &LEN=&LENGTH(&MEMPGM)
SET &MEM=&SUBSTR(1:&LEN,&MEMPGM)
SET &MEMPGM=&MEM
ISPEXEC VPUT (MEMPGM)...........
and so on
Carmen Vitullo
----- Original Message -----
Sent: Friday, May 11, 2018 7:56:24 AM
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
Mike Wawiorko
-----Original Message-----
On
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
Behalf Of Barkow, Eileen
Sent: 11 May 2018 13:42
Subject: Re: [TSO-REXX] Sdsf rexx
...
Is there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
...
This e-mail and any attachments are confidential and intended solely
for
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
the addressee and may also be privileged or exempt from disclosure
under
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
applicable law. If you are not the addressee, or have received this
e-mail
Post by Carmen Vitullo
in error, please notify the sender immediately, delete it from your
system
Post by Carmen Vitullo
and do not copy, disclose or otherwise act upon any part of this e-mail
or
Post by Carmen Vitullo
its attachments.
Internet communications are not guaranteed to be secure or virus-free.
The
Post by Carmen Vitullo
Barclays Group does not accept responsibility for any loss arising from
unauthorised access to, or interference with, any Internet
communications
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
by any third party, or from the transmission of any viruses. Replies to
this e-mail may be monitored by the Barclays Group for operational or
business reasons.
Any opinion or other information in this e-mail or its attachments that
does not relate to the business of the Barclays Group is personal to
the
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
sender and is not given or endorsed by the Barclays Group.
Barclays Services Limited provides support and administrative services
across Barclays group. Barclays Services Limited is an appointed
representative of Barclays Bank UK plc, Barclays Bank plc and
Clydesdale
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
Financial Services Limited. Barclays Bank UK plc and Barclays Bank plc
are
Post by Carmen Vitullo
authorised by the Prudential Regulation Authority and regulated by the
Financial Conduct Authority and the Prudential Regulation Authority.
Clydesdale Financial Services Limited is authorised and regulated by
the
Post by Dyck, Lionel B. , TRA
Post by Carmen Vitullo
Financial Conduct Authority.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-05-11 15:24:16 UTC
Permalink
Post by Edward Gould
Post by Paul Gilmartin
Fear of indention is collateral damage of RECFM=FB,80. When Rexx first came
to TSO it came with a GIM that recommended RECFM=VB,LRECL=generous.
IBM then ignored its own advice and made SYSPROC FB,80, dragging wiser
coders down with it.
This issue long predates Rexx. Someone please correct me but the first conflict came in Netview (no idea of release but it was early even then)
There also may have been an issue with SPF (early version) We did not jump on that bandwagon .
Memory says it was Netview though.
When I first encountered SPF panel definitions were RECFM=VB. I coded some and
modified others. I experienced conversion anguish when a later release went to
RECFM=FB.

IEBUPDTE is broken. That doesn't forgive breaking other things to conform to its rules.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Edward Gould
2018-05-12 21:01:14 UTC
Permalink
Post by Paul Gilmartin
When I first encountered SPF panel definitions were RECFM=VB. I coded some and
modified others. I experienced conversion anguish when a later release went to
RECFM=FB.
IEBUPDTE is broken. That doesn't forgive breaking other things to conform to its rules.
— gil
Gil,
Not disagreeing with you but I just do not see it being brought back from the dead. I agree that there should be a replacement but I am not sure you could get anyone to agree what a satisfactory replacement might be like. Maybe this might be a good session at SHARE? You would have to generate some enthusiasm and you might get enough people to form a committee.
Personally I think it needs to be done, but there would be forces pulling at the product from at least 2 or 3 angles, each would insist that they are “right”.
Ed


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-05-13 19:09:24 UTC
Permalink
It's not from IBM, but IEBUPDTX blows IEBUPDTE and IEBUPDAT away.


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Edward Gould <***@COMCAST.NET>
Sent: Saturday, May 12, 2018 5:02 PM
To: IBM-***@listserv.ua.edu
Subject: Re: [TSO-REXX] Sdsf rexx
Post by Paul Gilmartin
When I first encountered SPF panel definitions were RECFM=VB. I coded some and
modified others. I experienced conversion anguish when a later release went to
RECFM=FB.
IEBUPDTE is broken. That doesn't forgive breaking other things to conform to its rules.
— gil
Gil,
Not disagreeing with you but I just do not see it being brought back from the dead. I agree that there should be a replacement but I am not sure you could get anyone to agree what a satisfactory replacement might be like. Maybe this might be a good session at SHARE? You would have to generate some enthusiasm and you might get enough people to form a committee.
Personally I think it needs to be done, but there would be forces pulling at the product from at least 2 or 3 angles, each would insist that they are “right”.
Ed


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-05-11 15:30:48 UTC
Permalink
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
There's also an ISPF facility for this.

In days of yore I have allocated a PDS with RECFM=F,LRECL=256,DSORG=PS
and read with Rexx EXECIO and parsed directory blocks. I believe PDSE
maintains compatibility with this practice.
-----Original Message-----
From: Barkow, Eileen
Sent: 11 May 2018 13:42
...
s there any way to get the member names in a PDSE with REXX?
I need to extract the member names in a PDSE and plug them into a job stream.
-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Charles Mills
2018-05-11 17:28:50 UTC
Permalink
Yes, you can "read the directory blocks" of a PDSE with BSAM even though they do not really exist.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Paul Gilmartin
Sent: Friday, May 11, 2018 8:32 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
There's also an ISPF facility for this.

In days of yore I have allocated a PDS with RECFM=F,LRECL=256,DSORG=PS
and read with Rexx EXECIO and parsed directory blocks. I believe PDSE
maintains compatibility with this practice.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Phil Carlyle
2018-05-11 17:33:34 UTC
Permalink
For additional info on using the LISTDSI command in REXX checkout the following link.

https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikja300/ldsi.htm


PHIL CARLYLE
Information Security | IAM RACF directory services
M: 480-235-2837 | ***@aexp.com<mailto:***@aexp.com>
TEKSystems

“The Universe is made up of Protons, Neutrons, Electrons & Morons!”

From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Charles Mills
Sent: Friday, May 11, 2018 10:30 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: Re: [TSO-REXX] Sdsf rexx

Yes, you can "read the directory blocks" of a PDSE with BSAM even though they do not really exist.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU<mailto:IBM-***@LISTSERV.UA.EDU>] On Behalf Of Paul Gilmartin
Sent: Friday, May 11, 2018 8:32 AM
To: IBM-***@LISTSERV.UA.EDU<mailto:IBM-***@LISTSERV.UA.EDU>
Subject: Re: [TSO-REXX] Sdsf rexx
OUTTRAP with LISTD dsname M ?
I'm pretty sure others will have better suggestions.
There's also an ISPF facility for this.

In days of yore I have allocated a PDS with RECFM=F,LRECL=256,DSORG=PS
and read with Rexx EXECIO and parsed directory blocks. I believe PDSE
maintains compatibility with this practice.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu<mailto:***@listserv.ua.edu> with the message: INFO IBM-MAIN


American Express made the following annotations
******************************************************************************
"This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you."

American Express a ajouté le commentaire suivant le Ce courrier et toute pièce jointe qu'il contient sont réservés au seul destinataire indiqué et peuvent renfermer des
renseignements confidentiels et privilégiés. Si vous n'êtes pas le destinataire prévu, toute divulgation, duplication, utilisation ou distribution du courrier ou de toute pièce jointe est interdite. Si vous avez reçu cette communication par erreur, veuillez nous en aviser par courrier et détruire immédiatement le courrier et les pièces jointes. Merci.

******************************************************************************


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-05-13 00:29:47 UTC
Permalink
Post by Edward Gould
Post by Paul Gilmartin
When I first encountered SPF panel definitions were RECFM=VB. I coded some and
modified others. I experienced conversion anguish when a later release went to
RECFM=FB.
IEBUPDTE is broken. That doesn't forgive breaking other things to conform to its rules.
Not disagreeing with you but I just do not see it being brought back from the dead. I agree that there should be a replacement but I am not sure you could get anyone to agree what a satisfactory replacement might be like. Maybe this might be a good session at SHARE? You would have to generate some enthusiasm and you might get enough people to form a committee.
Personally I think it needs to be done, but there would be forces pulling at the product from at least 2 or 3 angles, each would insist that they are “right”.
Ironically, it already exists in z/OS: /bin/patch, but people are loath to use it --
perhaps they associate it with a 4-letter word.

Patch even supports RESTORE which IEBUPDTE never did.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Edward Gould
2018-05-13 18:45:17 UTC
Permalink
Post by Paul Gilmartin
————————————SNIP---------------------------------------------------------------
Ironically, it already exists in z/OS: /bin/patch, but people are loath to use it --
perhaps they associate it with a 4-letter word.
Patch even supports RESTORE which IEBUPDTE never did.
————————SNIP——————————

You are correct it is a four letter word and one that will never be spoken about again.

Ed
Post by Paul Gilmartin
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Ed Jaffe
2018-05-23 22:20:56 UTC
Permalink
Post by Jake Anderson
Lizette,
We are using EJES. I think it has its own rexx interface.
So finding a way to know the destination based on first character of a
Jobname.
Listing the destination for each job whose name starts with $ is trivial
in (E)JES. You don't even need a REXX. This simple batch job will create
a report in a SYSOUT data set showing job name, job id, owner, and
destination:

//LIST$    JOB 1,JAFFE,CLASS=A,MSGCLASS=T,NOTIFY=&SYSUID
//EJES     EXEC PGM=EJESLNK
//EJESOUT  DD DUMMY,RECFM=VB,LRECL=84,BLKSIZE=88
//EJESEXT  DD SYSOUT=*
//EJESIN   DD *
 PRESET;JNAME $*;STATUS;SHOW JNAME JID OWNER PRTDEST;UPDATE
 EXTRACT FIRST LAST
//

The report looks like this in my environment:

STATUS - 3040S- 0X- 9W- 0H- 0T- 0 Records -------------------------- Row
1 to 9
JobName  JobID    Owner    PrtDest
-------- -------- -------- -----------------
$EDSQ001 S0007202 SYSOPER  LOCAL
$EDSQ002 S0007204 SYSOPER  LOCAL
$EDSQ003 S0007206 SYSOPER  LOCAL
$EDSQ004 S0007208 SYSOPER  LOCAL
$EDSQ005 S0008532 SYSOPER  LOCAL
$EDSQ006 S0008534 SYSOPER  LOCAL
$EDSQ007 S0008536 SYSOPER  LOCAL
$EDSQ008 S0008538 SYSOPER  LOCAL
$MASCOMM S0000001 SYSOPER  LOCAL

If you want to use REXX instead, you could author something like this:

/* REXX */
  rc=ejesrexx("EXECAPI * 'PRESET;JNAME $*;STATUS' (prefix _ term")
  say "JobName  JobId    Owner    PrtDest"
  do i=1 to _Lines
    say LEFT(_TCData.__JNAME.i,8) LEFT(_TCData.__JID.i,8) ,
        LEFT(_TCData.__OWNER.i,8) _TCData.__PRTDEST.i
  end

Executing this under my TSO userid yields the following:

JobName  JobId    Owner    PrtDest
$EDSQ001 S0007202 SYSOPER  LOCAL
$EDSQ002 S0007204 SYSOPER  LOCAL
$EDSQ003 S0007206 SYSOPER  LOCAL
$EDSQ004 S0007208 SYSOPER  LOCAL
$EDSQ005 S0008532 SYSOPER  LOCAL
$EDSQ006 S0008534 SYSOPER  LOCAL
$EDSQ007 S0008536 SYSOPER  LOCAL
$EDSQ008 S0008538 SYSOPER  LOCAL
$MASCOMM S0000001 SYSOPER  LOCAL
***
If you have additional questions, please contact Phoenix Software
Technical Support via ***@phoenixsoftware.com.

Thanks,
--
Phoenix Software International
Edward E. Jaffe
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/
--------------------------------------------------------------------------------
This e-mail message, including any attachments, appended messages and the
information contained therein, is for the sole use of the intended
recipient(s). If you are not an intended recipient or have otherwise
received this email message in error, any use, dissemination, distribution,
review, storage or copying of this e-mail message and the information
contained therein is strictly prohibited. If you are not an intended
recipient, please contact the sender by reply e-mail and destroy all copies
of this email message and do not otherwise utilize or retain this email
message or any or all of the information contained therein. Although this
email message and any attachments or appended messages are believed to be
free of any virus or other defect that might affect any computer system into
which it is received and opened, it is the responsibility of the recipient
to ensure that it is virus free and no responsibility is accepted by the
sender for any loss or damage arising in any way from its opening or use.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Loading...