Batch Macro

A Batch macro runs multiple times in a workflow, creating an output after each run. The macro runs once for each record or selected group of records in the data. Inputs can be configured to be used in each run of the workflow or only in specific runs.

Batch macros with more than one Control Parameter tool display a tab with input options for macro users. The tab does not display in the Interface Designer for macro creators.

Designing a Batch Macro

  1. From the Workflow Properties, select Batch Macro from the Workflow Type drop down.

  2. Once the workflow is saved as a Batch 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.

  3. Control Parameter: The Control Parameter is the input for each iteration in the Batch Macro. The Control Parameter input will act like a Question but these questions are answered by data in the stream, not by a user's selection. The Control Parameter will need an Action associated with it. The Control Parameter input will appear as a ¿ below its input arrow on the macro tool icon.

  4. Configure the Batch Macro Properties, found in the Interface Designer (Ctrl+Alt+D) or accessed from the View menu. Click the wrench icon to view the Properties.

    1. Output Mode: A batch macro will run, beginning to end, for each record that is passed through it and then union all of those iterations. You need to choose how to handle the union if the schema for each iteration is not the same.

  5. Additional Inputs: Some batch Macros will have additional inputs, some will not. If additional inputs are specified, the user will have a Grouping tab available to them on their configuration properties. If grouping is not specified (which is the default behavior) each iteration of the workflow will get all records from the additional inputs. When Grouping is specified the additional inputs will only get records which match the Control GroupBy field for that iteration.