Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Is possible to concatenate multiple PDS Members with PS File

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
Poha Eater

New User


Joined: 31 Aug 2016
Posts: 71
Location: India

PostPosted: Fri Aug 02, 2019 1:21 pm    Post subject: Is possible to concatenate multiple PDS Members with PS File
Reply with quote

Hi All,

I wanted to ask if it is possible to concatenate multiple PDS Members with multiple PS files and write the data in the PS file. I have PDS Members like MEMBER1, MEMBER2 & MEMBER3 and 2 PS files - TEST.DUMMY.FILE1 & TEST.DUMMY.FILE2 . Please note that the Record Length of Members and Files are same.

I want to concatenate the data of these members and files like below :
MEMBER1
MEMBER2
TEST.DUMMY.FILE1
TEST.DUMMY.FILE2
MEMBER3

The data inside the Members and Files are as follows :

MEMBER1 :
Code:
This is row One.
This is row Two.
This is row Three.


MEMBER2 :
Code:
This is row Four.
This is row Five.


File1 - TEST.DUMMY.FILE1 :
Code:
This is row Six.


File2 - TEST.DUMMY.FILE2 :
Code:
This is row Seven.


MEMBER3 :
Code:
This is row Eight.
This is row Nine.
This is row Ten.


and OUTPUT File should have data like :
Code:
This is row One.
This is row Two.
This is row Three.
This is row Four.
This is row Five.
This is row Six.
This is row Seven.
This is row Eight.
This is row Nine.
This is row Ten.


Please let me know if anyone knows a way to achieve this in JCL using SORT or any other utility.
Back to top
View user's profile Send private message

Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 2247
Location: Hampshire, UK

PostPosted: Fri Aug 02, 2019 2:21 pm    Post subject: Reply to: Is possible to concatenate multiple PDS Members with PS File
Reply with quote

Have you tried? If not why not? If you did - what happened?
Back to top
View user's profile Send private message
Poha Eater

New User


Joined: 31 Aug 2016
Posts: 71
Location: India

PostPosted: Fri Aug 02, 2019 4:00 pm    Post subject: Reply to: Is possible to concatenate multiple PDS Members with PS File
Reply with quote

Hi Nic,

Please delete this post from the forum as now i have realized the question was too basic. I achieve the expected result with just the
Code:
SORT FIELDS=COPY


I dont know why i was under such misconception.
Back to top
View user's profile Send private message
sergeyken

Active Member


Joined: 29 Apr 2008
Posts: 609
Location: Maryland

PostPosted: Fri Aug 02, 2019 4:40 pm    Post subject: Re: Reply to: Is possible to concatenate multiple PDS Members with PS File
Reply with quote

Poha Eater wrote:
I dont know why i was under such misconception.

The major misconception is: DD statements concatenation in JCL has nothing to do at all with the statement SORT FIELDS=COPY of a SORT utility... icon_pray.gif
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 760
Location: The Universe

PostPosted: Fri Aug 02, 2019 5:57 pm    Post subject:
Reply with quote

In my opinion, Nic is correct: Poha Eater really should have simply tried it using, perhaps using JCL like this -
Code:
//A       EXEC PGM=IEBUPDTE,PARM=NEW
//SYSPRINT DD  SYSOUT=*
//SYSUT2   DD  DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(1,1,1)),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),DSN=&&PDS
//SYSIN    DD  *
./ ADD NAME=M1
M1 R1
M1 R2
./ ADD NAME=M2
M2 R1
M2 R2
//B       EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  *
SEQ1 R1
SEQ1 R2
//SYSUT2   DD  DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(1,1)),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),DSN=&&SEQ1
//SYSIN    DD  DUMMY
//C       EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  *
SEQ2 R1
SEQ2 R2
//SYSUT2   DD  DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(1,1)),
//             DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),DSN=&&SEQ2
//SYSIN    DD  DUMMY
//D       EXEC PGM=IEBGENER
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DISP=OLD,DSN=&&PDS(M1)
//         DD  DISP=OLD,DSN=&&SEQ1
//         DD  DISP=OLD,DSN=&&SEQ2
//         DD  DISP=OLD,VOL=REF=*.SYSUT1,DSN=&&PDS(M2)
//SYSUT2   DD  SYSOUT=*
//SYSIN    DD  DUMMY

