Skip to end of banner
Go to start of banner

PipeLoop

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Current »

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 continues execution until the stop condition is met or the iteration limit is reached.

pipe-loop-snap-overview.png

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

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 

  • Binary

  • Document

  • Min: 1

  • Max: 1

  • Mapper

  • Copy

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

  • Binary

  • Document

 

  • Min: 1

  • Max: 1

  • Mapper

If you select the Debug iterations output checkbox, an additional _iteration_documents is added to the output document alongside the output documents and passthrough documents.

_iteration_documents contains the following fields:

  • iteration: The index of the loop iteration.

  • child_pipeline_output: The output document of the respective iteration.

  • stop_condition_evaluation: The evaluated result of the stop condition.

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:

  • Stop Pipeline Execution: Stops the current pipeline execution if the Snap encounters an error.

  • Discard Error Data and Continue: Ignores the error, discards that record, and continues with the remaining records.

  • Route Error Data to Error View: Routes the error data to an error view without stopping the Snap execution.

Learn more about Error handling in pipelines.

Snap Settings

  • Expression (blue star): JavaScript syntax to access SnapLogic Expressions to set field values dynamically (if enabled). If disabled, you can provide a static value. Learn more.

  • SnapGPT (blue star): Generates SnapLogic Expressions based on natural language using SnapGPT. Learn more.

  • Suggestion (blue star): Populates a list of values dynamically based on your Account configuration.

  • Upload (blue star): Uploads files. Learn more.

Learn more about the icons in the Snap Settings dialog.

Field Name

Field Type

Description

Label*

 

Default ValuePipeLoop
ExampleSimpleLoop

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
Example: demo-child-pipeline

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
Exampletools

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
Example$tools

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 JSON.parse() expression to decode the parameter value.

Loop options

Define the iteration configuration.

Stop condition

Default Value: N/A
Example: $num >= 10

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 Value10
Example: 15

Integer/Expression

Specify the maximum limit for the number of iterations to run to avoid infinite loops.

Debug iteration outputs

Default ValueDeselected

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 ValueLOCAL_NODE
Example: LOCAL_SNAPLEX

Dropdown list

Select one of the following Snaplex options to specify the target Snaplex for the child pipeline:

  • LOCAL_NODE: Runs the child pipeline on the same node as the parent pipeline.

  • LOCAL_SNAPLEX: Runs the child pipeline on one of the available nodes in the same Snaplex as the parent pipeline.

Execution label

Default Value: N/A
Example: demo

String/Expression

Specify the label to display in the Dashboard for the current execution.

Snap Execution

Default ValueValidate & Execute
Example: Execute only

Dropdown list

Select one of the following three modes in which the Snap executes:

  • Validate & Execute: Performs limited execution of the Snap and generates a data preview during pipeline validation. Subsequently, performs full execution of the Snap (unlimited records) during pipeline runtime.

  • Execute only: Performs full execution of the Snap during pipeline execution without generating preview data.

  • Disabled: Disables the Snap and all Snaps that are downstream from it.

Example

Snap Pack History

 Click to view/expand
ReleaseSnap Pack VersionDateTypeUpdates
November 2024main29029 StableUpdated and certified against the current SnapLogic Platform release.
August 2024438patches28470 LatestAdded the PipeLoop Snap that enables you to loop on pipeline executions based on a stop condition or iteration limit. The execution workflow of this 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 stop condition is met.
August 2024438patches28047 LatestEnhanced the Head and Tail Snaps (for the Number of documents and Document offset fields) to support pipeline parameters via expressions that enable you to reuse the pipelines.
August 2024main27765 Stable

When the Router Snap was the first Snap in a triggered task, the documents were not processed. Previously, the response contained a 200 status code but was empty. Now, it processes one document and provides non-empty output.

Behavior change:

Previously, the Router Snap generated no output without an input document. Now, the Snap generates an empty document when no input document is provided.

May 2024437patches26857 Latest

Enhanced the Pipeline Execute Snap to support expression values via pipeline parameters for the Batch size field that enables you to use intermediate pipelines for generic use cases.

May 2024

main26341

 

Stable

Updated and certified against the current SnapLogic Platform release.

