thanks
vitz
Shmuel (Seymour J.) Metz
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
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>
:>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
Shmuel (Seymour J.) Metz
Shmuel (Seymour J.) Metz
> -----Original Message-----
> From: Weizman_Arbel [SMTP:war...@BEZEQINT.NET]
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>
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>
cc: (bcc: Sam Knutson/LSC)
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.
>:>----- Original Message -----
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]
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."
----------------------------------------------------------------------
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
Shmuel (Seymour J.) Metz
> -----Original Message-----
> From: Jonathan Richardson [SMTP:jr...@CLEMSON.EDU]
vitz
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)
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 ?