The SYSUT2 data set in step D contained this:
Code:
M1 R1 
M1 R2 
SEQ1 R1
SEQ1 R2
SEQ2 R1
SEQ2 R2
M2 R1 
M2 R2 
The reason for the VOL=REF=*.SYSUT1 in step D is when you "pass" a data set, like &&PDS, there is just one entry for the data set. The first reference used the entry; the VOL=REF, in essence, reused the entry. I will admit, though, it is awfully clumsy.

My original intention was to concatenate the data sets in the order &&SEQ1, &&PDS(M1), &&SEQ2, and &&PDS(M2), but that didn't work, and I couldn't use the VOL=REF trick.
Back to top
View user's profile Send private message
sergeyken

Active Member


Joined: 29 Apr 2008
Posts: 609
Location: Maryland

PostPosted: Fri Aug 02, 2019 6:27 pm    Post subject:
Reply with quote

steve-myers wrote:
My original intention was to concatenate the data sets in the order &&SEQ1, &&PDS(M1), &&SEQ2, and &&PDS(M2), but that didn't work, and I couldn't use the VOL=REF trick.

In my memory, temporary DSNAMEs are not accepted in multiple DDs of the same job step, even with VOL=REF= trick?

I cannot test it right now. Maybe, it depends on zOS version/settings? I was faced same problem years ago.

P.S.
The TS did not mention anything specifically about &&DSNAMEs; but with regular DSNAMEs this concatenation has no problem, except possible mismatch in DCB parameters:
1) All RECFM must match each other
2) For RECFM=FB - all LRECL must be equal, and the first BLKSIZE must be not less than any of subsequent BLKSIZEs
3) For RECFM=VB - both first LRECL and BLKSIZE must be not less than those of any of subsequent datasets.

Again: all said above has nothing to do with the "fix" found by TS - SORT FIELDS=COPY!
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 760
Location: The Universe

PostPosted: Fri Aug 02, 2019 7:34 pm    Post subject:
Reply with quote

sergeyken wrote:
...
The TS did not mention anything specifically about &&DSNAMEs; but with regular DSNAMEs this concatenation has no problem, except possible mismatch in DCB parameters: ...
2) For RECFM=FB - all LRECL must be equal, and the first BLKSIZE must be not less than any of subsequent BLKSIZEs
3) For RECFM=VB - both first LRECL and BLKSIZE must be not less than those of any of subsequent datasets.
...

I used temporary data sets in my example to encapsulate everything into a single job, despite the slightly weird JCL in the last step.

In Sergeyken's point 2, the BLKSIZE rule has not been correct for many, many years. Data management automatically uses the largest BLKSIZE in the concatenation.

In point 3, I do not know about LRECL. I see no reason why LRECL in data set 1 must be greater than LRECL in data set 2. There is the question about the LRECL stored in the DCB: short of a direct test I do not know whether the largest LRECL in the concatenation goes to the DCB or the first LRECL in the concatenation goes to the DCB.

In this thread we have mostly discussed sequential concatenation, not PDS concatenation. Slightly different rules apply with PDS concatenation than with sequential concatenation.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts File transfer issue with end of line ... VINAY PALLELA TSO/ISPF 4 Thu Nov 14, 2019 12:01 am
No new posts Count From Multiple Inputs Tyler Dunbar DFSORT/ICETOOL 5 Tue Nov 12, 2019 1:07 am
No new posts File compare, where file has header a... VINAY PALLELA SYNCSORT 8 Thu Nov 07, 2019 5:05 pm
No new posts OMIT first and last column of a pipe-... karthikb_itpro DFSORT/ICETOOL 1 Fri Nov 01, 2019 8:24 pm
No new posts How to place name of the file where t... danielgp89 SYNCSORT 18 Thu Oct 17, 2019 12:55 am

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us