For Each Parallel task

You're viewing Apigee X documentation.
View Apigee Edge documentation.

The For Each Parallel task lets you run other integrations (sub-integrations) from your main integration. As the task name suggests, the sub-integrations run in parallel.

This task uses the API Trigger ID as a handle to identify the integrations to run. For example, if you specify the API Trigger ID as api_trigger/APITriggerX, the task runs all the sub-integrations that have the api_trigger/APITriggerX trigger ID.

After running a sub-integration, you can also read the response of the sub-integration in your main integration. Use this task to run sub-integrations as dependencies of the main integration.

Configure the For Each Parallel task

To configure the For Each Parallel task:

  1. Go to the Apigee UI and sign in.
  2. Select your organization using the drop-down menu in the upper left corner of the UI.
  3. Click Develop > Integrations.
  4. Search for or select the integration to edit from the Integrations list and click to open the integration designer.
  5. Click +Add a task/trigger > Tasks to view the list of available tasks.
  6. Drag the For Each Parallel task element to the integration designer.
  7. Click the For Each Parallel task element on the designer to open the For Each Parallel task configuration pane.
  8. Configure the remaining fields using the Configuration properties for the task.
  9. Changes to the properties are saved automatically.

Configuration properties

This section describes the configuration properties of the For Each Parallel task.

Input properties

Parameter Name Data type Description
List to iterate An array of type String, Integer, Double, or JSON List of values for which the sub-integrations must run. A separate sub-integration thread runs for each value in the list, and all the threads run in parallel.

You can pass the iterated value to the sub-integration by setting the Where to map individual array elements field. In this field, specify the variable in the sub-integration to which the iterated value maps.

You can also pass additional values from the main integration to the sub-integration in the Map to additional sub-integration input(s) field. This field takes values in the form of key-value pairs, where the key is a variable in the main integration, and the value is the corresponding input variable in the sub-integration. For example, suppose your main integration has the productID variable, which you want to map to the subIntProductID sub-integration variable; you must select productID from the Integration variable to map from field and enter subIntProductID in the Subintegration input to map to field.

If the Run a single integration option is selected, the UI displays the Collect values from subintegration output(s) section. This lets you map the sub-integration output variables to the main integration variables. Select the sub-integration variable from the Subintegration output to collect from drop-down and the corresponding main integration variable from the Integration variable to collect into drop-down.

API Trigger ID String Trigger ID of the sub-integration to run.

This value is available in the Trigger ID field of the API Trigger in the sub-integration.

Execution strategy N/A

SYNC: Runs the sub-integrations in synchronous mode. In this mode, the main integration waits for the sub-integrations to complete before continuing with the downstream tasks.

ASYNC: Runs the sub-integrations in asynchronous mode. In this mode, the main integration does not wait for the sub-integrations to complete. Immediately after calling the sub-integrations, the main integration runs the downstream tasks.

Run all integrations with this API Trigger ID N/A Runs all integrations that have the same API Trigger ID. For example, if integration A and integration B, have the same API Trigger ID, both the integrations A and B are run.

Note: If you select this option, the response from the sub-integrations is not be available in the main integration. If you want to use the response of the sub-integrations, select the Run a single integration option.

Run a single integration N/A Runs only the integration specified in the Integration name field. You can use the response from the sub-integrations by configuring the Collect values from subintegration output(s) section.

Where to map individual array elements String The name of the sub-integration input variable where the array elements should be mapped. The array elements can be mapped directly to a sub-integration input variable. If a single sub-integration is selected, you can select the sub-integration input variable from a dropdown list.
Map to additional sub-integration input(s) String Additional sub-integration mapping option.
  • Integration variable to map from: The name of the variable in the current integration to be passed to the sub-integration's input variable.
  • Sub-integration input to map to: The name of the sub-integration input variable to map to.
Collect values from sub-integration output(s) String If the execution strategy is synchronous and a single sub-integration is selected, the outputs of the sub-integration can be collected into array variables in the current integration.
  • Sub-integration output to collect from: The name of the sub-integration output variable to be aggregated.
  • Integration variable to collect into: The name of the variable in the current integration to collect the aggregated outputs.
Integrations to execute at a time (parallel) Integer Maximum number of parallel executions allowed for sub-integrations. The default value is 99.

All sub-integrations in a cohort run completely before the next cohort of sub-integrations run.

Ignore failures Boolean

You can specify any one of the following values:

  • True: Failure of a sub-integration in a cohort does not affect the success or failure of other sub-integrations in the cohort.
  • False: Failure of a sub-integration in a cohort causes failure of all the sub-integrations in the cohort.

Retry on failure

You can configure various retry strategies to handle errors in a task. The retry strategies allow you to specify how to rerun the task in case of an error. For more information, see Error handling strategies.

Best practices

We recommend the following best practices when using the For Each Parallel task:

  • Set your cohort size based on any quota limitations imposed by your sub-integrations.
  • Use a SYNC execution strategy when you want to collect the output of the sub-integration for later use.
  • Use an ASYNC execution strategy when your sub-integration might run longer than 2 minutes.

Considerations

In general, do not use a SYNC execution strategy if your sub-integration takes longer than 2 minutes to run or you plan to use this task in conjunction with naturally asynchronous tasks like the Approval task.