Question { CTS, 23738 }
Hi friends,
I have 100 records in my input file, if i run first,the
first 10 records are stored into the output and if i run
second time next 10 records stored into the output file like
that
please let me know the answer
Thanks,
krishna
Answer
Approach 1: Least Number of components. (only 3)
-----------
1. Declare a Parameter $COUNT to get the count of the Output file
2. Use that parameter in a FILTER BY EXPRESSION component after the input file. Use the below filter.
((next_in_sequence() + 1)/ 2 ) > $COUNT
and (next_in_sequence()/2 ) < (11 + $COUNT)
NOTE: The complicated logic above is used because of two next_in_sequence() functions which would be incremented by 2 for each record.
Alternative approach is to use a scan and local variables to create the sequence manually and use the appropriate filter. OR use two FILTER BY EXPRESSIONS, with the below filters:
next_in_sequence() > $COUNT
next_in_sequence() < 11
Approach 2:
-----------
1. Join the Output and Input file on all keys (or primary key if applicable)
2. Use a Filer component after the Unused port for the Input file. Filter should be next_in_sequence() < 11