It's common to need to be able to run the same integration against multiple sets of connections. For example, you might have an integration that a large number of customers are going to use. The integration for each customer is the same but you need to iterate through each customer, using the appropriate connection details for each one.
Flowgear allows you to inject a Connection ID directly into the Connection property of a Connector but you'll also need to decide how best to process all connections - there are two approaches.
First, if you want to be able to independently start/stop and schedule the integration, you can use Scheduler/Worker pattern.
Second, if you have a large number of integrations, you can store the connection details in a Configuration and use an Iterator/Worker pattern
We discuss these two options below.
In this pattern you design a Worker workflow. Using inputs on the variable bar, you allow the connection ID's to be received into the Workflow and injected into the relevant connectors.
You then create multiple scheduler Workflows - one for each customer in our example. In the Scheduler Workflow, you add an appropriate Scheduler and then call the Worker Workflow.
In this pattern the Worker workflow is identical to the one we identified above but this time we're going to have a single Iterator Workflow (as opposed to multiple Scheduler workflows).
For the Iterator Workflow, add a Variable Bar, then add a Configuration property to it (choose
Configuration Property in the drop-down on the far right) and then provide a Configuration name.
The Configuration is going to look something like this:
<Client salesforceConnectionId="6295e76e-4108-47c8-987c-2fd7a96154ec" sapBusinessOneConnectionId="42203724-7d08-4143-b926-6dad8bf92646" />
<Client salesforceConnectionId="1c828453-924d-4dfe-a6db-5b22fb4923a8" sapBusinessOneConnectionId="efcde70d-b31c-445b-970f-63ba74005fb1" />
You'll structure the document based on the endpoints you need to specify Connections for but the idea is to have a single document that holds all those mappings - one set of mappings per client in our case.
Next, add a Splitter to iterate over all of the configuration records you're defining (set the
Encapsulation options as shown here.
Then, use XML Match to pull out the fields you need for the Worker Workflow.
Finally, call the Worker Workflow:
Now, instead of placing the Configuration XML in the Workflow design, you can define it as a Configuration on the Flowgear Site itself. This enables you to change the Configuration without having to modify the Workflow design.
On the Workflow design pane, click Settings, then toggle
Allow Run on Demand and
Can Run Always
Next go to the Workflow landing Pane and click Configure:
Configuration property that we defined, paste in the Configuration XML from further up and click Save. Allow a few minutes for the Configuration to propagate and you're all set.
Note that the completed Iterator Workflow will likely also include a Scheduler.