Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

how to copy all pds members to flat file ?

491 views
Skip to first unread message

Weizman_Arbel

unread,
May 14, 2001, 6:00:43 PM5/14/01
to
i am looking for to do it without use
ispf command ("lmmcopy").
i try iebgener,repro,sort etc without success.


thanks
vitz

Jonathan Richardson

unread,
May 14, 2001, 6:09:13 PM5/14/01
to
IEHPROGM

Metz, Seymour

unread,
May 14, 2001, 6:13:35 PM5/14/01
to
IEBCOPY. TRANSMIT. There are also some utilities on the CBT.


Shmuel (Seymour J.) Metz

Weizman_Arbel

unread,
May 14, 2001, 6:49:37 PM5/14/01
to
iebcopy,xmit can't do it !

Lindy Mayfield

unread,
May 14, 2001, 6:23:57 PM5/14/01
to
Hello.

Probably the best way is to create an xmit file. Simply create an 80-byte
flat file and issue the xmit command like this:
XMIT njenode.userid DA('your.pds') OUTDSN('your.pds.xmit')

To get it back, simply issue the receive command:
RECEIVE INDSN('your.pds.xmit')

When it say enter restore parameters enter:
DA('new.name.pds')

An alternative would be to use ISPF LM services to open the pds and read
sequentially each line and create IEBUPDTE cards. This would be more
readable, but no better imho. You would then run IEBUPDTE with the cards
as input to restore the pds.

Cheers,
Lindy

sas… The Power to Know
e-Intelligence

Lindy Mayfield
OS/390 Tech Support Engineer
Customer Services

-----Original Message-----
From: Weizman_Arbel [mailto:war...@BEZEQINT.NET]
Sent: Tuesday, May 15, 2001 09:50
To: ISP...@listserv.nd.edu
Subject: how to copy all pds members to flat file ?

i am looking for to do it without use
ispf command ("lmmcopy").
i try iebgener,repro,sort etc without success.


thanks
vitz

Metz, Seymour

unread,
May 14, 2001, 6:26:28 PM5/14/01
to
IEBCOPY, IEBPTPCH, IEHMOVE, yes; IEHPROGM, no.


Shmuel (Seymour J.) Metz

> -----Original Message-----
> From: Jonathan Richardson [SMTP:jr...@CLEMSON.EDU]
> Sent: Monday, May 14, 2001 6:00 PM
> To: ISP...@listserv.nd.edu
> Subject: Re: how to copy all pds members to flat file ?
>
> IEHPROGM
>
> ----- Original Message -----
> From: "Weizman_Arbel" <war...@BEZEQINT.NET>
> To: <ISP...@LISTSERV.ND.EDU>

Binyamin Dissen

unread,
May 14, 2001, 6:27:15 PM5/14/01
to
On Mon, 14 May 2001 17:59:50 -0400 Jonathan Richardson <jr...@CLEMSON.EDU>
wrote:

:>IEHPROGM

Nope.

IEBGENER or IEBPTPCH will do it, though not in a pretty format. Perhaps even
IEBUPDTE.

I am sure that there are some CBT programs that will work better.

:>----- Original Message -----

--
Binyamin Dissen <bdi...@dissensoftware.com>
Binyamin Dissen <bdi...@netvision.net.il>
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel

Weizman_Arbel

unread,
May 14, 2001, 6:52:22 PM5/14/01
to
example ?

Weizman_Arbel

unread,
May 14, 2001, 6:52:18 PM5/14/01
to
no! because is is create unload file.
i want only all members in one flat file.

Metz, Seymour

unread,
May 14, 2001, 7:02:12 PM5/14/01
to
Either one of them will do it just fine. Use XMIT if you want RECFM=FB.


Shmuel (Seymour J.) Metz

Metz, Seymour

unread,
May 14, 2001, 7:07:50 PM5/14/01
to
Use OUTDSN on the XMIT. That gives you a flat file.


