Service Process Modeling

A service process is a stateless, high performance process that is not audited or persistent. Service processes run in-memory and so they should be of short duration and have a single function. For example, retrieving information from a database.

Service processes should be free of side effects. In other words, they should not change anything outside the scope of the process itself, like updating mission critical data. This is because service processes are not transactional and therefore, there is no provision to roll back changes if a task fails.

When modeling a service process, you must specify a deployment target. You can deploy service processes to either:

The deployment target you choose depends on whether you are invoking your service processes from business or pageflow processes.

You can invoke a service process from the following process types:

When you are invoking a service process from a sub-process, your service process must have a start event of type None.

As service processes should be of short duration and have only one function, the following activity types are not supported in service processes.

Activity Type Description
User tasks No direct user interaction with a service process is supported.
Manual ad-hoc activities No direct user interaction with a service process is supported.
Event sub-processes responding to externally sourced API calls and inter-process signals. This could result in unacceptably long pauses and, as service processes can be invoked from both pageflows and business services, this feature is disabled for service processes. Event sub-processes for local process signals are supported.
Attached Sub-process calls to non-service process types. Service processes can only synchronously invoke other service processes. (They must have the same deployment targets set). However, they can invoke conventional stateful business processes in asynchronous-detached mode.
Non-boundary timers Timers that pause rather than monitor the execution of a thread of a service process are not supported.

A service process is stored under the Processes branch of the Project Explorer alongside business and pageflow processes.

Example - Calling a Service Process from a Sub-Process

This example shows how to model a business process that invokes a service process from a sub-process:

In this example, a Find Case Reference script task finds the customer's case reference. The Fetch Registered Customer sub-process calls the following service process:

The Fetch Registered Customer sub-process invokes a service process. To enable your service process to be called from a sub-process, the service process must have a start type of none. The script task in the service process retrieves the customer details for the supplied customer case reference. The Show Registered Customer user task displays the details of the registered customer.