View previous topic :: View next topic
|
Author |
Message |
jumana haseen
New User
Joined: 07 Jun 2011 Posts: 9 Location: india
|
|
|
|
I have a requirement to split the detail records from input files into multiple output files. All the output files should contain the same header and same footer from input. The input can be split into any no of outputs.
Input file Format: VB 1074
01... == Header
02..... == Detail
02..... == Detail
02..... == Detail
02..... == Detail
02..... == Detail
03... == Trailer
After Spliting
File 1
01... == Header
02..... == Detail
02..... == Detail
03... == Trailer
File 2
01... == Header
02..... == Detail
02..... == Detail
03... == Trailer
File 3
01... == Header
02..... == Detail
03... == Trailer
Kindly pls help on this.
thanks
Jumana |
|
Back to top |
|
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
jumana haseen,
You want split your input file with 2 detail records in output file along with header and trailer?
jumana haseen wrote: |
The input can be split into any no of outputs. |
What happens if your input file has a million records ? Are you going to split them into 499,999 files?
Unless you issue SVC99 via a program there is no way a batch version can handle that many DD's |
|
Back to top |
|
|
jumana haseen
New User
Joined: 07 Jun 2011 Posts: 9 Location: india
|
|
|
|
Sorry .. Might be my statement was not clear.
Thr no of records in the input file is not fixed.. I can create as much as outputs..
For eg ,if there are 101 records in a file, i need to split the file in such a way that there are 20 records in each file..
File 1 - 20
File 2 - 20
File 3 - 20
File 4 - 20
File 5 - 21
As per ur ex. if there are 499,999 records in the input, then i can split the file as below.
File 1 - 100000
File 2 - 100000
File 3 - 100000
File 4 - 100000
File 5 - Remaining 99999
In all the output files there should be a header and footer which should be copied from the header and footer of input file.
Hope iam clear.. I have refererd ths sites and i coudl see a lot of anwers.. but that doesnt exacty fit my requirement,..
Would be great if some one can help me out in this. |
|
Back to top |
|
|
sandhyaimmadi
New User
Joined: 18 Aug 2008 Posts: 50 Location: Bangalore
|
|
|
|
Jumaan,
Using OUTFIL statement in SORT you can split header,detail and trailer into seperate files.
Again using OUTFIL,STARTREC and ENDREC you can split detail recs as many as u require into seperate files.
At the end using IEBGENER, u can combine header,detail and trailer files.
Regards,
Sandhya |
|
Back to top |
|
|
jumana haseen
New User
Joined: 07 Jun 2011 Posts: 9 Location: india
|
|
|
|
Hi ,
Is it possible to achieve all these in same step..
My input files has huge no of records(around 10 million).. i wanted to split the files having 1 million each and FTP that .
So it would be taking a lot of time to complete if i put 3 different steps as mentioned.
Is it possible to ahiveve splitting, copying header and footer from input in a single step.
Please advice.. |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
jumana haseen wrote: |
Hi ,
Is it possible to achieve all these in same step..
My input files has huge no of records(around 10 million).. i wanted to split the files having 1 million each and FTP that .
So it would be taking a lot of time to complete if i put 3 different steps as mentioned.
Is it possible to ahiveve splitting, copying header and footer from input in a single step.
Please advice.. |
Instead of splitting the file into 'n' output files, couldn't you use a sort sequence number such that the file is logically divided into subfiles(or batches inside the same file). |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
I surely have seen such a job in past which sends a big file over a network in pieces.
Could you check you inbox(private messages) please?
Have a look at this thread http://ibmmainframes.com/about2988.html. This will give a clue about a possible solution. |
|
Back to top |
|
|
jumana haseen
New User
Joined: 07 Jun 2011 Posts: 9 Location: india
|
|
|
|
Yes.. Definetely hav seen a lot of posts.. But cud not arrive at this solution..
Any way of splitting and any no of records in the splitted file is fine .. just wanted to heve the same header and footer from the input in the splitted files... |
|
Back to top |
|
|
nigelosberry
New User
Joined: 06 Jan 2009 Posts: 88 Location: Ggn, IN
|
|
|
|
jumana haseen wrote: |
just wanted to heve the same header and footer from the input in the splitted files... |
Headers and trailers have details such as : batch number, count of the number of records, accumulated totals etc. Are you sure your subfiles should have the SAME header and trailer records as in the main file? |
|
Back to top |
|
|
jumana haseen
New User
Joined: 07 Jun 2011 Posts: 9 Location: india
|
|
|
|
My input looks like this. We dont have any count or totals here.
Input:
01|XXX|20110602|OO| -------------------------- Header
02|XXX|20110602|POL|aaaa1|bbbb1 -------------------------- Detail
02|XXX|20110602|POL|aaaa2|bbbb2 -------------------------- Detail
02|XXX|20110602|POL|aaaa3|bbbb3 -------------------------- Detail
02|XXX|20110602|POL|aaaa4|bbbb4 -------------------------- Detail
02|XXX|20110602|POL|aaaa4|bbbb4 -------------------------- Detail
03| -------------------------- Footer
Need to Split the files into any no of output files.. and add header and footer to all split file..
In this eg, since there are 5 '02' records, I can split the files containg 2 record in file1 , 2 in file 2 and 1 in file 1 as below.
Output file1
01|XXX|20110602|OO| -------------------------- Header
02|XXX|20110602|POL|aaaa1|bbbb1 -------------------------- Detail
02|XXX|20110602|POL|aaaa2|bbbb2 -------------------------- Detail
03| -------------------------- Footer
Output file2
01|XXX|20110602|OO| -------------------------- Header
02|XXX|20110602|POL|aaaa3|bbbb3 -------------------------- Detail
02|XXX|20110602|POL|aaaa4|bbbb4 -------------------------- Detail
03| -------------------------- Footer
Output file3
01|XXX|20110602|OO| -------------------------- Header
02|XXX|20110602|POL|aaaa5|bbbb5 -------------------------- Detail
03| -------------------------- Footer
No of output files and no of records doesnt matter.
Hope iam clear.. |
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
I'm not sure if you're clear or not.
If you want to split an input file to 3 output files by specifying the number of records in each file, you can use a DFSORT job like the following:
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file (VB/1074)
//OUT1 DD DISP=MOD,DSN=... output file1 (VB/1074)
//OUT2 DD DISP=MOD,DSN=... output file2 (VB/1074)
//OUT3 DD DISP=MOD,DSN=... output file3 (VB/1074)
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
COPY FROM(IN) USING(CTL2)
COPY FROM(IN) USING(CTL3)
/*
//CTL1CNTL DD *
OPTION STOPAFT=1
OUTFIL FNAMES=(OUT1,OUT2,OUT3)
/*
//CTL2CNTL DD *
INCLUDE COND=(5,2,CH,EQ,C'02')
OUTFIL FNAMES=(OUT1,OUT2,OUT3),
SPLIT1R=2 <---- change as needed
/*
//CTL3CNTL DD *
INCLUDE COND=(5,2,CH,EQ,C'03')
OUTFIL FNAMES=(OUT1,OUT2,OUT3)
/*
|
For different numbers of records, just change the SPLIT1R=n value (e.g. SPLIT1R=20 if you want 20 records in each file).
If you want something more dynamic that calculates the value for SPLIT1R, you combine the job above with the technique shown in the "Split a file to n output files dynamically" Smart DFSORT Trick at:
www.ibm.com/support/docview.wss?rs=114&uid=isg3T7000094 |
|
Back to top |
|
|
|