IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Sort Problem


IBM Mainframe Forums -> DFSORT/ICETOOL
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
pjnithin

Active User


Joined: 22 Dec 2005
Posts: 116

PostPosted: Wed Mar 08, 2006 5:52 pm
Reply with quote

I am getting a problem while using these sort cards. The sysout error message is like this.
Code:

ICE143I 0 BLOCKSET     SORT  TECHNIQUE SELECTED                                 
ICE250I 0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AN
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 07:16 ON WED MAR
            SORT FIELDS=(1,55,CH,A)                                             
            INCLUDE COND=(1,1,CH,EQ,C'2',OR,                                   
                          1,1,CH,EQ,C'3')                                       
            INREC IFTHEN=(WHEN=(1,1,CH,EQ,C'2'),                               
            BUILD=(1:95,30,31:77,15,46:93,1,47:C'01',49:32,9,56:1,1000)),       
            IFTHEN=(WHEN=(1,1,CH,EQ,C'3'),                                     
            BUILD=(1:95,30,31:77,15,46:93,1,47:C'02',49:43,9,56:1,1000))       
ICE201I 0 RECORD TYPE IS F - DATA STARTS IN POSITION 1                         
ICE126A 2 INCONSISTENT *INREC   IFTHEN 1 REFORMATTING FIELD FOUND               
ICE751I 0 C5-K05352 C6-Q95214 C7-K90000 C8-K05352 E7-K90000                     
ICE052I 3 END OF DFSORT                                                         


But if I change the sort card to
Code:

            SORT FIELDS=(1,55,CH,A)                                             
            INCLUDE COND=(1,1,CH,EQ,C'2',OR,                                   
                          1,1,CH,EQ,C'3')                                       
            INREC IFTHEN=(WHEN=(1,1,CH,EQ,C'2'),                               
            BUILD=(1:95,30,31:77,15,46:93,1,47:32,9,56:1,1000)),       
            IFTHEN=(WHEN=(1,1,CH,EQ,C'3'),                                     
            BUILD=(1:95,30,31:77,15,46:93,1,47:43,9,56:1,1000))       

it is running fine.

Another problem:
Code:

ICE200I 0 IDENTIFIER FROM CALLING PROGRAM IS 0001                               
ICE200I J IDENTIFIER FROM CALLING PROGRAM IS 0001                               
ICE000I I - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 07:16 ON WED MAR
            INCLUDE COND=(1,12,CH,EQ,C'583731      ')                           
            INREC FIELDS=(1:89,30,31:64,15,46:192,1,47:41,2,49:55,9,56:1,200)   
            SORT FIELDS=(1,55,CH,A)                                             
ICE146I J END OF STATEMENTS FROM CTL1CNTL - PARAMETER LIST STATEMENTS FOLLOW   
          DEBUG NOABEND,ESTAE                                                   
          OPTION MSGDDN=DFSMSG,LIST,MSGPRT=ALL,RESINV=0,SORTDD=CTL1,SORTIN=IN,SO
                         TOUT=OUT1,DYNALLOC                                     
          SORT FIELDS=COPY                                                     
ICE201I J RECORD TYPE IS F - DATA STARTS IN POSITION 1                         
ICE126A J INCONSISTENT *INREC   IFTHEN 0 REFORMATTING FIELD FOUND               
ICE052I J END OF DFSORT                                                         


When I change the sort card to
Code:

            INCLUDE COND=(1,12,CH,EQ,C'583731      ')                           
            INREC FIELDS=(1:89,30,31:64,15,46:192,1,47:55,9,56:1,200)   
            SORT FIELDS=(1,55,CH,A)                                             

it's working fine.

Any idea why it's failing.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Wed Mar 08, 2006 9:50 pm
Reply with quote

Code:

  BUILD=(1:95,30,31:77,15,46:93,1,47:C'01',49:32,9,56:1,1000)),           


You have 49:32,9 - that would put the next field at 58 (49+9). But you have 56: which means you're trying to put the next field at 56, which would overlap the previous field. You need 58: instead of 56: in this case. But why are you specifying columns (c:) if you are just building the fields contiguously? You don't need columns in that case - just let DFSORT figure them out automatically. If you want to use columns, then each column must not overlap the previous field.

Code:

  BUILD=(1:95,30,31:77,15,46:93,1,47:32,9,56:1,1000)),


This works because you don't have overlapping columns. 47:32,9 puts the next field at 56 and you have 56: for the next field.

Code:

  INREC FIELDS=(1:89,30,31:64,15,46:192,1,47:41,2,49:55,9,56:1,200) 


Same problem as first one. 49:55,9 -> 58 for next column, but you have 56: for the next field.

Code:

  INREC FIELDS=(1:89,30,31:64,15,46:192,1,47:55,9,56:1,200)     


Ok because 47:55,9 -> 56 for next column and you have 56: for the next field.
Back to top
View user's profile Send private message
pjnithin

Active User


Joined: 22 Dec 2005
Posts: 116

PostPosted: Thu Mar 09, 2006 3:50 am
Reply with quote

Thank You.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Developer


Joined: 15 Feb 2005
Posts: 7129
Location: San Jose, CA

PostPosted: Thu Mar 09, 2006 3:59 am
Reply with quote

Glad I could help.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DFSORT/ICETOOL

 


Similar Topics
Topic Forum Replies
No new posts How to split large record length file... DFSORT/ICETOOL 10
No new posts JCL sort card - get first day and las... JCL & VSAM 9
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
No new posts Sort First/last record of a subset th... DFSORT/ICETOOL 7
No new posts how to calculate SUM value for VB fil... DFSORT/ICETOOL 1
Search our Forums:

Back to Top