Shmuel (Seymour J.) Metz

> -----Original Message-----
> From: Weizman_Arbel [SMTP:war...@BEZEQINT.NET]

Weizman_Arbel

unread,
May 14, 2001, 7:16:20 PM5/14/01
to
i have just try it without success, because it is
create unload flat file.
i want exactly all the members in one flat file.

Jonathan Richardson

unread,
May 14, 2001, 7:21:15 PM5/14/01
to
Arbel

Sorry for the wrong info when I said IEHPROGM. Put it down to
senility!

I believe I usee IEHMOVE to the last time I unloaded a PDS to a
flat file. The flat file contained IEBUPDATE control statements
for each member. If my memory serves me correctly, either
IEHMOVE or IEBUPDATE can be used to load the flat file back to a
PDS.

I am not near a manual, so cannot give you the format of the
control statements.

Jon

----- Original Message -----
From: "Weizman_Arbel" <war...@BEZEQINT.NET>
To: <ISP...@LISTSERV.ND.EDU>

Sam Knutson

unread,
May 14, 2001, 8:17:50 PM5/14/01
to
Hi,

You have lots of choices. I think more utility programs have been written for
PDS manipulation than
for any other theme. Just a few that come to hand quickly
might help all available on the CBT Tape and http://www.cbttape.org
Most insert a line between members but if that is unwanted you can modify the
source of one
or easily filter it out with SORT or something else.

REVIEW (File 134) subcommand called
=OFFLOAD (which writes the members to a sequential file
previously allocated to the SYSUT2 ddname).

File 093: PDSLOAD, OFFLOAD, UPDTE, UNUPDTE: Sequentialize PDS

FILE 437 is from Jan Jaeger
PDS upload/download utilities -
MEMBERS: OPSYNBRI UPDCREAT UPDSTATS
Utilities to create IEBUPDTE format
sequential files from partitioned
datasets, and restore ISPF statistics
after rebuilding PDS using IEBUPDTE.

FILE 357
PDSPUNCH -- Make an IEBUPDTE ADD/REPL file of
concatenated PDS's

Have fun!

Best Regards,

Sam Knutson


Weizman_Arbel <war...@BEZEQINT.NET> on 05/15/2001 03:49:45 AM

Please respond to ISPF discussion list <ISP...@listserv.nd.edu>


To: ISP...@listserv.nd.edu

cc: (bcc: Sam Knutson/LSC)

Mike Shaw

unread,
May 14, 2001, 8:27:13 PM5/14/01
to
Since you want a true sequential concatenation of all members into one
sequential file:

1) If you've got SAS from SAS Institute, PROC SOURCE will produce a
sequential file in IEBUPDTE format; you can customize the records
inserted between each member in the flat file if you want to.

2) If you've got StarTool from Serena, you can use its COMBINE command
to achieve the same result as 1) above.

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd.

Michael Lay

unread,
May 14, 2001, 9:54:47 PM5/14/01
to
Anybody remember IEBEDIT? Is it still available? I seem to remember using
IEBEDIT to submit all of the members of a PDS to the internal
reader. Since the internal reader is just like a file, this should give
the desired result. Other than that, I go with the OFFLOAD utility from
the CBT tape.


>:>----- Original Message -----

Lindy Mayfield

unread,
May 15, 2001, 3:55:53 AM5/15/01
to
I use xmit all the time. On Pds's, load libs, dumps, everything. It's
advantages, IMHO, are that when you use RECEIVE it will restore DCB and
space parameters without you having to know them in advance. It is also
available on most every computer.

Anyway, it works for me.

-----Original Message-----
From: Weizman_Arbel [mailto:war...@BEZEQINT.NET]

Sent: Tuesday, May 15, 2001 10:40
To: ISP...@listserv.nd.edu
Subject: Re: how to copy all pds members to flat file ?


