The Call Process activity calls and executes an existing direct subprocess. Input data specified on the called subprocess is used by the Call Process activity.
The General tab has the following fields.
|Name||The name to be displayed as the label for the activity in the process.|
|Process Name|| The subprocess you want to call. Click the
icon or the
icon to select a direct subprocess.
Tip: An alternative way to call a subprocess contained in the same project, enter the name of the package and the name of the subprocess, separated by a period, in this field. In this example, <PackageA> is the name of the package, and <Process1> is the name of the subprocess.
To call a subprocess in a separate project, enter the name of the project, the name of the package, and the name of the subprocess, separated by periods, in this field. In this example, the name of the project is<ProjectB>, the name of the package is <PackageB>, and the name of the subprocess is <SubProcess2>.
|Process Name Dynamic override||Configuring this field is optional. Use this field to dynamically determine the subprocess to call when the process instance is running. Click the Edit XPath Expression icon to specify a value for this field in the XPath Builder wizard. For additional details, refer to Dynamically Determining the Process to Call.|
|Spawn||Optional. If you select the Spawn check box, the parent process does not wait for the called subprocess to complete, the subprocess is executed in a separate process instance, and the parent process cannot access the output of the called process.|
The following is the input for the activity.
The following is the output for the activity.
The Fault tab lists faults that the called subprocess might throw with a Throw activity. To deal with these faults, add a Catch Specific, or Catch All block to the Call Process activity.
Dynamically Determining the Process to Call
You can use the Process Name Dynamic Override field on the General tab to specify an XPath expression that determines which direct subprocess to call. This is useful for calling a different direct subprocess depending upon the value of the XPath expression. For example, you have an incoming HTTP request that contains an attribute named orderAmount
For all incoming orders over $10,000, you want to call a direct subprocess that includes activities in the Manual Work palette to obtain the proper approvals. For orders under $10,000, you want to call a direct subprocess that handles the order automatically. You can create the following expression that resolves to the proper direct subprocess name for each type of order:
if($IncomingOrer/orderAmount > 10000) then then 'MyProject.manualApproval' else 'MyProject.processOrder'
Use the full path and name of the direct subprocess file as stored in the project directory.