Record Reprocessing Description and Processing
The process is shown in the following diagram.
Assume page format PFMTA is active. Under normal processing the first input record would print in the ACROSS direction, starting at a horizontal offset of 1 inch and a vertical offset of 1 inch. However, the third record satisfies the CONDITION statement and causes a new page format (PFMTB) to be started. Since CONDITION cond1 specifies BEFORE SUBPAGE, the first two records must be reprocessed using page format PFMTB. As a result, all of the records are printed in a DOWN direction, starting at a horizontal offset of 7 inches and a vertical offset of 1 inch.
If allowed to operate without restrictions, record reprocessing could force PSF into an infinite loop. For example:
As in the previous example, page format PFMTA is initially active, and input record 3 results in the selection of page format PFMTB. However, page format PFMTB has a condition that checks position four for the character ‘Y’, which is satisfied by input record 5. Therefore, if there were no restrictions, page format PFMTA would again be selected, the input data would be reprocessed (starting with input record 1), leading to an infinite loop.
To prevent this situation, after a BEFORE condition has been satisfied, all other BEFORE conditions are ignored until data has actually been formatted. See Record Reprocessing for detailed information on this restriction.