Hello guys,
I am trying now to compare previous & current for the same file. Trying to catch the records being added, deleted and changed...
But the field I want to compare is a variable one. can be up to 255. Due to limitations on Syncsort Joinkeys, I am setting the field comparison to 64 bytes only....
Example 7 on "Exploiting Syncsort MFX: JOIN" manual is almost the one I need... except that I need the Join keys to be variable, also the input and output files...
so, according to the manual I should use REFORMAT from Section 2.234 of Programmer's Guide....
According to it, because I want the output files to be variable length to, I should add the RDW at the front of the record and the variable fields at the end without a length. I also put both variable fields at the end.
I want to exclude the identical records.
I am including RDWs from both input files, but apparently I need another RDW for each output file.
How can I solve this?
WER813I INSTALLATION OPTIONS IN MFX LOAD LIBRARY WILL BE USED
WER276B SYSDIAG= 5009393, 12351294, 12351294, 9737185
WER164B 46,016K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER164B 0 BYTES ESRERVE REQUESTED, 1,000K BYTES USED
WER146B 20K BYTES OF EMERGENCY SPACE ALLOCATED
WER481I JOINKEYS REFORMAT RECORD LENGTH= 548, TYPE = V
WER235A SORTOF2 OUTREC RDW NOT INCLUDED
WER211B SYNCSMF CALLED BY SYNCSORT; RC=0000
WER449I SYNCSORT GLOBAL DSM SUBSYSTEM ACTIVE
WER482I JNF1 STATISTICS
WER483B 22,776K BYTES OF VIRTUAL STORAGE AVAILABLE, MAX REQUESTED,
WER483B 0 BYTES ESRERVE REQUESTED, 1,000K BYTES USED
WER108I SORTJNF1 : RECFM=VB ; LRECL= 275; BLKSIZE= 27998
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
The REFORMAT statement, like any record, only has "one" RDW, which is at position 1, for a length of 4. 5,4, although it was sourced from an RDW, is not an RDW, it is just data, so doesn't count.
You have to use the only RDW possible. SyncSORT will work out the rest.
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
On top of that, REFORMAT records with two variable parts are... exciting.
You have two, more useful, possibilities: use a fixed-length REFORMAT record, and FTOV/CONVERT with VLTRIM on the OUTFILs; use one fixed-length source and one variable-length, and only one FTOV/CONVERT in OUTFIL.
It's also not clear what limitation you came across in the JOINKEYS which means you've stuck to 64 bytes.
Presuming that your data is in key order, use SORTED on each of the JOINKEYS statements. If not in key order, then you may be representing an artificial picture.
I misunderstood the manual... there is no max length for the field in JOINKEY... what it says (p 2.58) the max number of fields for a JOINKEY is 64... my mistake...
Joined: 09 Mar 2011 Posts: 7309 Location: Inside the Matrix
It's an oblique way of telling you that if you use OUTFIL reporting features you need an A in your RECFM for the output, because a printer-control character is inserted before the first position of each record.
Now, you don't actually want that. You'd like those Control Characters to not be there. So on the OUTFIL, you specify REMOVECC, and they won't be there.
Please use the Code tags, not the Quote tags, for marking-up anything which needs to retain proportional spacing.