iebcopy,xmit can't do it !

Metz, Seymour wrote:


>
> IEBCOPY. TRANSMIT. There are also some utilities on the CBT.
>

> Shmuel (Seymour J.) Metz
>
> > -----Original Message-----
> > From: Weizman_Arbel [SMTP:war...@BEZEQINT.NET]

Rick Fochtman

unread,
May 15, 2001, 9:36:24 AM5/15/01
to
---------------<snip>--------------

Since you want a true sequential concatenation of all members into one
sequential file:

1) If you've got SAS from SAS Institute, PROC SOURCE will produce a
sequential file in IEBUPDTE format; you can customize the records inserted
between each member in the flat file if you want to.

2) If you've got StarTool from Serena, you can use its COMBINE command to
achieve the same result as 1) above.

---------------<unsnip>-------------
If you've got REVIEW from the CBT tape, you can use the OFFLOAD function
as well.

--
"The mere thought hadn't even begun to speculate about the merest
possibility of crossing my mind."

McKown, John

unread,
May 15, 2001, 10:01:55 AM5/15/01
to
If you have SAS, then use PROC SOURCE. Works wonderfully.

----------------------------------------------------------------------
John McKown
HealthAxis

All opinions are my own and are not the opinions of my employer.

"Things that upset a terrier may pass virtually unnoticed by a Great Dane."
-- Smiley Blanton

> -----Original Message-----
> From: Weizman_Arbel [SMTP:war...@BEZEQINT.NET]
> Sent: Tuesday, May 15, 2001 3:47 AM
> To: ISP...@listserv.nd.edu
> Subject: Re: how to copy all pds members to flat file ?
>

> no! because is is create unload file.
> i want only all members in one flat file.
>

> Lindy Mayfield wrote:
> >
> > Hello.
> >
> > Probably the best way is to create an xmit file. Simply create an
> 80-byte
> > flat file and issue the xmit command like this:
> > XMIT njenode.userid DA('your.pds') OUTDSN('your.pds.xmit')
> >
> > To get it back, simply issue the receive command:
> > RECEIVE INDSN('your.pds.xmit')
> >
> > When it say enter restore parameters enter:
> > DA('new.name.pds')
> >
> > An alternative would be to use ISPF LM services to open the pds and read
> > sequentially each line and create IEBUPDTE cards. This would be more
> > readable, but no better imho. You would then run IEBUPDTE with the
> cards
> > as input to restore the pds.
> >
> > Cheers,
> > Lindy
> >

> > sas... The Power to Know


> > e-Intelligence
> >
> > Lindy Mayfield
> > OS/390 Tech Support Engineer
> > Customer Services
> >

> > -----Original Message-----
> > From: Weizman_Arbel [mailto:war...@BEZEQINT.NET]

> > Sent: Tuesday, May 15, 2001 09:50
> > To: ISP...@listserv.nd.edu

> > Subject: how to copy all pds members to flat file ?
> >
> > i am looking for to do it without use
> > ispf command ("lmmcopy").
> > i try iebgener,repro,sort etc without success.
> >

> > thanks
> > vitz

Metz, Seymour

unread,
May 15, 2001, 10:48:51 AM5/15/01
to
IEHMOVE unload format cannot be read by any other IBM utility. There is a
utility on the CBT that generates IEBUPDTE or IEBUPDAT control statements.


Shmuel (Seymour J.) Metz

> -----Original Message-----
> From: Jonathan Richardson [SMTP:jr...@CLEMSON.EDU]

Weizman_Arbel

unread,
May 15, 2001, 6:29:55 PM5/15/01
to
FYI
printds - tso command do it -
"printds DSNAME(pds.lib) members NOTITLE TODSNAME(flat.file)"

vitz

Rob Zenuk