March 2024436patches25576 LatestFixed an issue with the Pipeline Execute Snap where a condition resulted in the output documents not being read.
February 2024main25112 StableUpdated and certified against the current SnapLogic Platform release.
November 2023main23721 StableUpdated and certified against the current SnapLogic Platform release.
August 2023434patches22576 Latest

Fixed an issue with the Pipeline Execute Snap that caused a null pointer exception during the retry when the input view was a Binary type. Retry is not supported for a Binary input view with this Snap.

August 2023

main22460

 


Stable

Updated and certified against the current SnapLogic Platform release.

May 2023

433patches22107

 Latest

Fixed an issue with the Pipeline Execute Snap that caused it to acknowledge the Ultra pipeline message before the message reached the last Snap in the pipeline. Because of the early acknowledgment, the last Snap in the pipeline failed and the response could not be sent back.

May 2023433patches21744 LatestFixed an issue with the Pipeline Execute Snap where a missing label produced a null pointer exception.
May 2023

433patches21196

 Latest

Fixed an issue with the Pipeline Execute Snap where no input view produced a null pointer exception.

May 2023433patches21040 LatestProvided a fix to ensure the Data Validator works with "unknown" data types.
May 2023main21015 StableUpgraded with the latest SnapLogic Platform release.
February 2023432patches20279 Latest

The Pipeline Execute Snap now returns errors from child pipelines with a unique identifier.

February 2023432patches19695 Latest
Fixed an issue with the Pipeline Execute Snap that was causing Unable to create a deep copy of the object errors.

As of  we have discovered an issue with this patch affecting the Pipeline Execute Snap. If you have pipelines leveraging the Pipeline Execute Snap, we recommend you NOT use this patch and instead use patch 432patches20279.

February 2023main19844 StableUpgraded with the latest SnapLogic Platform release.
November 2022main18944 StableUpgraded with the latest SnapLogic Platform release.
September 2022430patches18070 LatestThe Pipeline Execute Snap with binary output that is used in a low-latency feed Ultra Pipeline now works as expected. The requests are now acknowledged correctly.
August 2022main17386 StableUpgraded with the latest SnapLogic Platform release.

4.29

main15993

   

Stable

Upgraded with the latest SnapLogic Platform release.

4.28 Patch428patches15026 Latest

Fixed an issue with HTTP Router Snap where the Snap did not work as intended for a GET request that used a Cloud URL when the HTTP Router was the first Snap in the triggered task Pipeline.

4.28main14627 StableEnhanced the Filter Snap with the Null-safe access checkbox. Select this checkbox to consider the valid values in the filter expression and remove the missing or empty data instead of treating them as null.
4.27 Patch427patches13726
 
Latest

Enhanced the Filter Snap with the Null-safe access checkbox. Select this checkbox to consider the missing data or empty value as null when accessing the source path.

4.27main12833
 
StableEnhanced the Gate Snap with the Output Document Content field that enables you to indicate the count of input documents and the specific (first or last) document to include in the output.
4.26main11181
 
Stable

Added Binary Copy Snap to copy a binary stream to the Snap’s output views. You can use this Snap if you want to send the same information to multiple endpoints.

4.25 Patch425patches10571
 
Latest

Enhanced the performance of Binary Router Snap via more efficient IO utilization.

4.25main9554
 
Stable

Enhanced the HTTP Router Snap to support Ultra Pipelines.

4.24main8556
 
Stable

Added the Ignore empty stream checkbox to the Gate Snap Settings

4.23main7430
 
Stable

Enhances the Data Validator Snap by making the Constraint value field as optional under the Constraints.

4.22main6403
 
StableUpgraded with the latest SnapLogic Platform release.
4.21 Patch                     flow8855-Latest

Fixes the Binary Router Snap's failure in Ultra Pipelines by preventing a deep-copy (performing a copy of the original objects recursively) of binary data headers.

