Discussion:
ICEGENER to the rescue again?
Add Reply
Sean Gleann
2018-06-25 09:53:06 UTC
Reply
Permalink
Raw Message
I'm wondering if someone can point me in the right direction with a problem
that I've had handed to me...

I have a PDS of a reasonable number of FB80 members (>100). Some of the
members have sequence numbers in character positions 73-80, some don't and
some are 'partially' numbered, with gaps in the sequencing, depending on
who last updated the specific member.

I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.

I can think of numerous ways of doing something similar with a straight
sequential dataset, but when it comes to an unknown number of members in a
PDS, I get stumped.

My latest attempt featured IEBPTPCH to unload the PDS to a sequential file,
then SORT to write only cols 1-72 from each record to another output file.
That part works fine, but - given that I don't know how many members there
are, nor the names of them - how do I get the serialised members back in to
a PDS?

I'm fairly certain that ICEGENER would be able to do this, but have not yet
found an example that comes anywhere close, that I can then adapt to my
requirements.

Any help or pointers on this would be greatly appreciated

Sean

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Hunkeler
2018-06-25 10:07:23 UTC
Reply
Permalink
Raw Message
Are you familiar with REXX? If so, here is how you could do this:
In a REXX:- LISTDS to get a list of the members in the PDS.- ALLOCATE an new PDS for the changed members.- FREE the output dsn.
- In a loop for each member:
-- ALLOCATE the input dsn(member_nn)-- EXECIO to read the member into input stem.-- FREE the input dsn
-- in a loop move each reccord from input to output stem, but only first 72 positions--- end of inner loop
-- ALLOCATE the output dsn(member_nn)-- EXECIO to write the changed data back into the member.-- FREE the output dsn
-- end of outer loop

Not the most efficient way, but if this is a one-time job, it probably doesn't matter.

--Peter Hunkeler



----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Hunkeler
2018-06-25 11:13:14 UTC
Reply
Permalink
Raw Message
Please excuse the bad formatting. Trying Again.

Are you familiar with REXX? If so, here is how you could do this:

In a REXX:- LISTDS to get a list of the members in the PDS.- ALLOCATE an new PDS for the changed members.- FREE the output dsn.

- In a loop for each member:

-- ALLOCATE the input dsn(member_nn)-- EXECIO to read the member into input stem.
-- FREE the input dsn

-- in a loop move each reccord from input to output stem, but only first 72 positions
--- end of inner loop

-- ALLOCATE the output dsn(member_nn)
-- EXECIO to write the changed data back into the member.
-- FREE the output dsn
-- end of outer loop


Not the most efficient way, but if this is a one-time job, it probably doesn't matter.

--
Peter Hunkeler




----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Dyck, Lionel B. , RavenTek
2018-06-25 11:34:11 UTC
Reply
Permalink
Raw Message
Another approach is to run an exec that uses listd to get all the members and then invoke ispf edit with a macro for each member - that macro could then do a REN,UNNUM, and then SAVE and END, which will clear out columns 73-80.

Here is my exec that will invoke an edit macro on all members of a PDS with a sample edit macro after that will do what you want:

/* --------------------- rexx procedure ---------------------- *
* Name: DoAll *
* *
* Function: This rexx exec will process the specified *
* ispf edit macro against every member of the *
* specified partitioned dataset. *
* *
* Only standard system services are used. The *
* LISTD TSO command with the MEMBERS keyword *
* is used to extract the member names. *
* *
* Syntax: %DoAll dsname edit-macro *
* *
* Sample Edit Macro to change SYS1 to SYS2 *
* * rexx exec chsys1t2 (change sys1 to sys2) * *
* (the / was removed from the above line to avoid syntax *
* errors in this exec). *
* Address ISREDIT *
* "MACRO" *
* "CHANGE 'DSN=SYS1.' 'DSN=SYS2.' ALL" *
* "SAVE" *
* "END" *
* *
* Sample Execution: %Doall 'sys2.testjcl' chsys1t2 *
* *
* Author: Lionel B. Dyck *
* Internet: ***@gmail.com *
* *
* History: 11/30/90 - created *
* *
* ------------------------------------------------------------- */

arg dsn exec

if left(dsn,1) <> "'" then do
dsn = sysvar(syspref)"."dsn
end
else do
dsn = substr(dsn,2,length(dsn)-2)
end

x = outtrap("lm.","*")

"LISTD" "'"dsn"'" "MEMBERS"

x = outtrap("off")

do i = 1 to lm.0
if lm.i = "--MEMBERS--" then leave
end

domem: do j = i+1 to lm.0
parse value lm.j with mem extra
Address ISPEXEC "EDIT DATASET('"dsn"("mem")')" ,
"MACRO("exec")"
end


/* REXX */
/* FIXNUM Edit Macro */
Address ISREdit
'Macro'
'REN'
'UNNUM'
'Save'
'End'

--------------------------------------------------------------------------
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 Peter Hunkeler
Sent: Monday, June 25, 2018 6:13 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: [EXTERNAL] AW: ICEGENER to the rescue again?

Please excuse the bad formatting. Trying Again.

Are you familiar with REXX? If so, here is how you could do this:

In a REXX:- LISTDS to get a list of the members in the PDS.- ALLOCATE an new PDS for the changed members.- FREE the output dsn.

- In a loop for each member:

-- ALLOCATE the input dsn(member_nn)-- EXECIO to read the member into input stem.
-- FREE the input dsn

-- in a loop move each reccord from input to output stem, but only first 72 positions
--- end of inner loop

-- ALLOCATE the output dsn(member_nn)
-- EXECIO to write the changed data back into the member.
-- FREE the output dsn
-- end of outer loop


Not the most efficient way, but if this is a one-time job, it probably doesn't matter.

--
Peter Hunkeler




----------------------------------------------------------------------
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
Seymour J Metz
2018-06-25 16:40:06 UTC
Reply
Permalink
Raw Message
Why invoke ISPF multiple times? Invoke it once, with an ISPF macro to do the heavy lifting.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Dyck, Lionel B. (RavenTek) <***@VA.GOV>
Sent: Monday, June 25, 2018 7:34 AM
To: IBM-***@listserv.ua.edu
Subject: Re: [EXTERNAL] AW: ICEGENER to the rescue again?

Another approach is to run an exec that uses listd to get all the members and then invoke ispf edit with a macro for each member - that macro could then do a REN,UNNUM, and then SAVE and END, which will clear out columns 73-80.

Here is my exec that will invoke an edit macro on all members of a PDS with a sample edit macro after that will do what you want:

/* --------------------- rexx procedure ---------------------- *
* Name: DoAll *
* *
* Function: This rexx exec will process the specified *
* ispf edit macro against every member of the *
* specified partitioned dataset. *
* *
* Only standard system services are used. The *
* LISTD TSO command with the MEMBERS keyword *
* is used to extract the member names. *
* *
* Syntax: %DoAll dsname edit-macro *
* *
* Sample Edit Macro to change SYS1 to SYS2 *
* * rexx exec chsys1t2 (change sys1 to sys2) * *
* (the / was removed from the above line to avoid syntax *
* errors in this exec). *
* Address ISREDIT *
* "MACRO" *
* "CHANGE 'DSN=SYS1.' 'DSN=SYS2.' ALL" *
* "SAVE" *
* "END" *
* *
* Sample Execution: %Doall 'sys2.testjcl' chsys1t2 *
* *
* Author: Lionel B. Dyck *
* Internet: ***@gmail.com *
* *
* History: 11/30/90 - created *
* *
* ------------------------------------------------------------- */

