How do I add a loop to my workflow?

Taverna does not support looping in the sense that there are no cycles within a workflow graph.

Taverna 2.x supports looping in the sense that it allows you to invoke a service until a particular condition is satisfied. For example, it allows you to poll an asynchronous service until the result is available. To create a loop on a service in Taverna 2.x, select the service in the Workflow Diagram and then click on the Details in the Workflow Explorer. Select Advanced and click Add looping. A pop-up window will then allow you to select an output port and the conditions of your loop.

Taverna 1.7.x supports iteration over a set of independent jobs (and combinatios over this iteration so allowing “all against all” and similar strategies). Taverna’s capabilities correspond to a “for” loop with no side effects in an imperative language such as Java. It is possible to implement side effecting loops through external stores and nested workflows but this is not recommended – if you really need this then it is possible. Recursive invocation similarly can be hacked together but it is not “clean”.