unread,
May 15, 2001, 6:56:26 PM5/15/01
to
Here is a simple REXX utility to do the trick. I originally wrote this back in OS/2 days and had the corresponding IEBUPDTE in OS/2 REXX to unload the members to a directory. I also had the DIR2SEQ to make the return trip. Since then I just use it when I need something suitable for cross platform FTP's or just to create a single dataset for convenient mass edits.

Hope this helps.

Rob

/*********************************************************************/
/* REXX */
/*********************************************************************/
/* Purpose: Unload PDS members to a readable sequential file */
/*-------------------------------------------------------------------*/
/* Syntax: PDS2SEQ match */
/*-------------------------------------------------------------------*/
/* Parms: match - membername pattern (simple, only trailing *) */
/* optional, will default to all members */
/* */
/* Notes: Input PDS is expected in DD INPDS */
/* Output Sequential file will be allocated to OUTSEQ */
/* Put IEBUPDTE cards between members */
/* Update variables BEFORE and AFTER if not IEBUPDTE cards */
/* */
/* If used in batch include DDNAMEs INPDS and OUTSEQ */
/* */
/* //PDS2SEQ EXEC PGM=IKJEFT01,PARM='PDS2SEQ' */
/* //SYSEXEC DD DSN=your.exec.pds,DISP=SHR */
/* //SYSTSPRT DD SYSOUT=* */
/* //INPDS DD DSN=INPUT.PDS,DISP=SHR */
/* //OUTSEQ DD DSN=OUTPUT.SEQ,DISP=(,CATLG),DSORG=PS, */
/* // LIKE=INPUT.PDS */
/* //SYSTSIN DD DUMMY */
/* */
/*********************************************************************/
/* Change Log */
/* */
/* Author Date Reason */
/* -------- --------- ----------------------------------------- */
/* R. Zenuk Dec 1993 Initial Creation */
/* */
/*********************************************************************/
/* Accept simple match pattern */
/*********************************************************************/
arg match
if match = '' then match = '*'
pattern = match
if right(match,1) = '*' then match = left(match,length(match)-1)
/*********************************************************************/
/* Put out a heading */
/*********************************************************************/
parse upper source execenv . execname . execdsn .
say execname 'started' date() time()
say
/*********************************************************************/
/* Is INPDS allocated? */
/*********************************************************************/
EXITRC = listdsi("INPDS" "FILE")
if EXITRC <> 0 then
do
say 'INPDS is missing RC='EXITRC sysmsglvl2
signal shutdown
end
dsn = sysdsname
say 'Unloading PDS' dsn
/*********************************************************************/
/* Is OUTSEQ allocated? */
/*********************************************************************/
EXITRC = listdsi("OUTSEQ" "FILE")
if EXITRC <> 0 then
do
/*********************************************************************/
/* Allocate OUTSEQ as sysdsname.SEQ */
/*********************************************************************/
"ALLOC F(OUTSEQ) DA('"sysdsname".SEQ') UNIT("sysunit")" sysunits,
"LRECL("syslrecl") BLKSIZE("sysblksize") DSORG(PS)",
"SPACE("sysprimary sysseconds")"
EXITRC = RC
if EXITRC <> 0 then
do
say 'OUTSEQ allocation error on' sysdsname'.SEQ RC='EXITRC
signal shutdown
end
end
say 'Loading sequential file' sysdsname
/*********************************************************************/
/* Open the output sequential file */
/*********************************************************************/
"EXECIO * DISKW OUTSEQ (OPEN"
EXITRC = RC
if EXITRC <> 0 then
do
say 'OPEN of OUTSEQ failed on' sysdsname'.SEQ RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Get the member list */
/*********************************************************************/
x = outtrap(mem.)
"LISTDS '"dsn"' MEMBERS"
EXITRC = RC
if EXITRC <> 0 then
do
say 'LISTDS error RC='EXITRC
signal shutdown
end
x = outtrap('off')
say
say mem.0-6 'members in' dsn
say
count = 0
/*********************************************************************/
/* Process the members */
/*********************************************************************/
do i=7 to mem.0
if abbrev(strip(mem.i),match) = 1 then
do
member = strip(mem.i)
count = count + 1
end
else
iterate
/*********************************************************************/
/* Before separator */
/*********************************************************************/
before = './ ADD NAME='member',LIST=ALL'
/*********************************************************************/
/* Allocate each member */
/*********************************************************************/
"ALLOC F("member") DA('"dsn"("member")') SHR"
EXITRC = RC
if EXITRC <> 0 then
do
say 'ALLOC error on member' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Read each member into a stem */
/*********************************************************************/
"EXECIO * DISKR" member "(STEM LINES. FINIS"
EXITRC = RC
if EXITRC <> 0 then
do
say 'EXECIO read error on member' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Put the "before" separator in the output file */
/*********************************************************************/
queue before
"EXECIO 1 DISKW OUTSEQ"
EXITRC = RC
if EXITRC <> 0 then
do
say 'EXECIO before separator write error on' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Write each member to the sequential file */
/*********************************************************************/
"EXECIO * DISKW OUTSEQ (STEM LINES."
EXITRC = RC
if EXITRC <> 0 then
do
say 'EXECIO write error on member' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* FREE the member */
/*********************************************************************/
"FREE F("member")"
EXITRC = RC
if EXITRC <> 0 then
do
say 'FREE error on member' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Drop the stem variable */
/*********************************************************************/
drop lines.
/*********************************************************************/
/* An audit trail */
/*********************************************************************/
say member 'was successfully unloaded' lines.0 'lines'
end
/*********************************************************************/
/* After separator */
/*********************************************************************/
after = './ ENDUP'
/*********************************************************************/
/* Put the "after" separator in the output file */
/*********************************************************************/
queue after
"EXECIO 1 DISKW OUTSEQ"
EXITRC = RC
if EXITRC <> 0 then
do
say 'EXECIO after separator write error on' member', RC='EXITRC
signal shutdown
end
/*********************************************************************/
/* Close OUTSEQ */
/*********************************************************************/
"EXECIO * DISKW OUTSEQ (FINIS"
EXITRC = RC
if EXITRC <> 0 then
do
say 'EXECIO close error on' sysdsname', RC='EXITRC
end
/*********************************************************************/
/* Shutdown */
/*********************************************************************/
shutdown: "FREE F(INPDS)"
"FREE F(OUTSEQ)"
say
say count 'members processed using pattern:' pattern
say
say execname 'ended' date() time()
exit(EXITRC)