arg dsn exec

if left(dsn,1) <> "'" then do
dsn = sysvar(syspref)"."dsn
end
else do
dsn = substr(dsn,2,length(dsn)-2)
end

x = outtrap("lm.","*")

"LISTD" "'"dsn"'" "MEMBERS"

x = outtrap("off")

do i = 1 to lm.0
if lm.i = "--MEMBERS--" then leave
end

domem: do j = i+1 to lm.0
parse value lm.j with mem extra
Address ISPEXEC "EDIT DATASET('"dsn"("mem")')" ,
"MACRO("exec")"
end


/* REXX */
/* FIXNUM Edit Macro */
Address ISREdit
'Macro'
'REN'
'UNNUM'
'Save'
'End'

--------------------------------------------------------------------------
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 Peter Hunkeler
Sent: Monday, June 25, 2018 6:13 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: [EXTERNAL] AW: ICEGENER to the rescue again?

Please excuse the bad formatting. Trying Again.

Are you familiar with REXX? If so, here is how you could do this:

In a REXX:- LISTDS to get a list of the members in the PDS.- ALLOCATE an new PDS for the changed members.- FREE the output dsn.

- In a loop for each member:

-- ALLOCATE the input dsn(member_nn)-- EXECIO to read the member into input stem.
-- FREE the input dsn

-- in a loop move each reccord from input to output stem, but only first 72 positions
--- end of inner loop

-- ALLOCATE the output dsn(member_nn)
-- EXECIO to write the changed data back into the member.
-- FREE the output dsn
-- end of outer loop


Not the most efficient way, but if this is a one-time job, it probably doesn't matter.

--
Peter Hunkeler




----------------------------------------------------------------------
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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Peter Hunkeler
2018-06-25 11:16:19 UTC
Reply
Permalink
Raw Message
Post by Sean Gleann
I'm fairly certain that ICEGENER would be able to do this, but have not yet
found an example that comes anywhere close, that I can then adapt to my
requirements.


It's IEBGENER not ICEGENER which you probably mean. The latter does 1:1 copies of sequential data sets only.



--
ßph

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Burrell, Todd
2018-06-25 11:22:11 UTC
Reply
Permalink
Raw Message
I think IEBUPDTE should be able to do this, but you will need to know the member names. You could generate the "./ ADD NAME=" cards for each member and then run this back through IEBUPDTE to add the members.


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:IBM-***@LISTSERV.UA.EDU] On Behalf Of Peter Hunkeler
Sent: Monday, June 25, 2018 7:16 AM
To: IBM-***@LISTSERV.UA.EDU
Subject: AW: ICEGENER to the rescue again?
Post by Sean Gleann
I'm fairly certain that ICEGENER would be able to do this, but have not yet
found an example that comes anywhere close, that I can then adapt to my requirements.


It's IEBGENER not ICEGENER which you probably mean. The latter does 1:1 copies of sequential data sets only.



--
ßph

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





This email transmission and any accompanying attachments may contain CSX privileged and confidential information intended only for the use of the intended addressee. Any dissemination, distribution, copying or action taken in reliance on the contents of this email by anyone other than the intended recipient is strictly prohibited. If you have received this email in error please immediately delete it and notify sender at the above CSX email address. Sender and CSX accept no liability for any damage caused directly or indirectly by receipt of this email.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Elardus Engelbrecht
2018-06-25 11:27:04 UTC
Reply
Permalink
Raw Message
I have a PDS of a reasonable number of FB80 members (>100). Some of the members have sequence numbers in character positions 73-80, some don't and some are 'partially' numbered, with gaps in the sequencing, depending on who last updated the specific member.
I want to replace anything in cols 73-80 with 8 spaces, no matter what is there.
It should be easy, read cols 1-72 only, copy and pad it 8 space to same member.
I can think of numerous ways of doing something similar with a straight sequential dataset, but when it comes to an unknown number of members in a PDS, I get stumped.
DFSORT/ICETOOL can do it, I believe a similar example was placed in IBM-MAIN.
My latest attempt featured IEBPTPCH to unload the PDS to a sequential file, then SORT to write only cols 1-72 from each record to another output file. That part works fine, but - given that I don't know how many members there are, nor the names of them - how do I get the serialised members back in to a PDS?
I'm fairly certain that ICEGENER would be able to do this, ...
If there is an ICEGENER example, tell me, please...


Or as Peter Hunkeler said, try use REXX, but I will take a slight different approach, because you don't know how large a member can be.

Use LISTDS, put list of members, then for each member, do this (for each member):

... Call DFSORT or ICETOOL to process each member by copying 1-72 and padded to right. Same input - same output.
Post by Peter Hunkeler
-- ALLOCATE the input dsn(member_nn)-- EXECIO to read the member into input stem.-- FREE the input dsn
May work, but if the member is large, you may run out of storage.

Alternatively, try this little loop:

"EXECIO 1 DISKR IN"
PULL LINE
... do your copy work ...
PUSH OUTLINE
"EXECIO 1 DISKW OUT"
Not the most efficient way, but if this is a one-time job, it probably doesn't matter.
Indeed. You can perhaps use Assembler and using standard macros to process the memberlist and call DFSORT/ICETOOL to do the copy, but ...

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Mike Schwab
2018-06-25 15:48:19 UTC
Reply
Permalink
Raw Message
PDSEDIT can do this real quick, do a BOUNDS 73 80 and C '0' ' ', etc.,
and supply the list of members. Use PARM='TEST' until satisfied with
expected result, then change to NOTEST.
http://gsf-soft.com/Products/PDSEDIT.html

IBM suggests the FILE MANAGER FIND/CHANGE utility.
https://www.ibm.com/support/knowledgecenter/en/SSXJAV_13.1.0/com.ibm.filemanager.doc_13.1/base/fchuse.html
Post by Sean Gleann
I'm wondering if someone can point me in the right direction with a problem
that I've had handed to me...
I have a PDS of a reasonable number of FB80 members (>100). Some of the
members have sequence numbers in character positions 73-80, some don't and
some are 'partially' numbered, with gaps in the sequencing, depending on
who last updated the specific member.
I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.
I can think of numerous ways of doing something similar with a straight
sequential dataset, but when it comes to an unknown number of members in a
PDS, I get stumped.
My latest attempt featured IEBPTPCH to unload the PDS to a sequential file,
then SORT to write only cols 1-72 from each record to another output file.
That part works fine, but - given that I don't know how many members there
are, nor the names of them - how do I get the serialised members back in to
a PDS?
I'm fairly certain that ICEGENER would be able to do this, but have not yet
found an example that comes anywhere close, that I can then adapt to my
requirements.
Any help or pointers on this would be greatly appreciated
Sean
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-25 16:43:29 UTC
Reply
Permalink
Raw Message
I'd write an ISPF dialog using Library Services.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Sean Gleann <***@GMAIL.COM>
Sent: Monday, June 25, 2018 5:52 AM
To: IBM-***@listserv.ua.edu
Subject: ICEGENER to the rescue again?

I'm wondering if someone can point me in the right direction with a problem
that I've had handed to me...

