Taverna does not support looping in the sense that there can't be cycles within a workflow graph - output from a service can only be connected to "downstream" inputs.

Taverna 2.x supports looping (i.e. "while loop") in the sense that it allows you to invoke a service repeatedly 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:

  1. Select the service in the Workflow Diagram - this may be a nested workflow
  2. Click on the Details in the Workflow Explorer
  3. Select Advanced and click Add looping.
  4. A pop-up window will then allow you to select an output port and the conditions of your loop.

Details of how to configure looping are in the looping section of the user manual.

Taverna also supports implicit iteration (e.g. for-loop) - if a list of values is presented to an input port that takes a single value (or list of list to a port taking a single list), then Taverna will repeatedly call the service to produce a new list ov all the results at the output ports. If iteration on a service happens over multiple ports, the way of iteration can be configured in the List handling.