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

Compare 2 PDS member & store to same name mem of new PDS


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

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Tue Jul 26, 2011 11:34 pm
Reply with quote

hi, Please help on this. As far as searched, when 2 PDS members are compared, the output results are stored into one PS file. But I want it to store into new PDS with same member whichever compared. Example is given below.

MY.COMPARE.PDS1
MEM1
MEM2
MEM3
MEM4

MY.COMPARE.PDS2
MEM1
MEM2
MEM3
MEM5

The mismatch results to be stored into new PDS and with same name of members whichever compared and there is a mismatch.

MY.COMPARE.PDS.NEW (assuming MEM3 don't have any mismatch)
MEM1
MEM2

Note: Compare input should be PDS1 & PDS2 names only. Not with specific member names.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Tue Jul 26, 2011 11:41 pm
Reply with quote

I think you'll have to explain some more.

What software are you using for your compare?

Are you comparing member names only, or contents of members as well?

I do not understand your output data. Why 1 & 2 but not 3?
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Tue Jul 26, 2011 11:58 pm
Reply with quote

Bill Woodger wrote:
I do not understand your output data. Why 1 & 2 but not 3?


I know, it's about as clear as mud.

I presume that, if the contents of two identically named members are compared to each other, and MEM1 is not the same, then the compare results get copied to that same member name in the new PDS. The same goes for MEM2. Apparently, the content of MEM3 is the same in both PDS's, so its compare results don't get copied. And since MEM5 doesn't exist in both PDS's, it doesn't get compared.
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Tue Jul 26, 2011 11:58 pm
Reply with quote

Bill Woodger wrote:
I think you'll have to explain some more.

What software are you using for your compare?

Are you comparing member names only, or contents of members as well?

I do not understand your output data. Why 1 & 2 but not 3?


a) I tried to do in batch mode of 3.13 program. ie., thru executing the program ISRSUPC.

b) Comparison is for member contents.

c) The 3.13 utility will put the results into output only if there is a mismatch in comparing members. In given example, I just considered MEM3 don't have mismatch. If there is a mismatch in contents, then corresponding results to be stored in the name mismatched member into new PDS.

Kindly let me know if need more detail to explain.

Also let me know thru any other utility, this expected result can be achieved.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Jul 27, 2011 12:02 am
Reply with quote

That seems like the right process. What's the problem?
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Wed Jul 27, 2011 12:08 am
Reply with quote

that most probably the TS wants to split the isrsupc result dataset to make the overall analysis <simpler>
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Wed Jul 27, 2011 12:13 am
Reply with quote

superk wrote:
That seems like the right process. What's the problem?


In NEWDD, I have given the one of the input PDS
(Ex: MY.COMPARE.PDS1).
In OLDDD, I have given the another input PDS
(Ex: MY.COMPARE.PDS2).

a) In OUTDD, if I give the new PDS name, it is now allowing. It is showing the JCL error that member name is missing. That is, it is expecting the output results to be stored in one PDS member which is like flat file.

b) If I give PS file in OUTDD, all comparison results are stored into one file. The flat file will have the contents as given below.

NEW: MY.COMPARE.PDS1(MEM1) OLD: MY.COMPARE.PDS2(MEM1)
-----
-----
MISMATCHED CONTENTS OF MEM1
-----
-----
NEW: MY.COMPARE.PDS1(MEM2) OLD: MY.COMPARE.PDS2(MEM2)
-----
-----
MISMATCHED CONTENTS OF MEM2
-----
-----

Where I need to store these mismatched results into corresponding new PDS like:

MY.COMPARE.PDS.NEW(MEM1) - should have the mismatched contents of MEM1
MY.COMPARE.PDS.NEW(MEM2) - should have the mismatched contents of MEM2
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Wed Jul 27, 2011 12:16 am
Reply with quote

I need the solution thru JCL or thru some sort utility. But this topic is moved to "SMS & VSAM" from "JCL". Is this right forum to discuss about this?
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Jul 27, 2011 12:31 am
Reply with quote

Yes, it is. This topic is dealing with datasets, in particular with the nuances of partitioned datasets, which almost always require specific programming functions to deal with them properly. If you just state that you need a batch-based solution here, that's fine.
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Wed Jul 27, 2011 12:32 am
Reply with quote

Nanda kumaar wrote:
Bill Woodger wrote:
I think you'll have to explain some more.

What software are you using for your compare?

Are you comparing member names only, or contents of members as well?

I do not understand your output data. Why 1 & 2 but not 3?


a) I tried to do in batch mode of 3.13 program. ie., thru executing the program ISRSUPC.

b) Comparison is for member contents.

c) The 3.13 utility will put the results into output only if there is a mismatch in comparing members. In given example, I just considered MEM3 don't have mismatch. If there is a mismatch in contents, then corresponding results to be stored in the name mismatched member into new PDS.

Instead of using SuperCE (ISPF option 3.12), use SuperC (ISPF option 3.12) and write a little bit of Rexx to eliminate non-duplicated member name and to fabricate the JCL.
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Jul 27, 2011 12:35 am
Reply with quote

What is the target RECFM and LRECL for the new PDS? I'm wondering if you can possibly use IEBUPDTE for what you want to do?
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Wed Jul 27, 2011 12:43 am
Reply with quote

superk wrote:
What is the target RECFM and LRECL for the new PDS? I'm wondering if you can possibly use IEBUPDTE for what you want to do?