4.21snapsmrc542-StableUpgraded with the latest SnapLogic Platform release.
4.20snapsmrc535-Latest
  • Adds a new Snap, Gate, which enables you to consolidate multiple input streams into a single output document where each input stream is displayed as a label containing the list of records that were received by that input view.
  • The Pipeline Execute Snap now provides the following capabilities:
    • Specify the Snaplex on which to run child Pipelines. You can now select the Snaplex on which to run the child Pipelines through the Execute On and Snaplex Path fields. The default option is executing the child Pipeline on the same Snaplex node as the Parent, but you can also specify a different Snaplex through the drop-down list, which includes the option to manually enter a Snaplex name.
    • Configure retry logic for child Pipeline executions. You can now configure retry logic for child Pipeline executions though the following fields: Number of Retries, Retry Interval, and Timeout fields.
4.19snaprsmrc528-StableUpgraded with the latest SnapLogic Platform release.
4.18 Patchflow7743-Latest

Added a property Validate full JSON path to the Data Validator Snap to fix an issue wherein a field validation failure against a constraint does not produce an error.

4.18snapsmrc523-StableUpgraded with the latest SnapLogic Platform release.
4.17 Patchflow7637-Latest

Fixed an issue with the Data Validator Snap wherein the output fails to report all but one of the violations when there are multiple constraints of the Required type.

4.17 PatchALL7402-Latest

Pushed automatic rebuild of the latest version of each Snap Pack to SnapLogic UAT and Elastic servers.

4.17snapsmrc515-Latest

Added the Snap Execution field to all Standard-mode Snaps. In some Snaps, this field replaces the existing Execute during preview check box.

4.16snapsmrc508-Latest

Pipeline Execute Snap: Added the capability to select either document (previously supported) or binary data (new) for your input and output Views.

4.15 Patchflow6263-Latest

Improved the error messages to include the source path of the constraint for data validation failures.

4.15snapsmrc500-StableUpgraded with the latest SnapLogic Platform release.
4.14snapsmrc490-StableUpgraded with the latest SnapLogic Platform release.
4.13snapsmrc486-StableUpgraded with the latest SnapLogic Platform release.
4.12 Patchflow4895-Latest

Fixed an issue in the Data Validator Snap that made multiple copies of lineage on the error path.

4.12snapsmrc480-Stable

Resolved an issue with the Union Snap that caused excessive CPU utilization.

4.11 Patchflow4461-Latest

Fixed an issue with the Pipeline Execute Snap that could cause the parent pipeline to freeze when the child pipeline fails.

4.11 Patchflow4292 -Latest

Resolved an issue with the Union Snap in Ultra Mode that spikes the CPU utilization to ~30% during startup of 120 instances.

4.11snapsmrc465-StableUpgraded with the latest SnapLogic Platform release.
4.10snapsmrc414-StableUpgraded with the latest SnapLogic Platform release.
4.9.0 Patchflow3094-Latest

Addressed an issue in Binary Router where the Snap did not wait until all threads were completed to write data to the output views.

4.9.0 Patchflow3320-Latest

Data Validator Snap - fixed Type constraint feature.

4.9snapsmrc405-StableUpgraded with the latest SnapLogic Platform release.
4.8.0snapsmrc398
Stable

Filter: Snap-aware error handling policy enabled for Spark mode. This ensures the error handling specified on the Snap is used.

4.7.0 Patchflow2598
Latest

Addressed a possible race condition when reusing pipelines with a Pipeline Execute Snap.

4.7.0flow2297
Stable

Fixed an issue with Ultra pipeline when invoking, using Pipeline Execute, a child pipeline that contains a non-Ultra compatible Snap.

4.7.0snapsmrc382
Stable
  • Recommendation: The Pipeline Execute Snap is meant to eventually replace ForEach and Task Execute. It is suggested you use Pipeline Execute for all new pipelines and update existing pipelines at your earliest convenience.
  • Updated the Pipeline Execute Snap with Execute during preview field.
4.6.0 Patchflow1909
Latest

Resolved an issue with Union Snap slowing down pipelines.

