<< Click to Display Table of Contents >> Navigation: User guide > Data > IDF data |
An IDF record consists of all the variables defined in the Data Stage, except temporary variables.
An IDF record is written on every execution of FINISH DATA, unless there are one or more WRITE commands in the CL script, in which case the action of FINISH DATA is inhibited, and a record is written only when a WRITE command is executed. No record is written to the IDF if variable $XIERR (which contains the data error count) is greater than zero when the WRITE or FINISH DATA command is executed. IDF records are also not written if run control parameter NOWRITE is used.
When a record is written to the IDF, it contains the current values of all the variables. These values are changed between WRITE commands. The values of all variables (except reserved variables, and temporary variables if the PRESERVE TEMPORARY command is not used) are set to zero every time START DATA is executed. If you require to set these values to zero yourself between writing records to the IDF, you can use the ZERO command.
It is possible to overwrite certain variables in earlier IDF records with their current value using the WRITE BACK command. This is useful for trailer data where variables have been accumulated and the final values are not known until some of the WRITE commands have already been executed.
There is no limit on the number of IDF records that may be written per input record.
A new batch of IDF records is read every time START TABLES is executed. When FINISH TABLES is executed, control returns to START TABLES if there are any more records to be read from the IDF.
This process is entirely automatic, and cannot be controlled or modified by you in any way, but see Run Control Parameter NOLOOP. Without NOLOOP each IDF record is treated separately and you must not assume the order in which IDF records are processed.