I have a PDS of a reasonable number of FB80 members (>100). Some of the
members have sequence numbers in character positions 73-80, some don't and
some are 'partially' numbered, with gaps in the sequencing, depending on
who last updated the specific member.

I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.

I can think of numerous ways of doing something similar with a straight
sequential dataset, but when it comes to an unknown number of members in a
PDS, I get stumped.

My latest attempt featured IEBPTPCH to unload the PDS to a sequential file,
then SORT to write only cols 1-72 from each record to another output file.
That part works fine, but - given that I don't know how many members there
are, nor the names of them - how do I get the serialised members back in to
a PDS?

I'm fairly certain that ICEGENER would be able to do this, but have not yet
found an example that comes anywhere close, that I can then adapt to my
requirements.

Any help or pointers on this would be greatly appreciated

Sean

----------------------------------------------------------------------
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
Sri h Kolusu
2018-06-25 17:36:24 UTC
Reply
Permalink
Raw Message
Sean,

ICEGENER can only handle 1 member at a time. As others have pointed out
you can use a macro to update the line numbers. If your shop has
file-manger then you can use the following JCL

//STEP0100 EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//PDS DD DISP=SHR,DSN=Your input pds with line numbers
//SYSIN DD *
$$FILEM FCH INPUT=PDS
C P'=' ' ' 73 80
Post by Sean Gleann
Post by Sean Gleann
My latest attempt featured IEBPTPCH to unload the PDS to a sequential
file, then SORT to write only cols 1-72 from each record to another output
file.
Post by Sean Gleann
That part works fine, but - given that I don't know how many members
there are, nor the names of them - how do I get the serialised members back
in to
Post by Sean Gleann
a PDS?
You can print the PDS using IEBPTPCH and rebuild the PDS once again by
generating the update control cards for IEBUPDTE using DFSORT. Let me know
if you are interested in that solution


Kolusu




----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Jerry Whitteridge
2018-06-25 17:49:29 UTC
Reply
Permalink
Raw Message
Look into the ISPF Edit commands "UnNUM" followed by "Number Off"

(This is dredging way back in my memory banks and I forget the order they
commands need to be done in - but they specifically address your issue).

Jerry Whitteridge
Delivery Manager / Mainframe Architect
GTS - Safeway Account
602 527 4871 Mobile
***@ibm.com

IBM Services
Date: 06/25/2018 10:36 AM
Subject: Re: ICEGENER to the rescue again?
Sean,
ICEGENER can only handle 1 member at a time. As others have pointed out
you can use a macro to update the line numbers. If your shop has
file-manger then you can use the following JCL
//STEP0100 EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//PDS DD DISP=SHR,DSN=Your input pds with line numbers
//SYSIN DD *
$$FILEM FCH INPUT=PDS
C P'=' ' ' 73 80
Post by Sean Gleann
Post by Sean Gleann
My latest attempt featured IEBPTPCH to unload the PDS to a sequential
file, then SORT to write only cols 1-72 from each record to another output
file.
Post by Sean Gleann
That part works fine, but - given that I don't know how many members
there are, nor the names of them - how do I get the serialised members back
in to
Post by Sean Gleann
a PDS?
You can print the PDS using IEBPTPCH and rebuild the PDS once again by
generating the update control cards for IEBUPDTE using DFSORT. Let me know
if you are interested in that solution
Kolusu
----------------------------------------------------------------------
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
Mike Schwab
2018-06-25 18:07:21 UTC
Reply
Permalink
Raw Message
Unnum doesn't work if all lines don't have numbers. So you have to
renum then unnum.
On Mon, Jun 25, 2018 at 12:49 PM Jerry Whitteridge
Post by Jerry Whitteridge
Look into the ISPF Edit commands "UnNUM" followed by "Number Off"
(This is dredging way back in my memory banks and I forget the order they
commands need to be done in - but they specifically address your issue).
Jerry Whitteridge
Delivery Manager / Mainframe Architect
GTS - Safeway Account
602 527 4871 Mobile
IBM Services
Date: 06/25/2018 10:36 AM
Subject: Re: ICEGENER to the rescue again?
Sean,
ICEGENER can only handle 1 member at a time. As others have pointed out
you can use a macro to update the line numbers. If your shop has
file-manger then you can use the following JCL
//STEP0100 EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//PDS DD DISP=SHR,DSN=Your input pds with line numbers
//SYSIN DD *
$$FILEM FCH INPUT=PDS
C P'=' ' ' 73 80
Post by Sean Gleann
Post by Sean Gleann
My latest attempt featured IEBPTPCH to unload the PDS to a sequential
file, then SORT to write only cols 1-72 from each record to another
output
file.
Post by Sean Gleann
That part works fine, but - given that I don't know how many members
there are, nor the names of them - how do I get the serialised members
back
in to
Post by Sean Gleann
a PDS?
You can print the PDS using IEBPTPCH and rebuild the PDS once again by
generating the update control cards for IEBUPDTE using DFSORT. Let me
know
if you are interested in that solution
Kolusu
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-06-25 21:13:58 UTC
Reply
Permalink
Raw Message
Post by Mike Schwab
Unnum doesn't work if all lines don't have numbers. So you have to
renum then unnum.
Can anyone think of a reason for this? Cui bono?

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
retired mainframer
2018-06-25 21:35:35 UTC
Reply
Permalink
Raw Message
Possibly because
1 - If some lines don't have numbers, the member is technically not
numbered.
2 - A member that is not numbered can have real data in 73-80.
3 - Blanking out real data with the unnum command is undesirable.

Presumably, if unnum fails for this reason, you would double check before
issuing the renum command.
Post by Burrell, Todd
-----Original Message-----
Of Paul Gilmartin
Sent: Monday, June 25, 2018 2:13 PM
Subject: Re: ICEGENER to the rescue again?
Post by Mike Schwab
Unnum doesn't work if all lines don't have numbers. So you have to
renum then unnum.
Can anyone think of a reason for this? Cui bono?
-- 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
retired mainframer
2018-06-25 18:29:03 UTC
Reply
Permalink
Raw Message
If you write a simple edit macro with the commands
C P'.' ' ' 73 80 ALL
SAVE
END
you can specify this macro to automatically execute when you edit a member. Then display the dataset in 3.4 and issue the line command E(*). If you prefer, you can bring up the member list and issue the line command E for the specific ones you want to process.

After you are done, remove the automatic execution of this macro before editing any other data.
Post by Burrell, Todd
-----Original Message-----
Of Sean Gleann
Sent: Monday, June 25, 2018 2:53 AM
Subject: ICEGENER to the rescue again?
I'm wondering if someone can point me in the right direction with a problem
that I've had handed to me...
I have a PDS of a reasonable number of FB80 members (>100). Some of the
members have sequence numbers in character positions 73-80, some don't and
some are 'partially' numbered, with gaps in the sequencing, depending on
who last updated the specific member.
I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.
I can think of numerous ways of doing something similar with a straight
sequential dataset, but when it comes to an unknown number of members in a
PDS, I get stumped.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-06-25 21:47:03 UTC
Reply
Permalink
Raw Message
Post by retired mainframer
Possibly because
1 - If some lines don't have numbers, the member is technically not
numbered.
2 - A member that is not numbered can have real data in 73-80.
3 - Blanking out real data with the unnum command is undesirable.
Presumably, if unnum fails for this reason, you would double check before
issuing the renum command.
So it's advised to write a script that renumbers and unnumbers all members
of a PDS, bypassing any possible warnings?

