Call Subprocess is used to call an external Subprocess. A Subprocess is a special kind of Process that can be executed from other Processes. The parameters given to Call Subprocess corresponds to the Manual Trigger parameters defined in the Subprocess.
The return type of a Call Subprocess is dynamic and is defined by the Subprocess. Values and objects returned from a Subprocess to the calling Process are first serialized, and then deserialized in the caller. Therefore, if you return object from a Subprocess you can access it by dot notation without additional conversions.
Call Subprocess can have Error Handlers attached.
A Subprocess call can be configured to be a remote call by enabling "Remote call" under "Show advanced settings".
To configure a remote Subprocess call the destination Agent group needs to be defined for each Environment.
Remote Subprocesses are executed over a Service Bus connection, there is a separate message sent as a request and another message as the result response. This may cause latency to the execution either due to congestion or network latency. This may make it unsuitable for use with HTTP or API Triggers due to the delay. The execution may even fail due to a Service Bus error which cannot be handled with the built-in retries.
Example remote Subprocess call configuration:
If the Process is run in:
Development Environment the subprocesswill be executed in the Development Agent group.
TestCount Environment the subprocess will not be executed and the Process execution will fail.
Test Environment the subprocess will be executed in the TestOnPremise Agent group.
Production Environment the subprocess will be executed in the ProductionOnPremise Agent group.