In this article

Overview

Use this Snap to consolidate multiple input streams into a single output document, where each input stream is displayed as a label containing the records that were received by that input view.

Note that this Snap does not complete executing until the execution of all upstream Snaps is done.

The Gate Snap always produces an output document, regardless of how many or if no input documents are received. In some Pipeline designs, this functionality can trigger an error message stating, mapped variables are missing, during validation. This error typically occurs when a downstream Snap expects a field based off an output document from the Gate Snap that is empty.

To prevent the error from occurring, you can limit empty documents output from the Gate Snap by inserting a Filter Snap after it with the following expression:

!$.isEmpty()

When you run the Pipeline after adding the Filter Snap with this expression, the Pipeline validates and executes successfully, and the error no longer occurs.

Prerequisites

Because this Snap collects multiple input documents into a single output document, there are system memory limitations, and this Snap should not be used for massive data propagation. If large amounts of data are required, offload your data prior to Snap execution. Instead, write your data to a file or database; then, after Snap execution completes, you can use a Reader Snap (such as File Reader and S3 Reader) to read from the offloaded data source.

Limitations

Troubleshooting

N/A

Snap Input and Output

Input/OutputType of ViewNumber of ViewsExamples of Compatible Upstream and Downstream SnapsDescription
Input Document
  • Min: 1
  • Max: ∞
  • Mapper
  • JSON Parser
  • Join
One or more documents containing records that must be passed on to downstream Snaps for further processing.
OutputDocument
  • Min: 1
  • Max: 1
  • Copy
  • Join
  • Common Words

A single document that contains all the records received from the various upstream Snaps.

Snap Settings

Parameter NameData TypeDescriptionDefault ValueExample 
LabelStringThe name for the Snap. You can modify this to be more specific, especially if you have more than one of the same Snap in your pipeline.N/AEnsure Complete Execution

Snap Execution

String

Specifies the execution type:

  • Validate & Execute: Performs limited execution of the Snap (up to 50 records) during Pipeline validation; performs full execution of the Snap (unlimited records) during Pipeline execution.
  • Execute only: Performs full execution of the Snap during Pipeline execution; does not execute the Snap during Pipeline validation.
  • Disabled: Disables the Snap and, by extension, its downstream Snaps.

Validate & ExecuteN/A

Examples

Combining Completed Upstream Execution Output Using the Gate Snap

This example demonstrates how you can use the Gate Snap to combine the complete output of multiple upstream Snaps into a single document. This example also shows how the Gate Snap doesn't offer any output until all upstream Snaps have completed executing.

Download this Pipeline

Understanding the Pipeline

  1. You add a File Reader Snap to the Pipeline and configure it to read a CSV file containing contact information:


  2. You add a CSV Parser Snap to read the input binary data as CSV. Once this Snap executes, you can view the contents of the file that the File Reader Snap read:


  3. You create a separate branch of the Pipeline by adding an unconnected REST Get Snap. You configure the Snap to retrieve contact data from HubSpot, which typically offers data in pages of 20 records each. You use the Has next and Next URL fields to specify how the Snap can retrieve additional pages of data. For step-by-step information on how to use the REST Get Snap to perform this task, see Retrieving Contact Information from HubSpot.


    The REST Get Snap retrieves the data in pages of 20 as requested until the value of the has-more variable changes to false:

    Note that until the REST Snap completes executing, the Gate Snap doesn't start reading data from any of its input views.



  4. You create another branch of the Pipeline by adding a JSON Generator Snap that provides customer information:


  5. You add a Gate Snap and configure it to have three input views:


    You make no further changes to the Gate Snap and connect its three inputs to each of the branches you created in the steps above.

  6. You save and run the Pipeline. The Gate Snap now collects the completed inputs from all upstream branches and offers them all as separate arrays in a single output document:


  7. To check how the Gate Snap behaves when one of the Snaps does not offer any output, you introduce an error into the REST Get Snap:


  8. You now save and re-execute the Pipeline. The Gate Snap now offers an output which contains all the data received from the File Reader and JSON Generator branches; but in the output associated with the REST Get Snap, it outputs a null record:

Download this Pipeline

Downloads


See Also

Provide links to the endpoint's official documentation, any relevant or related internal documentation, and any other links you have referred to on this page. Care should be taken when referencing external sites/documentation that it is an official site/documentation. Do not refer to forums such as stackoverflow.