It's like not being able to turn off "Confirm Deletes" -- replying "Y" becomes
a reflex and the protection vanishes.
https://en.wikipedia.org/wiki/The_Boy_Who_Cried_Wolf
Post by retired mainframer
Post by Mike Schwab
Unnum doesn't work if all lines don't have numbers. So you have to
renum then unnum.
-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Mike Schwab
2018-06-25 22:23:30 UTC
Reply
Permalink
Raw Message
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
On Mon, Jun 25, 2018 at 4:47 PM Paul Gilmartin
Post by Paul Gilmartin
Post by retired mainframer
Possibly because
1 - If some lines don't have numbers, the member is technically not
numbered.
2 - A member that is not numbered can have real data in 73-80.
3 - Blanking out real data with the unnum command is undesirable.
Presumably, if unnum fails for this reason, you would double check before
issuing the renum command.
So it's advised to write a script that renumbers and unnumbers all members
of a PDS, bypassing any possible warnings?
It's like not being able to turn off "Confirm Deletes" -- replying "Y" becomes
a reflex and the protection vanishes.
https://en.wikipedia.org/wiki/The_Boy_Who_Cried_Wolf
Post by retired mainframer
Post by Mike Schwab
Unnum doesn't work if all lines don't have numbers. So you have to
renum then unnum.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Smith
2018-06-25 23:22:10 UTC
Reply
Permalink
Raw Message
Which of course, only works if NUM is off.

If unnum doesn't always work, I don't think there's a general 1-line
solution.

Renum works on any member, so I can't see much room for a sensible reason
for unnum to be so delicate about it.

sas
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Wayne Bickerdike
2018-06-26 08:45:04 UTC
Reply
Permalink
Raw Message
I use a PDSTOSAM REXX program. It writes all the members to a flat file
with a ./ ADD IEBUPDTE header at the start of each member.

Use ISPF edit against the entire file and add the updated members back.

As previously stated "C ALL P'=' ' ' 73 80" will remove any sequence
numbers.

If interested, I'll post the REXX code and JCL...
Post by Steve Smith
Which of course, only works if NUM is off.
If unnum doesn't always work, I don't think there's a general 1-line
solution.
Renum works on any member, so I can't see much room for a sensible reason
for unnum to be so delicate about it.
sas
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Wayne V. Bickerdike

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Sean Gleann
2018-06-26 11:01:42 UTC
Reply
Permalink
Raw Message
Wayne - yes, I'd be very interested, please.

I've been plugging away at Lionel Dyck's suggestion of a REXX calling a
REXX, so far with a notable lack of success (I keep getting a RC(-3), so
I*think* I'm doing something wrong with the environment)

Regards
Sean
Post by Wayne Bickerdike
I use a PDSTOSAM REXX program. It writes all the members to a flat file
with a ./ ADD IEBUPDTE header at the start of each member.
Use ISPF edit against the entire file and add the updated members back.
As previously stated "C ALL P'=' ' ' 73 80" will remove any sequence
numbers.
If interested, I'll post the REXX code and JCL...
Post by Steve Smith
Which of course, only works if NUM is off.
If unnum doesn't always work, I don't think there's a general 1-line
solution.
Renum works on any member, so I can't see much room for a sensible reason
for unnum to be so delicate about it.
sas
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Wayne V. Bickerdike
----------------------------------------------------------------------
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
John McKown
2018-06-26 12:24:15 UTC
Reply
Permalink
Raw Message
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
​PMJI,​

​I have fought and fought with myself to stay quiet​, but my silliness
factor is off the wall today. So I will reply with the most useless way to
do this that I can come up with.

1) Install Co:Z to get the batch launcher and Data Set Pipes tools.
2) Run the following script

export DSN='some.pds' # fully qualified name, not in ' marks but like in JCL
pdsdir ${DSN} | \
while read member;do
fromdsn "${DSN}(${member})" | \
cut -b 1-72 | \
todsn "${DSN)$({member})"
end


All this can be done from a UNIX shell, thus _proving_ that the UNIX shell
is more powerful than the standard TSO environment.

---- going back into my hole now ----
--
There is no such thing as the Cloud. It is just somebody else’s computer.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Sean Gleann
2018-06-26 12:57:16 UTC
Reply
Permalink
Raw Message
Thanks, Elardus

I was originally using "TRACE I" and getting flooded with information - I
see that your "TRACE ALL" is a far better option.

Here's an excerpt from the output log (attempted 'edits' of 2 members):

22 *-* DO J = I+1 TO
LM.0

23 *-* PARSE VALUE LM.J WITH MEM
EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(CLIENTX1)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3)
+++

25 *-*
END

22 *-* DO J = I+1 TO
LM.0

23 *-* PARSE VALUE LM.J WITH MEM
EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(DAYZREPB)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++

… etc...

This is at a point in the REXX after the list of member names in the PDS
has been created - that part works fine.

Bear in mind that what you see here is just the latest 'iteration' in my
attempts at getting this thing working.
I've tried many different ideas, but I always get that darn RC-3

I'm questioning if the problem lies with the EDIT command, or within UNNUM

Just in case, here is 'UNNUM':

/* REXX */
ADDRESS ISREDIT
'REN'
'UNNUM'
'SAVE'
'END'

Regards
Sean
Post by John McKown
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
​PMJI,​
​I have fought and fought with myself to stay quiet​, but my silliness
factor is off the wall today. So I will reply with the most useless way to
do this that I can come up with.
1) Install Co:Z to get the batch launcher and Data Set Pipes tools.
2) Run the following script
export DSN='some.pds' # fully qualified name, not in ' marks but like in JCL
pdsdir ${DSN} | \
while read member;do
fromdsn "${DSN}(${member})" | \
cut -b 1-72 | \
todsn "${DSN)$({member})"
end
All this can be done from a UNIX shell, thus _proving_ that the UNIX shell
is more powerful than the standard TSO environment.
---- going back into my hole now ----
--
There is no such thing as the Cloud. It is just somebody else’s computer.
Maranatha! <><
John McKown
----------------------------------------------------------------------
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
Sean Gleann
2018-06-26 13:02:59 UTC
Reply
Permalink
Raw Message
To John McKown:

I sense your frustration, sir.

The fact is that I have a great deal of difficulty dealing with anything
unix-y.
When I get anywhere close to USS stuff, co-workers here have described the
outcome as being similar to throwing a crucifix at a vampire - I tend the
'fizz' a lot. :)
That's the price to be paid for having been a mainframer for 45+ years and
rapidly approaching retirement

