Posted: Tue Feb 06, 2007 11:25 am Post subject: Removing characters in an Report
I am seeing a ICETOOL job which is generating a report and in the report i get in view mode all 1 's in column 1 and the dataset is a FBA with lrecl 121 .But if i see in Browse mode i do not get to see 1 in column 1 position why is that ? Moreover when i see in browse mode the cols are from 1 - 120 only where as in view mode it is 1 - 121 why is that ?
Please help in understanding ?
How can we elimate the 1'S in column 1 and i guess that we cannot use REMOVECC with ICETOOL? Can anybody show a sample example how to do it which has 1 is postion 1 and later we remove all 1's ?
Joined: 03 Dec 2002 Posts: 579 Topics: 1 Location: Iowa, USA
Posted: Tue Feb 06, 2007 12:42 pm Post subject:
yadav2005 wrote:
But if i see in Browse mode i do not get to see 1 in column 1 position why is that ? Moreover when i see in browse mode the cols are from 1 - 120 only where as in view mode it is 1 - 121 why is that ?
When in BROWSE, use the DISPLAY CC or DISPLAY NOCC to determine whether the prt control chars are shown. _________________ Regards,
Bill Dennis
Disclaimer: My comments on this foorum are my own and do not represent the opinions or suggestions of any other person or business entity.
Joined: 26 Nov 2002 Posts: 12378 Topics: 75 Location: San Jose
Posted: Tue Feb 06, 2007 1:33 pm Post subject:
Quote:
How can we elimate the 1'S in column 1 and i guess that we cannot use REMOVECC with ICETOOL? Can anybody show a sample example how to do it which has 1 is postion 1 and later we remove all 1's ?
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Tue Feb 06, 2007 1:43 pm Post subject:
A DFSORT/ICETOOL job can create reports in several ways - with the DISPLAY operator, with the OCCUR operator, or with a SORT or COPY operator that uses OUTFIL to create the report. REMOVECC can be used with OUTFIL, but not with DISPLAY or OCCUR.
If you want to remove the ANSI carriage control characters from a report produced by DISPLAY or OCCUR, you need to use a second COPY operator like this:
_________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
I have an existing report FBA dataset which is making of print characters.The dataset is generated because of ICETOOL using operators.
OUTPUT:
Code:
1SOME HEADING
TEXT MESSAGE
1SOME HEADING
SOME DATA
1SOME HEADING
.
.
.
SOME NUMERIC DATA
Now, I want add a line FINISH at the end of numeric data as well as remove the print characters at the begining in the column 1 , the lines starting with column 1 will start from new page as routed to the output.Finally i want the OUTPUT as:
OUTPUT
Code:
SOME HEADING
TEXT MESSAGE
SOME HEADING
SOME DATA
SOME HEADING
.
.
.
SOME NUMERIC DATA
FINISH
so that i want the report coming in 1 page only instead of starting from new page wherever we have column 1 in the begining position.I hope i am clear in my requirement.
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Tue Feb 06, 2007 2:19 pm Post subject:
Here's a slightly modified version of the previous DFSORT/ICTOOL job I showed you that will do what you are now asking for. I'm assuming you're using DISPLAY to produce the report.
_________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
I am not using DISPLAY to produce report rathar i am using OCCURS with LIST.Please let me know what changes should be done accordingly after u had pasted the code if we are using OCCURS.
I am getting an Abend ICE226A when i run u code and i have the description as below.I am routing the output to 120 FB as output and i am using ZOS wherein i am not calculating BLKSIZE at all.
Code:
ICE226A BLKSIZE = n IS INVALID (LRECL = m)
Explanation: Critical. The specified or computed block size (n), for the OUTFIL data set associated with ddname, is invalid for one of the following reasons (m is the associated LRECL):
n is less than the minimum allowed: 1 (not a report) or 2 (report) for a fixed-length record data set or 9 (not a report) or 10 (report) for a variable-length record data set
n is less than m for a fixed-length record data set
n is not a multiple of m for a fixed-length record data set
n is not equal to m for an unblocked fixed-length record data set
n is less than m + 4 for a variable-length record data set
n is greater than the track capacity of the device on which the data set resides
System Action: The program terminates.
Programmer Response: Change the block size to a valid value.
To solve this i hardcoded BLKSIZE value and the job ran fine but
when i am trying to open the dataset in view mode, i am getting
Code:
I/O error reading data
when i am trying to open the dataset in browse mode, i am getting
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Tue Feb 06, 2007 3:18 pm Post subject:
Quote:
I am not using DISPLAY to produce report rathar i am using OCCURS with LIST.Please let me know what changes should be done accordingly after u had pasted the code if we are using OCCURS.
Just use your OCCURS operator instead of DISPLAY. My job will work equally well for either. DISPLAY was just an example.
Quote:
I am getting an Abend ICE226A when i run u code
When I run the job with RECFM=FB and no LRECL or BLKSIZE for the OUT data set, the job completes successfully with LRECL=120 and BLKSIZE=27960.
The ICE126A message shows the BLKSIZE (n) and LRECL (m) used. What are n and m?
By default, DFSORT would set the LRECL to 120 and the BLKSIZE to the system determined BLKSIZE and you would NOT get that message. With RECFM=FB, you (or your site's ACS routines) must be setting the LRECL or BLKSIZE in some way to get that message instead of letting DFSORT do it. What do you have for your OUT DD statement exactly?
Please post all of the DFSMSG messages you received. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 0 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 01:42 ON WED FEB
INREC BUILD=(2,120)
OUTFIL FNAMES=OUT,REMOVECC,
TRAILER1=(C'FINISH')
ICE146I 0 END OF STATEMENTS FROM CTL1CNTL - PARAMETER LIST STATEMENTS FOLLOW
DEBUG NOABEND,ESTAE
OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL1,SORTIN=IN,
YNALLOC
SORT FIELDS=COPY
ICE201I 0 RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE222A 0 120 BYTE FIXED RECORD LENGTH IS NOT EQUAL TO 121 BYTE LRECL FOR OUT
ICE751I 0 C5-K05352 C6-Q95214 C7-K90000 C8-K05352 E9-Q95214 E7-K90000
ICE052I 3 END OF DFSORT
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Tue Feb 06, 2007 5:38 pm Post subject:
I see an ICE222A message. I don't see the ICE226A message you said you got previously. It's difficult to hit a moving target.
The ICE222A message tells me that you have LRECL=121 for your OUT data set. The OUT data set should be RECFM=FB and LRECL=120 (no ANSI carriage control character) so the LRECL has to be 120, not 121. If you don't specify the LRECL for a NEW OUT data set, DFSORT sets it automatically to the correct value. If you specify it yourself or the system sets it somehow (ACS routine?), then you have to ensure the LRECL value is correct . You could specify LRECL=120 for the OUT data set to make sure it has the correct value.
Are you sure that's what your OUT DD looks like for this job? It appears to be a NEW data set with just RECFM=FB specified, so it's unclear why it would have an LRECL of 121, but it obviously does or you wouldn't be getting the ICE222A message. Are you sure your output data set wasn't previously defined?
I can't make any sense out of what you're showing me, especially since you keep changing what you say.
You could try specifying LRECL=120 for the OUT data set to see if that works - hopefully it will override the existing LRECL=121 for the OUT data set if that's the problem.
You could try using a temporary data set for //OUT DD to see if that works - something like:
If you don't get any error messages that way, then there's definitely something wrong with your permanent output data set. If you do get error messages, then the LRECL is being set outside of DFSORT in some way. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
I am sorry for pasting the code wrongly.Actually i was omitting some steps above the ICETOOL step and due to lot of code changes i really messed up the code.The OUT DD Dataset is already being defined in earlier steps and the code is MOD not new:
Moreover initially i was getting the abend ICE222A with the reason:
Code:
ICE226A BLKSIZE = n IS INVALID (LRECL = m) because of the code:
//OUT DD DSN=PROJECT.TEST.DATA,
// DISP=(MOD,CATLG,CATLG),UNIT=SYSDA,
// SPACE=(TRK,(1,1),RLSE),
// DCB=(RECFM=FB,LRECL=120)
Later i was getting the abend ICE22A with the reason:
Code:
ICE222A 0 120 BYTE FIXED RECORD LENGTH IS NOT EQUAL TO 121 BYTE LRECL FOR OUT becuase of the code actually i removed LRECL parameter.
Joined: 02 Dec 2002 Posts: 1618 Topics: 31 Location: San Jose
Posted: Wed Feb 07, 2007 11:35 am Post subject:
Ok, so the OUT data set was previously defined with LRECL=121 which explains both the ICE226A and the ICE222A. I assume when you used an OUT data set without attributes, DFSORT set them correctly and the job was successful. _________________ Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
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