View previous topic :: View next topic
|
Author |
Message |
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
Bill Woodger
Moderator Emeritus
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
|
|
|
|
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 |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
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 |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
That seems like the right process. What's the problem? |
|
Back to top |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
that most probably the TS wants to split the isrsupc result dataset to make the overall analysis <simpler> |
|
Back to top |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
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 |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1788 Location: Bloomington, IL
|
|
|
|
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 |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
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 |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
enrico-sorichetti
Superior Member
Joined: 14 Mar 2007 Posts: 10873 Location: italy
|
|
|
|
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
if You google for superc rexx You will find some tools to help You in <smart> browsing the superc output |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
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 |
|
|
Akatsukami
Global Moderator
Joined: 03 Oct 2009 Posts: 1788 Location: Bloomington, IL
|
|
|
|
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 |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
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 |
|
|
Nanda kumaar
New User
Joined: 09 Jul 2011 Posts: 8 Location: India
|
|
|
|
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 |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2455 Location: Hampshire, UK
|
|
|
|
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 |
|
|
|