Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Is there a generic 'Rest of record' to select?

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
bernie_m

New User


Joined: 17 Oct 2006
Posts: 4
Location: Sydney

PostPosted: Thu Oct 26, 2006 12:10 pm    Post subject: Is there a generic 'Rest of record' to select?
Reply with quote

Hi,

I was trying to take an input file, and write out the same records with an extra field at the start.

Is there any generic symbol for the 'rest of the record to the end' rather than specifying the length? This would be good as I have a few different record lengths of various DB2 table unloads to process and could use the same sort parms.

Also, can the OUTREC processing work out the new record length?
From looking at the DFSORT manual, i thought it could but I get an error -
ICE027A K END OF FIELD BEYOND MAXIMUM RECORD LENGTH

Thanks
Bernie
Back to top
View user's profile Send private message

Frank Yaeger

DFSORT Moderator


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

PostPosted: Thu Oct 26, 2006 8:19 pm    Post subject:
Reply with quote

For VB records, p without m indicates "to the end", e.g.

Code:

   OUTREC BUILD=(1,20,25)


For FB records, there's no notation for "to the end".

Quote:
Also, can the OUTREC processing work out the new record length?
From looking at the DFSORT manual, i thought it could but I get an error -
ICE027A K END OF FIELD BEYOND MAXIMUM RECORD LENGTH