Regards
Sean
Post by Sean Gleann
Thanks, Elardus
I was originally using "TRACE I" and getting flooded with information - I
see that your "TRACE ALL" is a far better option.
22 *-* DO J = I+1 TO LM.0
23 *-* PARSE VALUE LM.J WITH MEM EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(CLIENTX1)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++
25 *-* END
22 *-* DO J = I+1 TO LM.0
23 *-* PARSE VALUE LM.J WITH MEM EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(DAYZREPB)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++
… etc...
This is at a point in the REXX after the list of member names in the PDS
has been created - that part works fine.
Bear in mind that what you see here is just the latest 'iteration' in my
attempts at getting this thing working.
I've tried many different ideas, but I always get that darn RC-3
I'm questioning if the problem lies with the EDIT command, or within UNNUM
/* REXX */
ADDRESS ISREDIT
'REN'
'UNNUM'
'SAVE'
'END'
Regards
Sean
Post by John McKown
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
​PMJI,​
​I have fought and fought with myself to stay quiet​, but my silliness
factor is off the wall today. So I will reply with the most useless way to
do this that I can come up with.
1) Install Co:Z to get the batch launcher and Data Set Pipes tools.
2) Run the following script
export DSN='some.pds' # fully qualified name, not in ' marks but like in JCL
pdsdir ${DSN} | \
while read member;do
fromdsn "${DSN}(${member})" | \
cut -b 1-72 | \
todsn "${DSN)$({member})"
end
All this can be done from a UNIX shell, thus _proving_ that the UNIX shell
is more powerful than the standard TSO environment.
---- going back into my hole now ----
--
There is no such thing as the Cloud. It is just somebody else’s computer.
Maranatha! <><
John McKown
----------------------------------------------------------------------
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
John McKown
2018-06-26 13:16:42 UTC
Reply
Permalink
Raw Message
Post by Sean Gleann
I sense your frustration, sir.
​Oh, I didn't mean to come across as frustrated. I was just wanting to
throw a "spit ball" into the discussion {grin}. I was going with the PERL
motto: TMTOWTDI (Tim Toady) -- There is More Than One Way To Do It. Since
all the other, very good, suggestions were using "legacy" methods, I
thought a "spit ball" would be fun.​
Post by Sean Gleann
The fact is that I have a great deal of difficulty dealing with anything
unix-y.
When I get anywhere close to USS stuff, co-workers here have described the
outcome as being similar to throwing a crucifix at a vampire - I tend the
'fizz' a lot. :)
That's the price to be paid for having been a mainframer for 45+ years and
rapidly approaching retirement
​I've been in the mainframe since 1976 myself. But I am a Linux partisan
(penguinista) and have used it for over 10 years. So I'm a fairly UNIX
literate in writing shell scripts and simple commands. And sometimes TSO
just frustrates me because there is not a real way to issue a series of TSO
commands in a row, passing the output of one to the input of another.
Except, of course, by writing a REXX program as a member of a PDS on my
SYSPROC or SYSEXEC concatenation. But this is more in the legacy
development mode -- edit; test; revise; repeat. And I'm forced to keep a
"junk" member in my PDS just for "ad hoc" purposes.
Post by Sean Gleann
Regards
Sean
There is no such thing as the Cloud. It is just somebody else’s computer.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-26 19:58:26 UTC
Reply
Permalink
Raw Message
Well, youngster, Eunix <g> certainly has egregious faults, but it also has its good points. Alas, IBM took a minimalist approach to porting it to MVS. I'd like to see pipes and regular expressions[1] in TSO without a syntax that is not to be Bourne.

When the only tool you have is a pipe, everything looks like a filter. She sells C shells by the c shore.

[1] Preferably with named captures.

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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Sean Gleann <***@GMAIL.COM>
Sent: Tuesday, June 26, 2018 9:02 AM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?

To John McKown:

I sense your frustration, sir.

The fact is that I have a great deal of difficulty dealing with anything
unix-y.
When I get anywhere close to USS stuff, co-workers here have described the
outcome as being similar to throwing a crucifix at a vampire - I tend the
'fizz' a lot. :)
That's the price to be paid for having been a mainframer for 45+ years and
rapidly approaching retirement

Regards
Sean
Post by Sean Gleann
Thanks, Elardus
I was originally using "TRACE I" and getting flooded with information - I
see that your "TRACE ALL" is a far better option.
22 *-* DO J = I+1 TO LM.0
23 *-* PARSE VALUE LM.J WITH MEM EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(CLIENTX1)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++
25 *-* END
22 *-* DO J = I+1 TO LM.0
23 *-* PARSE VALUE LM.J WITH MEM EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(DAYZREPB)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++
… etc...
This is at a point in the REXX after the list of member names in the PDS
has been created - that part works fine.
Bear in mind that what you see here is just the latest 'iteration' in my
attempts at getting this thing working.
I've tried many different ideas, but I always get that darn RC-3
I'm questioning if the problem lies with the EDIT command, or within UNNUM
/* REXX */
ADDRESS ISREDIT
'REN'
'UNNUM'
'SAVE'
'END'
Regards
Sean
Post by John McKown
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
​PMJI,​
​I have fought and fought with myself to stay quiet​, but my silliness
factor is off the wall today. So I will reply with the most useless way to
do this that I can come up with.
1) Install Co:Z to get the batch launcher and Data Set Pipes tools.
2) Run the following script
export DSN='some.pds' # fully qualified name, not in ' marks but like in JCL
pdsdir ${DSN} | \
while read member;do
fromdsn "${DSN}(${member})" | \
cut -b 1-72 | \
todsn "${DSN)$({member})"
end
All this can be done from a UNIX shell, thus _proving_ that the UNIX shell
is more powerful than the standard TSO environment.
---- going back into my hole now ----
--
There is no such thing as the Cloud. It is just somebody else’s computer.
Maranatha! <><
John McKown
----------------------------------------------------------------------
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
Seymour J Metz
2018-06-26 19:59:57 UTC
Reply
Permalink
Raw Message
RC(-3) is to be expected; you're not in an EDIT environment. Try ADDRESS ISPEXEC.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Sean Gleann <***@gmail.com>
Sent: Tuesday, June 26, 2018 8:57 AM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?

Thanks, Elardus

I was originally using "TRACE I" and getting flooded with information - I
see that your "TRACE ALL" is a far better option.

Here's an excerpt from the output log (attempted 'edits' of 2 members):

22 *-* DO J = I+1 TO
LM.0

23 *-* PARSE VALUE LM.J WITH MEM
EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(CLIENTX1)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3)
+++

25 *-*
END

22 *-* DO J = I+1 TO
LM.0

23 *-* PARSE VALUE LM.J WITH MEM
EXTRA
24 *-* ADDRESS ISREDIT "EDIT DATASET('"DSN"("MEM")')"
"MACRO('"EXEC"')"
Post by John McKown
Post by Mike Schwab
"EDIT DATASET('ADJC.SEQNOS.ON(DAYZREPB)')
MACRO('ADJC.REXXLIB(UNNUM)')"
+++ RC(-3) +++

… etc...

This is at a point in the REXX after the list of member names in the PDS
has been created - that part works fine.

Bear in mind that what you see here is just the latest 'iteration' in my
attempts at getting this thing working.
I've tried many different ideas, but I always get that darn RC-3

I'm questioning if the problem lies with the EDIT command, or within UNNUM

Just in case, here is 'UNNUM':

/* REXX */
ADDRESS ISREDIT
'REN'
'UNNUM'
'SAVE'
'END'

