PipeLoop
Overview
You can use this Snap to enable looping on pipeline executions based on a stop condition or iteration limit. The output document of each iteration is fed into the next iteration as the input document, and execution continues until the stop condition is met or the iteration limit is reached. Learn more.
Snap Type
The PipeLoop Snap is a Flow-type Snap.
Prerequisites
Child pipelines must have one input view and one output view.
Support for Ultra Tasks
Does not support Ultra Tasks.
Limitations
Reuse is currently not supported because of the requirement to close an input view to force flush all documents out.
Reads only the first output document for a specific input document (the remaining documents are ignored and dropped).
Supports expressions on the pipeline specification, but only evaluates the input document to PipeLoop, not for each iteration.
Known Issues
None.
Snap Views
Type | Format | Number of Views | Examples of Upstream and Downstream Snaps | Description |
---|---|---|---|---|
Input |
|
|
| The document or binary data to send to the child pipeline. For a single document input, only the first output document is captured in the output document and the remaining documents are ignored. |
Output |
|
|
| If you select the Debug iterations output checkbox, an additional
|
Error | Error handling is a generic way to handle errors without losing data or failing the Snap execution. You can handle the errors that the Snap might encounter when running the pipeline by choosing one of the following options from the When errors occur list under the Views tab:
Learn more about Error handling in pipelines. |
Snap Settings
Expression : JavaScript syntax to access SnapLogic Expressions to set field values dynamically (if enabled). If disabled, you can provide a static value. Learn more.
SnapGPT : Generates SnapLogic Expressions based on natural language using SnapGPT. Learn more.
Suggestion : Populates a list of values dynamically based on your Account configuration.
Upload : Uploads files. Learn more.
Learn more about the icons in the Snap Settings dialog.
Field Name | Field Type | Description | |
---|---|---|---|
Label*
Default Value: PipeLoop | String | Specify the name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snaps in your pipeline.
| |
Pipeline*
Default Value: N/A | String/Expression | Specify the path of the pipeline to execute. | |
Pipeline Parameters | Use this field set to define child pipeline parameters to use for executing the pipeline. | ||
Parameter name Default Value: N/A | String/Suggestion | Specify the parameter's name. You can also select the Pipeline Parameters defined for the pipeline selected in the Pipeline field. | |
Parameter value Default Value: N/A | String/Expression | Specify the value for the pipeline parameter, which can be an expression based on incoming documents or a constant. If you configure the value as an expression based on the input, then each incoming document or binary data is evaluated against that expression when invoking the pipeline. The result of the expression is JSON-encoded if it is not a string. The child pipeline then needs to use the | |
Loop options | Define the iteration configuration. | ||
Stop condition
Default Value: N/A | String/Expression | Specify the condition to be evaluated during execution that decides whether the execution should stop or continue. The iteration continues until the stop condition is met or the iteration limit is reached. The Snap errors out if the Stop condition cannot be evaluated at run time. The stop condition is evaluated on the output document from each iteration. | |
Iteration limit
Default Value: 10 | Integer/Expression | Specify the maximum limit for the number of iterations to run to avoid infinite loops. | |
Debug iteration outputs
Default Value: Deselected | Checkbox | Select this checkbox to include the index, output document, and stop condition evaluation for each iteration as part of the output format.
| |
Execution options | Define the child pipeline execution configuration. | ||
Execute on
Default Value: LOCAL_NODE | Dropdown list | Select one of the following Snaplex options to specify the target Snaplex for the child pipeline:
| |
Execution label
Default Value: N/A | String/Expression | Specify the label to display in the Dashboard for the current execution. | |
Snap Execution Default Value: Validate & Execute | Dropdown list | Select one of the following three modes in which the Snap executes:
|
Execution flow of Pipeloop Snap
The execution workflow of the PipeLoop Snap enables the parent pipeline to control and manage iterative processes using the child pipeline, for scenarios where repeated processing is needed until a specific condition is satisfied. Here are the key steps in the execution of the PipeLoop Snap:
The parent pipeline passes the input document to the child pipeline.
The child pipeline executes.
The PipeLoop Snap collects the output document from the child pipeline.
The PipeLoop Snap evaluates the stop condition based on the child pipeline’s output document.
If the stop condition is false, the Snap checks if the iteration limit is reached.
If the iteration limit is not reached, the Snap passes the output document to input (back to Step 1). The iteration stops if the stop condition is evaluated to true or the iteration limit is reached.”
Example
Have feedback? Email documentation@snaplogic.com | Ask a question in the SnapLogic Community
© 2017-2024 SnapLogic, Inc.