Start Process Smart Service

Overview

This article provides guidance on how to use the Start Process Smart Service in your process models and interfaces. The Start Process Smart Service allows you to initiate a process from another process, a web API, or an interface. The new process is started asynchronously, and the process flow of the current process continues immediately after all activity-chaining completes.

Permissions Needed

The behavior of the node depends on the permissions of the user running the smart service. The following table details the result of running the smart service given different permission levels.

Properties

Permission Level Result of Executing Smart Service
Deny or Not in Role Map The smart service errors, generating an error message for the process administrators and pausing the process
Initiator The process is started, but only the process instance ID (processInfo.pp.id) is populated in the process info variable. All other process info values will be null
Viewer and Above The process is started, and all process model properties, process instance properties, and process variable values are populated in the process info output value

Properties

  • Category: Process Management

  • Icon: Start Process Icon

  • Assignment Options: Unattended/Attended - Note: When this smart service is attended, the form that the user sees is the form configured on the node, not the start form for the specified process model.

Configuration Options

This section contains tab configuration details specific to this smart service. For more information about common configurations see the Process Node Properties page.

Data Tab

Node Inputs

Input Data Type Description Required Multiple
Process Model Process Model The process model to start asynchronously Yes No
Process Parameters Dictionary A dictionary containing the parameters for the process and their values No No

The Process Parameters property is a dictionary where the keys are process parameter names and the values are parmeters' values. If any required parameters are missing or if the dictionary contains any entries that do not match parameters of the selected process model, the process will not start.

For example, if you have a process model that controls an employee review cycle, it might have a required parameter named employeeId and optional parameters named deadline and reasonCode.

To successfully start this process, the Process Parameters input would look like one of the following:

1
2
3
{
    employeeId: 12345
}
1
2
3
4
{
    employeeId: 12345,
    deadline: today()+30
}
1
2
3
4
5
{
    employeeId: 12345,
    deadline: today()+30,
    reasonCode: "ANNUAL"
}

In the following examples, the process would not start. For the first two cases, the reason is that the required process model parameter, employeeId, was not provided. For the third case the reason is that an entry in the Process Parameters input, supervisorId, did not match any of the parameters of the process model.

1
2
3
{
    
}
1
2
3
{
    deadline: today()+30
}
1
2
3
4
{
    employeeId: 12345,
    supervisorId: 6789
}

Node Outputs

Output Data Type Description
Process Info ProcessInfo Contains information about the process that was started, its model, and the values of its process variables

a!startProcess()

The Start Process smart service is available as an expression function that can be executed inside a saveInto on a Interface Component or as part of a Web API. To learn more about using this function in interfaces, see Starting Processes From an Interface.

Syntax

a!startProcess(processModel, processParameters, onSuccess, onError)

Inputs

  • processModel (Process Model): The process model to start asynchronously.
  • processParameters (Dictionary): A dictionary containing the parameters for the process and their values.
  • onSuccess (Any Type): A list of saves or an HTTP response to execute after the smart service executes successfully. Created with a!save() or a!httpResponse(). The following function variable is available when configuring this input:
    • fv!processInfo (ProcessInfo): Process properties of the process that was started (such as fv!processInfo.pp.id), properties of the process model (such as fv!processInfo.pm.name), and the values of process variables (such as fv!processInfo.pv.employeeId) once all initial activity-chaining is complete.
  • onError (Any Type): A list of saves or an HTTP response to execute when the smart service does not execute successfully. Created with a!save() or a!httpResponse().

Leveraging Activity-Chaining

This smart service follows activity-chaining, completing only when the activity chain is complete or broken. The smart service then returns the process variables as of the completion of activity chaining through the processInfo.pv output. This means that the Start Process smart service can be used to complete multiple smart services and retrieve the results of the smart services from within an interface or web API. This can be a very powerful tool. Nonetheless, consider the following notes when using activity-chaining in conjunction with the Start Process smart service to ensure you use the smart service properly:

  • The smart service may take a long time to complete if you have activity-chaining from the start node in your target process model. Ensure that only nodes whose execution is critical to your original process or form should be included in the initial chain on the target process. Per documentation on configuring activity-chaining, long activity chains are strongly discouraged.
  • If a chained flow encounters an attended activity, the activity will be assigned to the user that the Start Process smart service was run as, but it will not open the associated form.
  • The "onError" parameter will only evaluate if the process fails to start. It will not evaluate if a node in the started process pauses by exception.
FEEDBACK