I am getting a error when i am copying a VB file of length 446 to another file of lenght 448. I am placing the 1st 2 positions of the output file free and copying the input file to output file from the 3rd position.
Hi, I am getting an error when i am copying the file with specific sort conditions
The Error message for the sort codition is
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R10 - 00:50 ON TUE JU
ICE201I F RECORD TYPE IS V - DATA STARTS IN POSITION 5
ICE150I 1 VLSHRT NOT USED FOR SORT, MERGE, INCLUDE, OMIT OR SUM STATEMENT FIELDS
ICE126A 9 INCONSISTENT REFORMATTING FOR SORTOUT : REASON CODE 04, IFTHEN 0
ICE751I 0 C5-K90014 C6-K90014 C7-K45047 C8-K42136 E9-K40168 E7-K44564
ICE052I 3 END OF DFSORT
In your case, you have 7:5,106 which goes up to output position 112, but you have 112: as the next output position so it overlaps. You should have 113: and the remaining positions should be adjusted accordingly. If you don't specify the c: items, DFSORT will figure out where to start the next output field automatically.
You're getting that error because you have a VB input record that does not contain an input field you're using in the OUTREC operand. You have 189,258 which requires an input length of 446 bytes, but one of your input records is only 190 bytes. VLSCMP only affects INCLUDE/OMIT. VLSHRT only affects SORT and INCLUDE/OMIT. But your problem is with OUTREC (BUILD), so VLSCMP and VLSHRT have no effect.
The real question is: what do you want DFSORT to do with these "short" fields. Do you want it to fill in the missing bytes with blanks (or another character)? Or do you want to remove the short records? Or what?