chesterdocs

#Call another process or an agent

A call activity starts the production deployment of another process or agent, passes it the input fields its start expects, and waits until that run is finished.

#What happens when the process reaches it

sequenceDiagram
  participant P as This process
  participant C as Call activity
  participant T as Target (production deployment)
  P->>C: Reach the call activity
  C->>C: Work out the input parameters
  C->>T: Start a run at the chosen start event
  Note over C: waits — no time limit
  T-->>C: Finished: the results of its steps,<br/>or the agent's answer
  C->>P: Continue with the next step

The target always runs its production deployment — also when this process itself runs as a development deployment. A target without an active production deployment cannot be called: the step fails.

#Configure a call activity

  1. Target process: click +. Select target lists, on two tabs, the Processes and Agents that have a production deployment and can be started. The process you are editing is not offered. ↗ opens the target.
  2. For an agent: pick the agent's task in the Aufgabe group. Without a choice, the task shown in the hint is used when the process runs. See Let an agent call its own tasks.
  3. Input parameters: one field per input field the target expects, required ones first. Fill each with a value, a variable or an expression. For a process with more than one plain start event, first pick the start in Ziel-Start-Event.

Changing the target clears the chosen start event and the input parameters.

The called run sees only the input parameters, stored under the target's start event, and the person who started this process, as __INITIATOR.

#What the call activity hands on

Target What the next steps find under the call activity's id
An agent The agent's answer: the fields of the task's response if it declares them, otherwise text and the details of the run
A process The result of every step of the called run, by that step's id

⚠️ For a process target, the variable list offers no fields of the call activity, so its results cannot be picked in later steps. See Work with process data.

A multi-instance call activity hands on a list, one entry per finished run: CallActivity_x[0]….

#Call it once per item

Switch on Enable multi-instance in the Multi-instance group. Pass the current item to the target as an input parameter — __loop.item. The completion rule can be the first completion, all completions, or a number of completions; the runs still going are then cancelled.

With Sequential, the runs happen one at a time: the next starts once the one before has ended.

⚠️ The labels Sequentiell, Collection Quelle and Abschlussbedingung are German whatever the language of the screen. See Run a step once per item.

#When the called run fails

The call activity fails with "Called workflow completed with error"; the reason is in the called run's own history. An error boundary event on the call activity catches it — any failure, without a filter by code. Without one, this instance fails too. Cancelling this instance also cancels the called run.

A process may call a process that calls it back. Such a chain stops with an error after 10 levels, counting sub-processes too.

In monitoring, the call activity's row expands to the steps of the called run. The called run is not listed as an instance of its own in the instance list.

#Limits

  • ⚠️ No time limit. The call activity waits as long as the called run takes.
  • ⚠️ Required inputs are not enforced. An empty required field is only marked; the deployment and the run go ahead.
  • ⚠️ Input parameters are not checked by validation. A broken expression in them is only shown on the field, and the process still counts as valid.
  • ⚠️ The group Aufgabe, its placeholder, Ziel-Start-Event and the error "Das Ziel konnte nicht geladen werden" are German whatever the language of the screen — while the English hint calls the group "Task".
  • ⚠️ The called run starts at the target's production deployment as it is when the step is reached — deploying a new version of the target changes what running processes call.

#What validation checks

  • A target must be selected.
  • An agent target must have at least one task.
  • A non-task start or a task that no longer exists, and references to result fields the agent's task does not declare, get warnings.

The messages are shown in German. See Check that a process can run.