(We have Syncsort in our installation)
The sysin card in the sort step was having around 1200 'OR' conditions.
Code:
SORT FIELDS=(7,12,CH,A)
INCLUDE COND=((7,12,CH,EQ,X'5B05F3F1E4D3F0F0F1F5F6F9'),OR,
(7,12,CH,EQ,X'5B05F3F1E4D3F0F0F3F1F1F0'),OR,
***
***
***
( 1200 OR CONDITIONS )
(7,12,CH,EQ,X'5B05F3F1E4D3F0F0F1F1F1F0'))
After knowing about WER002A from reading quick reference , came to know that 1200 OR conditions were too much complex for sort to handle. So arrived at following solution:
Created 3 steps :
Step1: having the original sortin file as input and temp1 file as output and the sysin card for this step consited of first 600 'OR' conditions from the original sysin card.
Step2: having the original sortin file as input and temp2 file as output and the sysin card for this step consisted of last 600 'OR' conditions from the original sysin card.
Step3: having TEMP1 and TEMP2 concatenated as input file and original sortout file as the output file. The sysin for this step just consisted of a sort ascending condition:
Code:
SORT FIELDS=(7,12,CH,A)
And hopefully this solution served my purpose. Now I want to know of alternative or better (short/optimized)solutions of the problem mentioned above. Also I'd like to know whether anything could be done on application programmer's side to solve WER002A problem specifically.
Joined: 15 Dec 2002 Posts: 637 Topics: 43 Location: Bengaluru, INDIA
Posted: Wed Jul 02, 2003 11:18 pm Post subject:
naveen,
Looking at the INCLUDE conditions it seems that, your 12 byte string has its first 8 bytes common. They are, X'5B05F3F1E4D3F0F0'. And, by the number of cards it seems you are testing for every possible value in the remaining 4 bytes.
As far as DFSORT is concerned, the number of INCLUDE or OMIT conditions DFSORT/ICETOOL can handle depends on the length and format of the fields involved. Maybe, there is something similar in SYNCSORT too. So, one way of avoiding that message is to code the include conditions only for the last 4 bytes rather than check for all the 12 bytes.
One more way can to be have the INCLUDE condition in a GE and LE format. I f my assumption is right about checking for all possible values in last 4 bytes (of the 12 byte field) then you can have your INCLUDE condition to check for records which have string >= X'5B05F3F1E4D3F0F000000000' AND <= X'5B05F3F1E4D3F0F0FFFFFFFF' .
Hope this helps. _________________ ALL opinions are welcome.
Debugging tip:
When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth.
-- Sherlock Holmes.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum