|
View previous topic :: View next topic
|
| Author |
Message |
Todd.Proganal
New User
Joined: 24 May 2013 Posts: 5 Location: us
|
|
|
|
I am trying to create a sequential file from a PDS with 1600+ members and am having trouble with IEBPTPCH. I can create the dataset with the PRINT option but the length of my PDS members is 170 which evidentially is too long for the PRINT option. I've tried IEBGENER and IEBCOPY to see if they might offer a solution but they only seem capable of copying the entire PDS to another PDS (not sub-parameter options). I can create a list if I specify individual member in the SYSUT1 but that really isn't a viable option as the input PDS list might differ week-to-week. The IEBPTPCH reference doesn’t shed any light on the problem. Any IBM utilities (or options) I am missing that might help?
Here is my code:
//STEP05 EXEC PGM=IEBPTPCH
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=MY.INPUT.PDS,DISP=SHR <PROD FILE>
//SYSUT2 DD DSN=MY.OUTPUT.SEQUNTL.FILE,
// UNIT=SYSDA,
// DISP=(NEW,CATLG,CATLG),
// SPACE=(CYL,(20,1,),RLSE),
// DCB=(DSORG=PS,RECFM=FB,LRECL=170,BLKSIZE=27880)
//
//SYSIN DD *
PUNCH TYPORG=PO
/* |
|
| Back to top |
|
 |
Robert Sample
Global Moderator

Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
IEBPTPCH won't meet your needs unless you can live with multiple output lines per record. From the Utilities manual section on IEBPTPCH:
| Quote: |
| Each printed line consists of groups of eight characters separated by two blanks. Up to 96 data characters can be included on a printed line. Each punched card contains up to 80 contiguous bytes of information. |
Your best bet probably is to write a program to read the PDS directory and dynamically allocate the input file for each member. |
|
| Back to top |
|
 |
Pandora-Box
Global Moderator
.jpg)
Joined: 07 Sep 2006 Posts: 1592 Location: Andromeda Galaxy
|
|
|
|
You could make use of REXX to read the PDS and write to Output file
Lot of samples in forum |
|
| Back to top |
|
 |
dick scherrer
Moderator Emeritus

Joined: 23 Nov 2006 Posts: 19243 Location: Inside the Matrix
|
|
|
|
Hello and welcome to the forum,
I suspect you could do what you want by sriting a bit of code to generate a member list and then use this as input to a copy process.
There are several examples of generating a member list here in the forum. Try one and let us know if there are any questions or problems.
Some people spoon-feed answers. Several of us "old timers" encourage learning rather than just giving a solution.
Good luck. |
|
| Back to top |
|
 |
Todd.Proganal
New User
Joined: 24 May 2013 Posts: 5 Location: us
|
|
|
|
| I am an old-timer myself...30 years in the mainframe environ, so I can appreciate the use of reference material. Believe me...I've poured over the manuals and I'm to the point of selling my soul over this one. I was trying to avoid writing a program (REXX or otherwise) and simply plug in a "beautiful" IBM proc to make my life easier. Oh, well. Thanks for the quick response folks. Back to the coding drawing board. |
|
| Back to top |
|
 |
Gary McDowell
Active User
Joined: 15 Oct 2012 Posts: 139 Location: USA
|
|
|
|
You could…
Run IEHLIST on your PDS dataset which will list all the members.
Build an Easytrieve/SORT/something to create copy JCL (ie IDCAM, IEBGENER) with the members above.
Create the output of the Easytrieve with MOD so that you can have the copy JCL with members back-to-back.
Good luck. |
|
| Back to top |
|
 |
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 1702 Location: Australia
|
|
|
|
Hi,
here is something I've been using, not elegant but it's doing the job I want
| Code: |
//SEARCH EXEC PGM=ISRSUPC,PARM=(SRCHCMP,'ANYC',IDPFX)
//NEWDD DD DSN=PDS-NAME,
// DISP=SHR
//OUTDD DD DSN=&&ALLLINES,
// DISP=(,PASS,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,(500,100),RLSE)
//SYSIN DD *
SRCHFOR X'00',1
SRCHFOR X'01',1
SRCHFOR X'02',1
SRCHFOR X'03',1
SRCHFOR X'04',1
SRCHFOR X'05',1
SRCHFOR X'06',1
SRCHFOR X'07',1
SRCHFOR X'08',1
SRCHFOR X'09',1
SRCHFOR X'0A',1
SRCHFOR X'0B',1
SRCHFOR X'0C',1
SRCHFOR X'0D',1
SRCHFOR X'0E',1
SRCHFOR X'0F',1
SRCHFOR X'10',1
SRCHFOR X'11',1
SRCHFOR X'12',1
SRCHFOR X'13',1
SRCHFOR X'14',1
SRCHFOR X'15',1
SRCHFOR X'16',1
SRCHFOR X'17',1
SRCHFOR X'18',1
SRCHFOR X'19',1
SRCHFOR X'1A',1
SRCHFOR X'1B',1
SRCHFOR X'1C',1
SRCHFOR X'1D',1
SRCHFOR X'1E',1
SRCHFOR X'1F',1
SRCHFOR X'20',1
SRCHFOR X'21',1
SRCHFOR X'22',1
SRCHFOR X'23',1
SRCHFOR X'24',1
SRCHFOR X'25',1
SRCHFOR X'26',1
SRCHFOR X'27',1
SRCHFOR X'28',1
SRCHFOR X'29',1
SRCHFOR X'2A',1
SRCHFOR X'2B',1
SRCHFOR X'2C',1
SRCHFOR X'2D',1
SRCHFOR X'2E',1
SRCHFOR X'2F',1
SRCHFOR X'30',1
SRCHFOR X'31',1
SRCHFOR X'32',1
SRCHFOR X'33',1
SRCHFOR X'34',1
SRCHFOR X'35',1
SRCHFOR X'36',1
SRCHFOR X'37',1
SRCHFOR X'38',1
SRCHFOR X'39',1
SRCHFOR X'3A',1
SRCHFOR X'3B',1
SRCHFOR X'3C',1
SRCHFOR X'3D',1
SRCHFOR X'3E',1
SRCHFOR X'3F',1
SRCHFOR X'40',1
SRCHFOR X'41',1
SRCHFOR X'42',1
SRCHFOR X'43',1
SRCHFOR X'44',1
SRCHFOR X'45',1
SRCHFOR X'46',1
SRCHFOR X'47',1
SRCHFOR X'48',1
SRCHFOR X'49',1
SRCHFOR X'4A',1
SRCHFOR X'4B',1
SRCHFOR X'4C',1
SRCHFOR X'4D',1
SRCHFOR X'4E',1
SRCHFOR X'4F',1
SRCHFOR X'50',1
SRCHFOR X'51',1
SRCHFOR X'52',1
SRCHFOR X'53',1
SRCHFOR X'54',1
SRCHFOR X'55',1
SRCHFOR X'56',1
SRCHFOR X'57',1
SRCHFOR X'58',1
SRCHFOR X'59',1
SRCHFOR X'5A',1
SRCHFOR X'5B',1
SRCHFOR X'5C',1
SRCHFOR X'5D',1
SRCHFOR X'5E',1
SRCHFOR X'5F',1
SRCHFOR X'60',1
SRCHFOR X'61',1
SRCHFOR X'62',1
SRCHFOR X'63',1
SRCHFOR X'64',1
SRCHFOR X'65',1
SRCHFOR X'66',1
SRCHFOR X'67',1
SRCHFOR X'68',1
SRCHFOR X'69',1
SRCHFOR X'6A',1
SRCHFOR X'6B',1
SRCHFOR X'6C',1
SRCHFOR X'6D',1
SRCHFOR X'6E',1
SRCHFOR X'6F',1
SRCHFOR X'70',1
SRCHFOR X'71',1
SRCHFOR X'72',1
SRCHFOR X'73',1
SRCHFOR X'74',1
SRCHFOR X'75',1
SRCHFOR X'76',1
SRCHFOR X'77',1
SRCHFOR X'78',1
SRCHFOR X'79',1
SRCHFOR X'7A',1
SRCHFOR X'7B',1
SRCHFOR X'7C',1
SRCHFOR X'7D',1
SRCHFOR X'7E',1
SRCHFOR X'7F',1
SRCHFOR X'80',1
SRCHFOR X'81',1
SRCHFOR X'82',1
SRCHFOR X'83',1
SRCHFOR X'84',1
SRCHFOR X'85',1
SRCHFOR X'86',1
SRCHFOR X'87',1
SRCHFOR X'88',1
SRCHFOR X'89',1
SRCHFOR X'8A',1
SRCHFOR X'8B',1
SRCHFOR X'8C',1
SRCHFOR X'8D',1
SRCHFOR X'8E',1
SRCHFOR X'8F',1
SRCHFOR X'90',1
SRCHFOR X'91',1
SRCHFOR X'92',1
SRCHFOR X'93',1
SRCHFOR X'94',1
SRCHFOR X'95',1
SRCHFOR X'96',1
SRCHFOR X'97',1
SRCHFOR X'98',1
SRCHFOR X'99',1
SRCHFOR X'9A',1
SRCHFOR X'9B',1
SRCHFOR X'9C',1
SRCHFOR X'9D',1
SRCHFOR X'9E',1
SRCHFOR X'9F',1
SRCHFOR X'A0',1
SRCHFOR X'A1',1
SRCHFOR X'A2',1
SRCHFOR X'A3',1
SRCHFOR X'A4',1
SRCHFOR X'A5',1
SRCHFOR X'A6',1
SRCHFOR X'A7',1
SRCHFOR X'A8',1
SRCHFOR X'A9',1
SRCHFOR X'AA',1
SRCHFOR X'AB',1
SRCHFOR X'AC',1
SRCHFOR X'AD',1
SRCHFOR X'AE',1
SRCHFOR X'AF',1
SRCHFOR X'B0',1
SRCHFOR X'B1',1
SRCHFOR X'B2',1
SRCHFOR X'B3',1
SRCHFOR X'B4',1
SRCHFOR X'B5',1
SRCHFOR X'B6',1
SRCHFOR X'B7',1
SRCHFOR X'B8',1
SRCHFOR X'B9',1
SRCHFOR X'BA',1
SRCHFOR X'BB',1
SRCHFOR X'BC',1
SRCHFOR X'BD',1
SRCHFOR X'BE',1
SRCHFOR X'BF',1
SRCHFOR X'C0',1
SRCHFOR X'C1',1
SRCHFOR X'C2',1
SRCHFOR X'C3',1
SRCHFOR X'C4',1
SRCHFOR X'C5',1
SRCHFOR X'C6',1
SRCHFOR X'C7',1
SRCHFOR X'C8',1
SRCHFOR X'C9',1
SRCHFOR X'CA',1
SRCHFOR X'CB',1
SRCHFOR X'CC',1
SRCHFOR X'CD',1
SRCHFOR X'CE',1
SRCHFOR X'CF',1
SRCHFOR X'D0',1
SRCHFOR X'D1',1
SRCHFOR X'D2',1
SRCHFOR X'D3',1
SRCHFOR X'D4',1
SRCHFOR X'D5',1
SRCHFOR X'D6',1
SRCHFOR X'D7',1
SRCHFOR X'D8',1
SRCHFOR X'D9',1
SRCHFOR X'DA',1
SRCHFOR X'DB',1
SRCHFOR X'DC',1
SRCHFOR X'DD',1
SRCHFOR X'DE',1
SRCHFOR X'DF',1
SRCHFOR X'E0',1
SRCHFOR X'E1',1
SRCHFOR X'E2',1
SRCHFOR X'E3',1
SRCHFOR X'E4',1
SRCHFOR X'E5',1
SRCHFOR X'E6',1
SRCHFOR X'E7',1
SRCHFOR X'E8',1
SRCHFOR X'E9',1
SRCHFOR X'EA',1
SRCHFOR X'EB',1
SRCHFOR X'EC',1
SRCHFOR X'ED',1
SRCHFOR X'EE',1
SRCHFOR X'EF',1
SRCHFOR X'F0',1
SRCHFOR X'F1',1
SRCHFOR X'F2',1
SRCHFOR X'F3',1
SRCHFOR X'F4',1
SRCHFOR X'F5',1
SRCHFOR X'F6',1
SRCHFOR X'F7',1
SRCHFOR X'F8',1
SRCHFOR X'F9',1
SRCHFOR X'FA',1
SRCHFOR X'FB',1
SRCHFOR X'FC',1
SRCHFOR X'FD',1
SRCHFOR X'FE',1
SRCHFOR X'FF',1
/*
//*********************************************************************
//*
//SELECT EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN DD DSN=&&ALLLINES,
// DISP=SHR
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(17,1,FS,EQ,NUM,&,
18,2,CH,EQ,C' ')
OUTFIL BUILD=(2,8,20,80)
/*
//*********************************************************************
|
Hopefully I've cut and pasted all 256 SRCHFOR parameters.
Just modify the OUTFIL parameter if member name is not required.
I have the SRCHFOR parameters as a PDS member.
Gerry |
|
| Back to top |
|
 |
Pete Wilson
Active Member
Joined: 31 Dec 2009 Posts: 600 Location: London
|
|
|
|
If you have FileAid it has a nice feature to print all members of a PDS into a flatfile with member name separators.
Just go to option 3.6 and use the B (browse glbally) option. You can choose to do it in Batch or Foreground as well.
Chcek that the selection in the DD01SC has the following otherwise it won't necessarily print all members.
DEFINE BLOCKS=SELECTION,
INITIAL_SKIP=0,
THEN_SELECT=0,
THEN_SKIP=0,
MAXIMUM_TO_SEARCH=ALL,
MAXIMUM_TO_SELECT=ALL |
|
| Back to top |
|
 |
Todd.Proganal
New User
Joined: 24 May 2013 Posts: 5 Location: us
|
|
|
|
| I will give gcicchet's solution a whirl. Unfortunately, we don't have FILEAID. Thanks, guys. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|