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
 

 

Continuation of statements to next line

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
kaleelahamed

New User


Joined: 08 Jun 2006
Posts: 45
Location: Trumbull, CT

PostPosted: Wed Dec 12, 2007 11:02 am    Post subject: Continuation of statements to next line
Reply with quote

I am trying to run the following JCL. My requirement is like split my 32,000,000 records file into 32 parts, with 1,000,000 records in each of the OUT1 to OUT32 output files.

Code:

//SORTING  EXEC PGM=SYNCTOOL
//TOOLMSG DD SYSOUT=*                                               
//DFSMSG DD SYSOUT=*                                               
//SORTIN   DD DSN=KAHAMED.KPLL310M.STEP04B.TABFILE.WOUTINDX,DISP=SHR
//OUT1 DD DSN=WORKT.KPLL310M.STEP04B.TABFILE.WOUTIND1,             
//          UNIT=SYSDA,SPACE=(9999,(9999,9999),RLSE),               
//          DISP=(,CATLG)                             
//OUT2 DD
...
//TOOLIN    DD *                                                   
   OPTION COPY                                                     
   OUTFIL SPLIT1R=100000,FNAMES=  (OUT1,OUT2,OUT3,OUT4,OUT5,OUT6,OUT7,
       OUT8,OUT9,OUT10,OUT11,OUT12,OUT13,
       OUT14,OUT15,OUT16,OUT17,OUT18,OUT19,                         
       OUT20,OUT21,OUT22,OUT23,OUT24,OUT25,                         
       OUT26,OUT27,OUT28,OUT29,OUT30,OUT31,                         
       OUT32)                                                       
/*   


But I get error like the following.
Code:
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR
                                                       
                OUT8,OUT9,OUT10,OUT11,OUT12,OUT13,     
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR
                                                       
                OUT14,OUT15,OUT16,OUT17,OUT18,OUT19,   
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR
                                                       
                OUT20,OUT21,OUT22,OUT23,OUT24,OUT25,   
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR
                                                       
                OUT26,OUT27,OUT28,OUT29,OUT30,OUT31,   
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR
                                                       
                OUT32)                                 
SYT048E  STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR


Can you please let me know how to continue the same statement in next line so that i can capture my 32 datasets into the expected 32 files in a single step?
Back to top
View user's profile Send private message

murmohk1

Senior Member


Joined: 29 Jun 2006
Posts: 1439
Location: Bangalore,India

PostPosted: Wed Dec 12, 2007 11:13 am    Post subject:
Reply with quote

Kaleel,

Quote:
//SORTING EXEC PGM=ICETOOL


Quote:
SYT048E STATEMENT DOES NOT BEGIN WITH A VALID OPERATOR


I believe your site has 'syncsort' installed not DFSORT. Replace ICETOOL with SYNCTOOL and try.
Back to top
View user's profile Send private message
shankar.v

Active User


Joined: 25 Jun 2007
Posts: 196
Location: Bangalore

PostPosted: Wed Dec 12, 2007 12:28 pm    Post subject:
Reply with quote

Aaru,
Quote:
Won't the SYNCSORT messages start with WER?

SYNCSORT messages starts with WER.. for SYSIN DD or ....CNTL DD cards and starts with SYT..... for TOOLMSG DD cards

kaleelahamed,

REPLACE
PGM=ICETOOL with PGM=SORT or PGM=SYNCSORT or PGM=ICEMAN ,
TOOLIN DD * with SYSIN DD * and
SPLIT1R with SPLITBY
OR
Code as follows
Code:
//TOOLIN DD *
 COPY FROM(SORTIN) TO(OUT1) USING(CTL1)
/*
//CTL1CNTL DD *
    OUTFIL SPLITBY=100000,FNAMES=(OUT1,OUT2,OUT3,OUT4,OUT5,OUT6,OUT7,
       OUT8,OUT9,OUT10,OUT11,OUT12,OUT13,                           
       OUT14,OUT15,OUT16,OUT17,OUT18,OUT19,                         
       OUT20,OUT21,OUT22,OUT23,OUT24,OUT25,                         
       OUT26,OUT27,OUT28,OUT29,OUT30,OUT31,                         
       OUT32) 

SPLIT1R is not available in SYNCSORT for Z/OS 1.2.3, so use SPLITBY.
Suppose if your file has more than 32,000,000 records, SPLITBY will do a cycle. i.e, it will append 3200001 to 3300000 records in OUT1 and 3300001 to 3400000 records in OUT2 and so on...
Suppose if your file has more than 32,000,000 records, DFSORT SPLIT1R will put 3100001 to all records in OUT32
Back to top
View user's profile Send private message
kaleelahamed

New User


Joined: 08 Jun 2006
Posts: 45
Location: Trumbull, CT

PostPosted: Wed Dec 12, 2007 2:53 pm    Post subject: Thanks shankar.v.
Reply with quote

shankar.v,

your code is working perfect. Even I dint change the PGM parameter. It ran fine with expected results by using PGM=ICETOOL itself.

Thanks once again.
Back to top
View user's profile Send private message
shankar.v

Active User


Joined: 25 Jun 2007
Posts: 196
Location: Bangalore

PostPosted: Wed Dec 12, 2007 3:40 pm    Post subject:
Reply with quote

kaleelahamed,
Quote:
your code is working perfect. Even I dint change the PGM parameter. It ran fine with expected results by using PGM=ICETOOL itself.

My previously posted message is for suggest you to make some modifications in PGM, TOOLIN and SPLIT1R

OR

to use the code(TOOLIN DD * and CTL1CNTL) posted.

And also while using PGM=SORT/SYNCSORT/ICEMAN, SYSOUT DD SYSOUT=* is mandatory and DFSMSG DD and TOOLMSG DD is not necessary.
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: Wed Dec 12, 2007 11:50 pm    Post subject:
Reply with quote

Quote:
SPLIT1R is not available in SYNCSORT for Z/OS 1.2.3, so use SPLITBY.


Don't assume you can use SPLITBY instead of SPLIT1R without understanding the difference between them. SPLIT1R will write contiguous records to each file because it puts any excess records (3300001-n) in the last file. SPLITBY can write non-contiguous records to a file because it starts over with the first file for any excess records.

For example, if your input file has 3300200 records, SPLIT1R will put records 3200001-3300200 in OUT32 - the records will be contiguous. SPLITBY will put records 3200001-3300000 in OUT32, but will put records 3300001-3300200 in OUT1, so OUT1 will have non-contiguous records (1-100000,3300001-3300200).

Note that DFSORT supports SPLIT1R, but Syncsort doesn't.
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 -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Insert Lines in JCL with Rexx after a... Willy Jensen CLIST & REXX 3 Tue Aug 30, 2016 4:18 pm
No new posts Continuation Character ballaswaroop SYNCSORT 8 Thu Aug 25, 2016 4:46 pm
No new posts Symbolic Parameters in SYSIN DD state... madishpa DFSORT/ICETOOL 3 Mon Jun 27, 2016 6:23 pm
No new posts Extracting Information from DD Statem... Charles Wolters All Other Mainframe Topics 7 Wed Apr 13, 2016 10:21 pm
No new posts ISREDIT - Position Cursor on the Comm... Tarique Anwer TSO/ISPF 5 Wed Feb 03, 2016 12:44 pm


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