Target RECFM should be PO (ie., PDS to store with members which should have the mismatched contents of that member). LRECL of input PDS & output PDS are same.
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Wed Jul 27, 2011 12:46 am
Reply with quote

Akatsukami wrote:

Instead of using SuperCE (ISPF option 3.12), use SuperC (ISPF option 3.12) and write a little bit of Rexx to eliminate non-duplicated member name and to fabricate the JCL.


I am not aware of REXX. so please help on using JCL utilities. I am sure thru some trick only we can achieve the expected output. But I am not able to find that solution.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10873
Location: italy

PostPosted: Wed Jul 27, 2011 12:50 am
Reply with quote

the layout of the isrsupc output is not so easy to parse,
and doing it trhu <sort> will require at least two passes over it

if I had to do it ( but only with a gun pointed at my head ) I would do it with rexx icon_biggrin.gif

if You google for superc rexx You will find some tools to help You in <smart> browsing the superc output
Back to top
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Jul 27, 2011 12:53 am
Reply with quote

Convert your SUPERC utility output:

Code:
NEW: MY.COMPARE.PDS1(MEM1) OLD: MY.COMPARE.PDS2(MEM1)
-----
-----
MISMATCHED CONTENTS OF MEM1
-----
-----
NEW: MY.COMPARE.PDS1(MEM2) OLD: MY.COMPARE.PDS2(MEM2)
-----
-----
MISMATCHED CONTENTS OF MEM2
-----
-----

into a proper input datastream for IEBUPDTE:

Code:
./  ADD  MEMBER=MEM1
NEW: MY.COMPARE.PDS1(MEM1) OLD: MY.COMPARE.PDS2(MEM1)
-----
-----
MISMATCHED CONTENTS OF MEM1
-----
-----
./  ADD  MEMBER=MEM2
NEW: MY.COMPARE.PDS1(MEM2) OLD: MY.COMPARE.PDS2(MEM2)
-----
-----
MISMATCHED CONTENTS OF MEM2
-----
-----

and run IEBUPDTE to create the new PDS.
Back to top
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Wed Jul 27, 2011 1:01 am
Reply with quote

superc will only generate one list per step. that step can contain a complete pds to pds compare, or a member compare.

the only way you are going to get separate files (pds members in your case)
is to run separate SUPERC Steps for each member match.

as Akatsukami indicated,
generate some jcl, then massage it with rexx.

i am lazy and and after the panel displays the generated jcl
i invoke an edit macro to massage/create new jcl either there,
(normally in another dataset and then submit the new dataset,
and throw the panel generated jcl away.

actually, I don't even bother going to 3... for pds to pds matches.
i have a rexx script that I invoke that:
  • accesses some dummy (skelton) jcl
  • accesses a member list of both pds's (actually I build them on the fly with lmm routines)

and generte a step for each matching members,
and populate a separate list 'member' with a list of unmatched members.

gotta be careful of the 255 step limit - more than 255 matching members, means more than one job.
Back to top
View user's profile Send private message
Akatsukami

Global Moderator


Joined: 03 Oct 2009
Posts: 1788
Location: Bloomington, IL

PostPosted: Wed Jul 27, 2011 1:15 am
Reply with quote

Nanda kumaar wrote:
Akatsukami wrote:

Instead of using SuperCE (ISPF option 3.12), use SuperC (ISPF option 3.12) and write a little bit of Rexx to eliminate non-duplicated member name and to fabricate the JCL.


I am not aware of REXX. so please help on using JCL utilities. I am sure thru some trick only we can achieve the expected output. But I am not able to find that solution.

I think that the consensus of the senior members is pretty much "use Rexx". Even superk's solution, if I understand what he is driving at, requires that the output have IEBUPDTE commands added to it by some means. Just possibly this could be done with *sort; as I am not myself a *sort maven, however, I will leave to those more knowledgeable than I the question of if and how it can be done.
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: Wed Jul 27, 2011 1:28 am
Reply with quote

Hello,

Quote:
I am sure thru some trick only we can achieve the expected output. But I am not able to find that solution.
Suggest for you to get what you want there will be some actual "work" involved - not simply "some trick". . .

I realize work is a 4-letter word but sometimes, we just must. . .
Back to top
View user's profile Send private message
Nanda kumaar

New User


Joined: 09 Jul 2011
Posts: 8
Location: India

PostPosted: Wed Aug 17, 2011 12:06 am
Reply with quote

dick scherrer wrote:
Hello,

Suggest for you to get what you want there will be some actual "work" involved - not simply "some trick". . .

I realize work is a 4-letter word but sometimes, we just must. . .


Hi, with the word 'trick' i wanted to refer the some utility will yield my expected result. Dont mistake me. Yes, actual work also need to be done.
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


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

PostPosted: Wed Aug 17, 2011 1:31 am
Reply with quote

Quote:
a) In OUTDD, if I give the new PDS name, it is now allowing. It is showing the JCL error that member name is missing. That is, it is expecting the output results to be stored in one PDS member which is like flat file.

Suggest you supply the member name - you will have to have seperate executions for each compare. Otherwise Rexx is the way to go.
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 Compare 2 files and retrive records f... DFSORT/ICETOOL 3
No new posts Compare 2 files(F1 & F2) and writ... JCL & VSAM 8
No new posts Store the data for fixed length COBOL Programming 1
No new posts Compare only first records of the fil... SYNCSORT 7
No new posts Compare two files with a key and writ... SYNCSORT 3
Search our Forums:

Back to Top