Regards
Sean
Post by John McKown
Post by Mike Schwab
Which is why we suggested C ALL P'.' ' ' 73 80.
Change All characters to blanks in columns 73 to 80.
​PMJI,​
​I have fought and fought with myself to stay quiet​, but my silliness
factor is off the wall today. So I will reply with the most useless way to
do this that I can come up with.
1) Install Co:Z to get the batch launcher and Data Set Pipes tools.
2) Run the following script
export DSN='some.pds' # fully qualified name, not in ' marks but like in
JCL
pdsdir ${DSN} | \
while read member;do
fromdsn "${DSN}(${member})" | \
cut -b 1-72 | \
todsn "${DSN)$({member})"
end
All this can be done from a UNIX shell, thus _proving_ that the UNIX shell
is more powerful than the standard TSO environment.
---- going back into my hole now ----
--
There is no such thing as the Cloud. It is just somebody else’s computer.
Maranatha! <><
John McKown
----------------------------------------------------------------------
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
Shmuel Metz , Seymour J.
2018-06-26 15:35:43 UTC
Reply
Permalink
Raw Message
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
--
Shmuel (Seymour J.) Metz
<http://mason.gmu.edu/~smetz3>

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Smith
2018-06-26 15:41:34 UTC
Reply
Permalink
Raw Message
Really? I'm almost convinced this is a joke.

sas
Post by Shmuel Metz , Seymour J.
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
--
Shmuel (Seymour J.) Metz
<http://mason.gmu.edu/~smetz3>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
sas

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John McKown
2018-06-26 16:21:08 UTC
Reply
Permalink
Raw Message
Post by Steve Smith
Really? I'm almost convinced this is a joke.
​That was certainly my intent for my portion of the thread. I guess I
really am not communicating well today. ​

I will hereby apologize for interjecting a silly message amongst serious
ones.
Post by Steve Smith
sas
Post by Shmuel Metz , Seymour J.
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
--
Shmuel (Seymour J.) Metz
<http://mason.gmu.edu/~smetz3>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
sas
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
There is no such thing as the Cloud. It is just somebody else’s computer.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Steve Smith
2018-06-26 18:40:03 UTC
Reply
Permalink
Raw Message
Communication is tougher than it looks. My previous reply was to Shmuel,
not John M.

My comment was about the false dichotomy of Unix & scripts vs. TSO & REXX.
It's kinda funny, isn't it?

sas
Post by John McKown
Post by Steve Smith
Really? I'm almost convinced this is a joke.
​That was certainly my intent for my portion of the thread. I guess I
really am not communicating well today. ​
I will hereby apologize for interjecting a silly message amongst serious
ones.
Post by Steve Smith
sas
On Tue, Jun 26, 2018 at 11:34 AM, Shmuel (Seymour J.) Metz <
Post by Shmuel Metz , Seymour J.
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the
standard
Post by Steve Smith
Post by Shmuel Metz , Seymour J.
Post by John McKown
TSO environment.
No, REXX is part of the standard TSO environment.
--
Shmuel (Seymour J.) Metz
<http://mason.gmu.edu/~smetz3>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
sas
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
There is no such thing as the Cloud. It is just somebody else’s computer.
Maranatha! <><
John McKown
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
sas

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-26 19:16:57 UTC
Reply
Permalink
Raw Message
Whoosh!


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Steve Smith <***@GMAIL.COM>
Sent: Tuesday, June 26, 2018 11:41 AM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?

Really? I'm almost convinced this is a joke.

sas
Post by Shmuel Metz , Seymour J.
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
--
Shmuel (Seymour J.) Metz
<http://mason.gmu.edu/~smetz3>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
sas

