An Iterative Macro will run through every record and then loop the records back through the workflow, repeating the entire process as many times as is specified, or until a condition is met.
Iterative macro properties will only display on the Test tab in the Interface designer. The contents of the Test tab cannot be edited from the Interface Designer. Global variables do not reset between iterations in iterative macros. The global variables will retain their value between iterations and need to be initialized directly by the Python SDK tool.
Design an Iterative Macro
- Start with a working workflow.
From Workflow Properties, select Iterative Macro from the Workflow Type drop down list.
- Once the Workflow is saved as an Iterative Macro, each tool in the workflow gets a lightning bolt anchor . Only Interface Tools can connect to these anchors. This anchor indicates that there are Interface elements and actions updating a workflow tool.
Configure the Iterative Macro Properties, found in the Interface Designer Window (Ctrl+Alt+D) or accessed from the View menu. Click the wrench icon to view the Properties.
- Iteration Input: From the drop down, select the Input Data Tool in the workflow that contains the records to use for the iterative process.
- Iteration Output: From the drop down, select the Output Data tool in the workflow that contains the records that will loop back through the iterative process.
- Maximum Number of Iterations: All processes must end at some point, otherwise they could loop indefinitely. Specify the number of iterations here.
When Maximum Number of Iterations is Hit: choose the preferred behavior. Choices are:
- Error: Workflow will error and stop processing.
- Warn: A warning message will be issued and any records left over will be outputted.
- Output left over records: All records are outputted.
Output Mode: Records are unioned on output, choose the preferred behavior for outputting these records as some may have a different table schema. Choices include:
- All iterations will have the same output schema (error if different)
- Auto Configure by Name (Wait until all Iterations run)
- Auto Configure by Position (Wait until all Iterations are run)
If schema is the same other than field names, it will be a warn the user but continue to output. It is only an error if the field types or sizes change or the # of fields.