4.6.0snapsmrc362
Stable
  • The following Snaps now support error view in Spark mode: Copy, Union.
  • ForEach: The value for the Maximum instances property is limited to a maximum of 100. A value higher than 100 will automatically be limited down to 100 during pipeline execution.
  • Pipeline Execute: Snaplex property added to let you specify the Snaplex on which to run the child pipeline.
  • Resolved an issue in Task Execute Snap that caused an internal server error (status code: 500).
  • Resolved an issue in Pipeline Execute Snap that did not show parameter suggestions when the pipeline is selected from another project.
  • Resolved an issue in Copy Snap that showed errors on the UI while the Javascript was being executed.
  • Resolved an issue in Filter Snap that failed with "could not filter the document" if upstream data for ServiceNow Query.
4.5.1flow1574
Latest
  • Resolved an issue with Pipeline Execute not able to load pipeline selected from the pipeline picker property.
  • Enhanced error handling in Pipeline Execute for when Reuse is enabled and the pipeline path is an expression whose result is not constant.
  • Resolved an issue in Pipeline Execute not including the runtime ID and state in error documents.
4.5.0snapsmrc344
Stable
  • NEW! Pipeline Execute introduced in this release. This Snap provides a way to flexibly and efficiently execute pipelines and flowing documents into and out of these executions.

  • Resolved an issue in Task Execute Snap to ensure JAVA 7 and JAVA 8 Snaplex give the same output.

  • Resolved an issue with the Router Snap routing to the wrong output when used in Spark mode

4.4.0

Stable
  • Resolved an issue with Exit Snap hanging during validation if threshold is not met.

  • Spark support added to the Copy, Filter, Router, and Union Snaps.

4.3.2

Latest
  • Resolved an issue with Task Execute where java.math.BigInteger cannot be cast to java.lang.String exception if input document variable was a numeric type.

  • Resolved an issue with Task Execute failing with expression enabled.

  • Resolved an issue with data preview not working in the ForEach Snap.

  • Resolved an issue with Execute during Preview functionality broken in the ForEach Snap.

  • Resolved an issue with ForEach Snap not representing the output schema correctly during preview.

4.3.1

Latest

Resolved an issue with the ForEach poll interval being inconsistent.

4.3.0

Stable
  • In Data Validator, the pattern option now works with partial matches.

  • Exit Snap 

    • Error handling improved to handle messages that are non-strings.

    • Exit Snap now supports expressions in the Exit error message property.

  • ForEach Snap now generates output documents when run. Output documents will also be produced if a child pipeline called by the ForEach is manually stopped.

4.2.2

Latest
  • Resolved an issue in ForEach where a recursive pipeline in synchronous mode was unable to finish execution.

  • Resolved an issue in Data Validator not working for partial matches.



August 7, 2015 (2015.25/4.2.1)
  • NEW! Exit Snap introduced in this release. This Snap forces a pipeline to stop with a failed status if it receives more records than the user-defined threshold.

  • Resolved error in ForEach Snap where an exposed error view triggered a pipeline failure.



June 27, 2015 (2015.22)

The Router Snap now supports even distribution across all output views if no expressions are defined. With this change, Routes is no longer a required field.



June 6, 2015 (2015.20)
  • Task Execute should have Execute on preview
  • Directory Browser Snap did not render output data when running from "Windows" Groundplex.


May 15, 2015

ForEach: Error was not thrown on validation if the child pipeline was not provided.



May 2, 2015
  • Binary Router: enhanced error handling
  • Filter: bug fixes
  • Router: bug fixes


December 20, 2014

Updated Snaps may include new or changed functionality or be otherwise improved.

  • Data Validator: Type constraint added.
  • Union Snap: Preserve order was removed.


July/Summer 2014
  • NEW! Binary Router Snap introduced in this release.
  • NEW! Task Execute Snap introduced in this release.


June 30, 2014
  • Data Validator (Beta Release). This Snap validates incoming documents and their attributes against constraints you define.
  • ForEach: Addressed an issue with parallel execution not working properly.


April 2014

ForEach Snap updated to support Snaplex selection and pipeline parameters.



January 2014

NEW! ForEach Snap introduced in this release.



November 2013
  • NEW! Head Snap introduced in this release.
  • NEW! Tail Snap introduced in this release.


Initial Release (June 2013)
  • Router Snap introduced in this release.
  • Copy Snap introduced in this release.
  • Union Snap introduced in this release.
  • Filter Snap introduced in this release.
Related links:

  • No labels