Lindy Mayfield

unread,
May 16, 2001, 6:45:21 AM5/16/01
to
Hi Rob et al,

I had written (and have since lost) an almost identically functioning
version of what you have here. However, I an now confused, after reading
all the other posts on this subject, and perhaps due to the brevity of the
original post; I am now unsure of what the poster wanted: Did they want to
"unload" a pds to a file sutible for sending/receiving and then subsequently
reloading to a pds? Or did they simply wish to "print" or "copy" all
members to a file for maybe searching or something?

In the first case I believe either xmit or your version to be the best and
simplest. Yours better because it is more readable and editable. The xmit
because to restore the file (or pds in our case) requires almost no
knowledge of the dataset attributes by the receiver.

MHO anyway,
Lindy

-----Original Message-----
From: Rob Zenuk [mailto:Robz...@AOL.COM]
Sent: Wednesday, May 16, 2001 00:46
To: ISP...@listserv.nd.edu
Subject: Re: how to copy all pds members to flat file ?

Weizman_Arbel

unread,
May 16, 2001, 5:07:38 PM5/16/01
to
the purpose is just copy all the members to flat file
(not unload).
" printds " with members option do the trick.

Weizman_Arbel

unread,
May 16, 2001, 5:10:09 PM5/16/01
to
thanks, but

"printds" with members option do the trick.
0 new messages