I need more information before I can comment on this (I don't know what you did). Show me your control statements and //SYSOUT messages, and indicate the RECFM and LRECL of the input file.
Back to top
View user's profile Send private message
bernie_m

New User


Joined: 17 Oct 2006
Posts: 4
Location: Sydney

PostPosted: Fri Oct 27, 2006 12:28 pm    Post subject: Re: Is there a generic 'Rest of record' to select?
Reply with quote

Hi,
Re:- the second part,
Here is some JCL lke I tried.
The LRECL of the old dataset is 221.
When I run this it works OK, creates a new Dataset with FB LRECL = 221, but the last character on each record is chopped off.
So what I would like would be a way so that it works out that the output records are 222 long.

//REFORM EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
OUTREC FIELDS=(C'U',1,221)
/*
//SORTIN DD DSN=UNLOAD.FILE,DISP=SHR
//SORTOUT DD DSN=UNLOAD.FILE.NEW,
// DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,SPACE=(CYL,(1,1))
//*

Thanks
Bernie
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


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

PostPosted: Fri Oct 27, 2006 8:19 pm    Post subject:
Reply with quote

With that OUTREC statement, DFSORT would determine that the output LRECL is 222 (unless you override it which you don't seem to be doing) and would NOT chop off the last character. I tried your job with DFSORT and I got LRECL=222 and the last character was there.

If you show me the //SYSOUT messages, as I requested in my previous post, I could tell you more.
Back to top
View user's profile Send private message
bernie_m

New User


Joined: 17 Oct 2006
Posts: 4
Location: Sydney

PostPosted: Mon Oct 30, 2006 4:02 am    Post subject: Re: Is there a generic 'Rest of record' to select?
Reply with quote

Hi, Thanks for your assistance....
The sysout from the latest job is

ICE143I 0 BLOCKSET COPY TECHNIQUE SELECTED
ICE000I 1 - CONTROL STATEMENTS FOR 5740-SM1, DFSORT REL 14.0 - 08:22 ON MON OCT 30, 2006 -
OPTION COPY
OUTREC FIELDS=(C'U',1,221)
ICE201I 0 RECORD TYPE IS F - DATA STARTS IN POSITION 1
ICE193I 0 ICEAM1 ENVIRONMENT IN EFFECT - ICEAM1 INSTALLATION MODULE SELECTED
ICE088I 0 GID859IC.REFORM . , INPUT LRECL = 221, BLKSIZE = 27846, TYPE = FB
ICE093I 0 MAIN STORAGE = (MAX,4194304,4194304)
ICE156I 0 MAIN STORAGE ABOVE 16MB = (4102128,4102128)
ICE127I 0 OPTIONS: OVFLO=RC0 ,PAD=RC0 ,TRUNC=RC0 ,SPANINC=RC16,VLSCMP=N,SZERO=Y,RESET=Y,VSAMEMT=Y,DYNSPC=32
ICE128I 0 OPTIONS: SIZE=4194304,MAXLIM=1048576,MINLIM=450560,EQUALS=N,LIST=Y,ERET=RC16 ,MSGDDN=SYSOUT
ICE129I 0 OPTIONS: VIO=N,RESDNT=NONE,SMF=NO ,WRKSEC=Y,OUTSEC=Y,VERIFY=N,CHALT=N,DYNALOC=N ,ABCODE=MSG
ICE130I 0 OPTIONS: RESALL=4096,RESINV=0,SVC=109 ,CHECK=Y,WRKREL=Y,OUTREL=Y,CKPT=N,STIMER=Y,COBEXIT=COB1
ICE131I 0 OPTIONS: TMAXLIM=4194304,ARESALL=0,ARESINV=0,OVERRGN=65536,CINV=Y,CFW=Y,DSA=0
ICE132I 0 OPTIONS: VLSHRT=N,ZDPRINT=N,IEXIT=N,TEXIT=N,LISTX=N,EFS=NONE ,EXITCK=S,PARMDDN=DFSPARM ,FSZEST=N
ICE133I 0 OPTIONS: HIPRMAX=OPTIMAL,DSPSIZE=MAX ,ODMAXBF=0,SOLRF=N,VLLONG=N,VSAMIO=N
ICE084I 0 EXCP ACCESS METHOD USED FOR SORTOUT
ICE084I 0 EXCP ACCESS METHOD USED FOR SORTIN
ICE090I 0 OUTPUT LRECL = 221, BLKSIZE = 27846, TYPE = FB (SDB)
ICE055I 0 INSERT 0, DELETE 0
ICE054I 0 RECORDS - IN: 221870, OUT: 221870
ICE751I 0 C5C6C7C8E9C9E5E7EFF0E8
ICE052I 0 END OF DFSORT
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


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

PostPosted: Mon Oct 30, 2006 9:39 pm    Post subject:
Reply with quote

The only way you could get LRECL=221 instead of LRECL=222 for that job is if the output LRECL is being set to 121 before DFSORT gets control. It could be that an ACS routine is doing that, but that's only a guess.

To demonstrate, if I use the equivalent of your job with no LRECL for the output data set like this:

Code:

//REFORM EXEC PGM=SORT                                           
//SYSOUT DD SYSOUT=*                                             
//SYSIN DD *                                                     
  OPTION COPY                                                   
  OUTREC FIELDS=(C'U',1,221)                                     
/*                                                               
//SORTIN DD DSN=&&IN,DISP=(OLD,PASS)                             
//SORTOUT DD DSN=&&O1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS) 


I get:

ICE090I 0 OUTPUT LRECL = 222, BLKSIZE = 27972, TYPE = FB (SDB)

But if I use the equivalent of your job with LRECL=121 for the output data set like this:

Code:

//REFORM EXEC PGM=SORT                                           
//SYSOUT DD SYSOUT=*                                             
//SYSIN DD *                                                     
  OPTION COPY                                                   
  OUTREC FIELDS=(C'U',1,221)                                     
/*                                                               
//SORTIN DD DSN=&&IN,DISP=(OLD,PASS)                             
//SORTOUT DD DSN=&&O1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS),
// LRECL=121 


I get:

ICE090I 0 OUTPUT LRECL = 121, BLKSIZE = 27951, TYPE = FB (SDB)

You need to figure out why the output LRECL is being set to 121 before DFSORT gets control.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


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

PostPosted: Mon Oct 30, 2006 10:09 pm    Post subject:
Reply with quote

I just figured out what's going on with your job. Your site has overridden the SOLRF option to be NOSOLRF. This tells DFSORT not to compute the output record length so it uses the input record length. I see this option overridden so rarely (because it's a bad idea) that I tend to forget about it.

You can get what you want by overriding NOSOLRF with SOLRF as follows:

Code:

  OPTION COPY,SOLRF
  OUTREC FIELDS=(C'U',1,221)


You might want to ask your System Programmers why they are using NOSOLRF since it tends to confuse people.
Back to top
View user's profile Send private message
bernie_m

New User


Joined: 17 Oct 2006
Posts: 4
Location: Sydney

PostPosted: Tue Oct 31, 2006 3:09 am    Post subject:
Reply with quote

Yes, this worked fine. Thanks very much.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts SQL - select data available in index Nileshkul DB2 3 Mon Jun 26, 2017 1:30 am
No new posts Need to write record of PS File in ex... Chandan1993 JCL & VSAM 1 Wed Jun 07, 2017 1:35 am
No new posts Adding big TEXT lines to each record ... bshkris SYNCSORT 4 Sat May 06, 2017 1:40 am
This topic is locked: you cannot edit posts or make replies. Merge two files and update Trailer re... Yashashri JCL & VSAM 1 Thu May 04, 2017 12:54 pm
No new posts Sort Large record length cmsmoon DFSORT/ICETOOL 14 Tue Apr 11, 2017 5:49 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us