IBM Mainframe Forum Index
Log In
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register

IEBPTPCH limitations

IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message

New User

Joined: 24 May 2013
Posts: 5
Location: us

PostPosted: Fri May 31, 2013 6:35 pm
Reply with quote

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:

// SPACE=(CYL,(20,1,),RLSE),
Back to top
View user's profile Send private message
Robert Sample

Global Moderator

Joined: 06 Jun 2008
Posts: 8661
Location: Dubuque, Iowa, USA

PostPosted: Fri May 31, 2013 7:04 pm
Reply with quote

IEBPTPCH won't meet your needs unless you can live with multiple output lines per record. From the Utilities manual section on IEBPTPCH:
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
View user's profile Send private message

Global Moderator

Joined: 07 Sep 2006
Posts: 1592
Location: Andromeda Galaxy

PostPosted: Fri May 31, 2013 7:12 pm
Reply with quote

You could make use of REXX to read the PDS and write to Output file

Lot of samples in forum
Back to top
View user's profile Send private message
dick scherrer

Moderator Emeritus

Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Fri May 31, 2013 7:16 pm
Reply with quote

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
View user's profile Send private message

New User

Joined: 24 May 2013
Posts: 5
Location: us

PostPosted: Fri May 31, 2013 7:28 pm
Reply with quote

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
View user's profile Send private message
Gary McDowell

Active User

Joined: 15 Oct 2012
Posts: 139
Location: USA

PostPosted: Sat Jun 01, 2013 1:10 am
Reply with quote

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
View user's profile Send private message

Senior Member

Joined: 28 Jul 2006
Posts: 1702
Location: Australia

PostPosted: Sat Jun 01, 2013 2:13 pm
Reply with quote


here is something I've been using, not elegant but it's doing the job I want

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

Back to top
View user's profile Send private message
Pete Wilson

Active Member

Joined: 31 Dec 2009
Posts: 541
Location: London

PostPosted: Tue Jun 04, 2013 7:08 pm
Reply with quote

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.



Back to top
View user's profile Send private message

New User

Joined: 24 May 2013
Posts: 5
Location: us

PostPosted: Fri Jun 07, 2013 6:46 pm
Reply with quote

I will give gcicchet's solution a whirl. Unfortunately, we don't have FILEAID. Thanks, guys.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM


Similar Topics
Topic Forum Replies
No new posts ISRLEMX Limitations PL/I & Assembler 11
No new posts IEBPTPCH PDS to PS. JCL & VSAM 4
No new posts IEBPTPCH utility to copy members from... All Other Mainframe Topics 3
No new posts Run IEBPTPCH with several PDS in SYSUT1 JCL & VSAM 13
Search our Forums:

Back to Top