Skip to end of metadata
Go to start of metadata


Control links enable you to set dependencies between services in a workflow that do not directly share data (i.e. that are not otherwise linked by passing data from one to the other directly or indirectly). A control link allows you to delay the invocation of a service until another has finished.

This can often be the case where two services depend on some external state, for instance a write to database followed by a query database. If you are unable to connect an output port of write to query, there is nothing preventing query from running too early unless you add a control link.

You might also need to use control links when using asynchronous services, to avoid calling getResults before checkStatus says the service has finished. (See the section on Looping.)

Taverna tutorial 2014: Advanced Taverna features includes an exercise on Control links.


  1. From the Workflow Diagram, right-click the service that you want to delay the invocation of.
  2. Select run after from the menu.
  3. Select the service you want to invoke first.

A control link will be added between the 2 operations.

This control link means that Get_text_result will not be run before checkStatus has completed.

Control links waits for iteration to finish

If implicit iteration is performed on the upstream service, the control link will not be activated until all values have been iterated over upstream. 

Errors are also completions

Note that a service is said to have _completed_ even if it returned an error in one or more of its iterations.

Taverna 2 requires all parts of the workflow to return a value, even if it is an error document. Downstream services receiving an error should normally return a new, derived error directly - but error documents are not delivered to control links.

  1. From Control links in the Workflow Explorer, right-click the control link to delete and select Delete control link.

What is the control link called?

The control link's name is based on the services it connects, for instance:
Get_text_results runs after checkStatus

You may also delete control links from the diagram, but as they are small, they can be difficult to select unless you zoom in.



  • None