----------------------------------------------------------------------
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
Elardus Engelbrecht
2018-06-26 11:08:04 UTC
Reply
Permalink
Raw Message
I've been plugging away at Lionel Dyck's suggestion of a REXX calling a REXX, so far with a notable lack of success (I keep getting a RC(-3), so I*think* I'm doing something wrong with the environment)
Please post the command just before that RC(-3) and the full message(s) with it.

It could help if you insert TRACE ALL and some extra SAY displays for debugging purposes.

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Elardus Engelbrecht
2018-06-26 13:55:35 UTC
Reply
Permalink
Raw Message
Post by Sean Gleann
I sense your frustration, sir.
​Oh, I didn't mean to come across as frustrated. I was just wanting to throw a "spit ball" into the discussion {grin}. I was going with the PERL motto: TMTOWTDI (Tim Toady) -- There is More Than One Way To Do It. Since all the other, very good, suggestions were using "legacy" methods, I thought a "spit ball" would be fun.​
A 'spit ball' is always great fun. In this way you learn how to do a thing in many good/bad/ugly ways. Just like you say 'many ways to skin a cat'. (Meowwwww... )
---- going back into my hole now ----
Don't you have a rock to hide under? ;-D


To Sean, I am still RTFM about that nasty RC(-3). I think it was also mentioned on IBM-MAIN many years ago....

Groete / Greetings
Elardus Engelbrecht

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-06-26 17:20:42 UTC
Reply
Permalink
Raw Message
Post by Wayne Bickerdike
I use a PDSTOSAM REXX program. It writes all the members to a flat file
with a ./ ADD IEBUPDTE header at the start of each member.
What happens if one of your members has "./" in columns 1-2? It might
even be JCL to run an IEBUPDTE step.

It was a design defect of IEBUPDTE not to provide a way to manipulate
such members.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-06-26 17:56:26 UTC
Reply
Permalink
Raw Message
Post by Shmuel Metz , Seymour J.
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
What could be done in a script that couldn't be done by typing individual
commands at the command line?

I value the "UNI" in "UNIX". I take it to mean "UNIform". I can use the
same language for interactive commands, scripts, and batch. I slightly
forgive JCL for having antedated any perceived need for live interaction.
Post by Shmuel Metz , Seymour J.
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
They're equivalent. Rexx can invoke UNIX commands via ADDRESS SYSCALL;
shell can Rexx scripts which ADDRESS TSO.

Mr. Natural says, "Use the right tool for the job."

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-26 19:11:13 UTC
Reply
Permalink
Raw Message
Post by Paul Gilmartin
What could be done in a script that couldn't be done by typing individual
commands at the command line?
The fact remains that you chose to invoke aa script rather than typing individual lines at the command line. BTW, I can type individual REXX statements if that's what I want to do, but it rarely is.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Paul Gilmartin <0000000433f07816-dmarc-***@listserv.ua.edu>
Sent: Tuesday, June 26, 2018 1:56 PM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?
Post by Paul Gilmartin
Post by John McKown
All this can be done from a UNIX shell,
No, a shell script invoked from the shell.
What could be done in a script that couldn't be done by typing individual
commands at the command line?

I value the "UNI" in "UNIX". I take it to mean "UNIform". I can use the
same language for interactive commands, scripts, and batch. I slightly
forgive JCL for having antedated any perceived need for live interaction.
Post by Paul Gilmartin
Post by John McKown
thus _proving_ that the UNIX shell is more powerful than the standard
TSO environment.
No, REXX is part of the standard TSO environment.
They're equivalent. Rexx can invoke UNIX commands via ADDRESS SYSCALL;
shell can Rexx scripts which ADDRESS TSO.

Mr. Natural says, "Use the right tool for the job."

-- gil

----------------------------------------------------------------------
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-06-26 18:04:27 UTC
Reply
Permalink
Raw Message
Post by Sean Gleann
Wayne - yes, I'd be very interested, please.
I've been plugging away at Lionel Dyck's suggestion of a REXX calling a
REXX, so far with a notable lack of success (I keep getting a RC(-3), so
I*think* I'm doing something wrong with the environment)
RC(-3) can indicate either unknown addressing environment or command
unknown in the active environment.

What does SAY ADDRESS() tell you?

How are you invoking Rexx?

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Dyck, Lionel B. , RavenTek
2018-06-26 18:14:04 UTC
Reply
Permalink
Raw Message
I missed the discussion on issues with my DOALL exec - there may have been issues with the posting of it

You can download it from http://www.lbdsoftware.com/doall.txt

Hope that helps - let me know - I use this a lot when the PDS command (CBT File 182) can't do something.

--------------------------------------------------------------------------
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 Paul Gilmartin
Sent: Tuesday, June 26, 2018 1:04 PM
To: IBM-***@LISTSERV.UA.EDU
Subject: [EXTERNAL] Re: ICEGENER to the rescue again?
Post by Sean Gleann
Wayne - yes, I'd be very interested, please.
I've been plugging away at Lionel Dyck's suggestion of a REXX calling a
REXX, so far with a notable lack of success (I keep getting a RC(-3), so
I*think* I'm doing something wrong with the environment)
RC(-3) can indicate either unknown addressing environment or command
unknown in the active environment.

What does SAY ADDRESS() tell you?

How are you invoking Rexx?

-- gil

----------------------------------------------------------------------
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-06-26 20:37:46 UTC
Reply
Permalink
Raw Message
Post by Seymour J Metz
Post by Paul Gilmartin
What could be done in a script that couldn't be done by typing individual
commands at the command line?
The fact remains that you chose to invoke aa script rather than typing individual lines at the command line. BTW, I can type individual REXX statements if that's what I want to do, but it rarely is.
What command (example) do you use to invoke Rexx in this fashion. An EXEC must come from
a member of PDS(E) SYSEXEC or SYSPROC. Or you can write an assembler program to invoke
your Rexx in a PS data set.

And there's a problem: if you make a typo in a function name (e.g. ADDERSS()), the interpreter
will devour input seeking the function definition.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-26 20:42:47 UTC
Reply
Permalink
Raw Message
A REXX script need not be in the SYSEXEC or SYSPROC concatenation. While I have certainly written assembler code in support of REXX code, this isn't a case where it is needed.

REXXTRY is pretty good at encapsulating errors.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Paul Gilmartin <0000000433f07816-dmarc-***@listserv.ua.edu>
Sent: Tuesday, June 26, 2018 4:37 PM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?
Post by Seymour J Metz
Post by Paul Gilmartin
What could be done in a script that couldn't be done by typing individual
commands at the command line?
The fact remains that you chose to invoke aa script rather than typing individual lines at the command line. BTW, I can type individual REXX statements if that's what I want to do, but it rarely is.
What command (example) do you use to invoke Rexx in this fashion. An EXEC must come from
a member of PDS(E) SYSEXEC or SYSPROC. Or you can write an assembler program to invoke
your Rexx in a PS data set.

And there's a problem: if you make a typo in a function name (e.g. ADDERSS()), the interpreter
will devour input seeking the function definition.

-- gil

----------------------------------------------------------------------
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-06-26 20:45:22 UTC
Reply
Permalink
Raw Message
Post by Seymour J Metz
Well, youngster, Eunix <g> certainly has egregious faults, but it also has its good points. Alas, IBM took a minimalist approach to porting it to MVS.
I understand CMS integrates OpenExtensions and CMS commands more closely on
the command line. I haven't had an opportunity to try it. I suspect il a les défauts
de ses qualités.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Seymour J Metz
2018-06-26 20:49:04 UTC
Reply
Permalink
Raw Message
Poor integration with native MVS is only one of the problems. There are a lot of facilities that most Eunix sites have that are not required for certification, and IBM has not done well by them.


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

________________________________________
From: IBM Mainframe Discussion List <IBM-***@listserv.ua.edu> on behalf of Paul Gilmartin <0000000433f07816-dmarc-***@listserv.ua.edu>
Sent: Tuesday, June 26, 2018 4:45 PM
To: IBM-***@listserv.ua.edu
Subject: Re: ICEGENER to the rescue again?
Post by Seymour J Metz
Well, youngster, Eunix <g> certainly has egregious faults, but it also has its good points. Alas, IBM took a minimalist approach to porting it to MVS.
I understand CMS integrates OpenExtensions and CMS commands more closely on
the command line. I haven't had an opportunity to try it. I suspect il a les défauts
de ses qualités.

-- gil

----------------------------------------------------------------------
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
Sean Gleann
2018-06-28 11:59:22 UTC
Reply
Permalink
Raw Message
Apologies, but I have not been able to respond to this thread for a couple
of days - my attention was diverted on to something that was deemed to be
more important.

I've finally arrived at a solution for the problem that suits my purposes -
a sequence of (1) IEBPTPCH to serialise PDS members, (2) a REXX to modify
that serial file and then (3) IEBUPDTE takes the REXX output to build a new
PDS.

Thanks to all that responded to my query - all is under control, now

Sean
Post by Seymour J Metz
Poor integration with native MVS is only one of the problems. There are a
lot of facilities that most Eunix sites have that are not required for
certification, and IBM has not done well by them.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
Sent: Tuesday, June 26, 2018 4:45 PM
Subject: Re: ICEGENER to the rescue again?
Post by Seymour J Metz
Well, youngster, Eunix <g> certainly has egregious faults, but it also
has its good points. Alas, IBM took a minimalist approach to porting it to
MVS.
I understand CMS integrates OpenExtensions and CMS commands more closely on
the command line. I haven't had an opportunity to try it. I suspect il a les défauts
de ses qualités.
-- gil
----------------------------------------------------------------------
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
Wayne Bickerdike
2018-06-29 03:23:33 UTC
Reply
Permalink
Raw Message
Not sure if Sean received my off-list REXX code. Here it is. No need for
IEBPTPCH, just run against the PDS and it builds a sequential file with ./
headers.

/* */
/* A REXX routine to convert PDS to sequential datasets */
/* */
/* JCL */
/* //........ JOB ................... */
/* //STEP00 EXEC PGM=IEBUPDTE,PARM=NEW */
/* //SYSPRINT DD SYSOUT=* */
/* //SYSIN DD DISP=SHR,DSN=userid."SEQFILE".expds */
/* //SYSUT2 DD DISP=SHR,DSN=your.output.pds */
/* REXX */
/* -------------------- REXX ** ------------------- */
/* Syntax for expds: */
/* %pdstoseq hlq.pdsname off */
/* ------------------------------------------------ */
ARG libparm ver
IF ver = ON THEN
TRACE ALL
user = USERID()
SAY 'Enter DSN qualifier '
PULL seqfile
temp_grc = "00"
tot_mem = 0
CALL read_dir
CALL all_utl
DO I = 7 TO libmem.0
MEMBER = STRIP(libmem.I)
CALL copy_mem
END

CALL end_expds
/* ------------------------ */

all_utl:

"LISTDS '"user"."SEQFILE".EXPDS'"
IF RC = 0 THEN DO
" DEL '"user"."SEQFILE".EXPDS'"
END

" ALLOC FI(OUT) DA('"user"."SEQFILE".EXPDS') MOD CATALOG",
" RECFM (F B) DSORG(PS) SP(10 10) CYL ",
" LRECL(80) BLKSIZE(8000) UNIT(3390) "
IF RC > 0 THEN
DO
temp_rc = RC
temp_ftc = "ALLOC ERROR"
CALL rou_rc
END
RETURN

copy_mem:

tot_mem = tot_mem + 1
ROUT.0 = 1
ROUT.1 = "./ ADD LEVEL=00,SOURCE=0,NAME="MEMBER
"EXECIO * DISKW OUT (FINIS STEM ROUT."
IF RC > 0 THEN
DO
temp_rc = RC
temp_ftc = "EXECIO ERROR"
CALL rou_rc
END

" REPRO INDATASET('"libparm"("MEMBER")' ) OUTFILE(OUT) "
IF RC > 0 THEN
DO
temp_rc = RC
temp_ftc = "REPRO ERROR"
CALL rou_rc
END
RETURN

read_dir:
X = OUTTRAP("libmem.")
"LISTDS '"libparm"' M"
IF RC > 0 THEN
DO
temp_rc = RC
temp_ftc = "LISTDS ERROR"
CALL rou_rc
END
X = OUTTRAP("OFF")
IF libmem.0 < 8 THEN
DO
temp_ftc = "PDS IS EMPTY"
temp_rc = 4
CALL rou_rc
END
RETURN

rou_rc:

IF temp_rc > 0 THEN
temp_grc = temp_rc
SAY " > ERROR < "
SAY " > FUNCTION/REXX < " temp_ftc
SAY " > RETURN CODE < " temp_rc

temp_rc = 0
temp_ftc = ""

CALL end_expds
RETURN

end_expds:

" FREE DATASET('"user"."SEQFILE".EXPDS')"

IF temp_grc = 0 THEN DO
SAY "MEMBERS SUCCESSFULLY PROCESSED: "tot_mem
END
EXIT temp_grc
Post by Sean Gleann
Apologies, but I have not been able to respond to this thread for a couple
of days - my attention was diverted on to something that was deemed to be
more important.
I've finally arrived at a solution for the problem that suits my purposes -
a sequence of (1) IEBPTPCH to serialise PDS members, (2) a REXX to modify
that serial file and then (3) IEBUPDTE takes the REXX output to build a new
PDS.
Thanks to all that responded to my query - all is under control, now
Sean
Post by Seymour J Metz
Poor integration with native MVS is only one of the problems. There are a
lot of facilities that most Eunix sites have that are not required for
certification, and IBM has not done well by them.
--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
________________________________________
Sent: Tuesday, June 26, 2018 4:45 PM
Subject: Re: ICEGENER to the rescue again?
Post by Seymour J Metz
Well, youngster, Eunix <g> certainly has egregious faults, but it also
has its good points. Alas, IBM took a minimalist approach to porting it
to
Post by Seymour J Metz
MVS.
I understand CMS integrates OpenExtensions and CMS commands more closely
on
Post by Seymour J Metz
the command line. I haven't had an opportunity to try it. I suspect il
a
Post by Seymour J Metz
les défauts
de ses qualités.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Wayne V. Bickerdike

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-06-29 04:30:17 UTC
Reply
Permalink
Raw Message
Post by Wayne Bickerdike
Not sure if Sean received my off-list REXX code. Here it is. No need for
IEBPTPCH, just run against the PDS and it builds a sequential file with ./
headers.
...
ROUT.1 = "./ ADD LEVEL=00,SOURCE=0,NAME="MEMBER
"EXECIO * DISKW OUT (FINIS STEM ROUT."
...
" REPRO INDATASET('"libparm"("MEMBER")' ) OUTFILE(OUT) "
...
I'm curious.
o What among the IEBUPDTE or REPRO control statements
removes the sequence numbers. Does IEBUPDTE ADD do this by
default if sequence numbers are not specifically requested by an
option?
o What happens if any record in any input member contains "./" in
columns 1-2? Could this cause IEBUPDTE to misbehave? The OP
did not guarantee this could not happen.
Post by Wayne Bickerdike
...
I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.
-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Wayne Bickerdike
2018-06-29 05:38:04 UTC
Reply
Permalink
Raw Message
The sequence numbers are removed in a separate step.

ie CHANGE ALL P'=' ' ' 73 80

If you have ./ in cc1-2 do a CHANGE ALL on any that are not IEBUPDTE
directives. Perhaps change ./ to .#.

I use a combination of a program that updates member by member using an
EDIT macro, that would be the final step to reverse the .# chars back to ./.





On Fri, Jun 29, 2018 at 2:30 PM, Paul Gilmartin <
Post by Paul Gilmartin
Post by Wayne Bickerdike
Not sure if Sean received my off-list REXX code. Here it is. No need for
IEBPTPCH, just run against the PDS and it builds a sequential file with ./
headers.
...
ROUT.1 = "./ ADD LEVEL=00,SOURCE=0,NAME="MEMBER
"EXECIO * DISKW OUT (FINIS STEM ROUT."
...
" REPRO INDATASET('"libparm"("MEMBER")' ) OUTFILE(OUT) "
...
I'm curious.
o What among the IEBUPDTE or REPRO control statements
removes the sequence numbers. Does IEBUPDTE ADD do this by
default if sequence numbers are not specifically requested by an
option?
o What happens if any record in any input member contains "./" in
columns 1-2? Could this cause IEBUPDTE to misbehave? The OP
did not guarantee this could not happen.
Post by Wayne Bickerdike
...
I want to replace anything in cols 73-80 with 8 spaces, no matter what is
there.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Wayne V. Bickerdike

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Sean Gleann
2018-06-29 10:13:39 UTC
Reply
Permalink
Raw Message
Wayne: No,. I hadn't seen your response until I went looking for it after
you mentioned it.
For some reason, Outlook appears to be delivering my mail extremely slowly,
AND only letting some mail through.
When I go to gmail, I can see all the messages.

Thanks for your code - I shall give it a try

Regards
Sean
Post by Wayne Bickerdike
The sequence numbers are removed in a separate step.
ie CHANGE ALL P'=' ' ' 73 80
If you have ./ in cc1-2 do a CHANGE ALL on any that are not IEBUPDTE
directives. Perhaps change ./ to .#.
I use a combination of a program that updates member by member using an
EDIT macro, that would be the final step to reverse the .# chars back to ./.
On Fri, Jun 29, 2018 at 2:30 PM, Paul Gilmartin <
Post by Paul Gilmartin
Post by Wayne Bickerdike
Not sure if Sean received my off-list REXX code. Here it is. No need for
IEBPTPCH, just run against the PDS and it builds a sequential file with
./
Post by Paul Gilmartin
Post by Wayne Bickerdike
headers.
...
ROUT.1 = "./ ADD LEVEL=00,SOURCE=0,NAME="MEMBER
"EXECIO * DISKW OUT (FINIS STEM ROUT."
...
" REPRO INDATASET('"libparm"("MEMBER")' ) OUTFILE(OUT) "
...
I'm curious.
o What among the IEBUPDTE or REPRO control statements
removes the sequence numbers. Does IEBUPDTE ADD do this by
default if sequence numbers are not specifically requested by an
option?
o What happens if any record in any input member contains "./" in
columns 1-2? Could this cause IEBUPDTE to misbehave? The OP
did not guarantee this could not happen.
Post by Wayne Bickerdike
...
I want to replace anything in cols 73-80 with 8 spaces, no matter what
is
Post by Paul Gilmartin
Post by Wayne Bickerdike
there.
-- gil
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
Wayne V. Bickerdike
----------------------------------------------------------------------
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
Loading...