This documentation supports the 20.08 version of BMC Helix Platform. 
To view an earlier version, select 20.02 from the Product version menu.

Creating process steps or activities

A process has a sequence of steps that flows from start to end. In Business Process Model and Notation (BPMN), a step is referred as an activity. Activities are the building blocks of a business process. You can use activities with other process elements to create a business process flow. In Process designer, use the Activities elements to include an activity in a process. You can drag these elements to the canvas according to the business logic that you want to create.

Types of Activities

You can use the following types of activities in a process: 

Call Activity

A Call Activity element calls another process referring to a process definition that is previously defined and is available for reuse or application integration. When a process execution arrives in the Call Activity, a new execution is created. The new execution is a sub-execution of the execution that arrives in the Call Activity. This sub-execution is then used to execute an instance of the process referred by Call Activity, thereby creating parallel child execution within a regular process. The main execution waits until the called process is completed, and then the original process continues. Call Activity is used in scenarios such as:

  • Application integration, such as Incident application call in Task Manager application
  • Business procedure reuse
  • Runtime determination of process to be invoked, such as Approval Flow, where different approval request are used in different Approval Flow.
 Call Activity properties and their description
Property  Description
Called Process

Option to specify the process to be called:

  • Select Process: You can select a predefined process that is invoked by the Call Activity.
  • Build Expression: You can build an expression that resolves to a process definition name or a process definition GUID that is invoked by the Call Activity. You can get the process definition GUID in the Process designer JSON view. If the expression is resolved to a process definition name, ensure that you update the expression when the process definition is renamed.
Sample Process

When the Called Process is configured as an expression, Sample Process property is displayed. This is an optional property. It allows you to configure the input map and output map of the called process in the Process designer, even if the process to be called is decided at the runtime.

INPUT MAP

Parameters of the referenced process that were specified as required. You must build an expression to provide values to the required parameters so that the system can execute the referenced process.

You can also provide a list as an input variable to this element. For more information about lists, see Creating lists from processes.

OUTPUT MAP

Process parameters that you want to obtain as output values from this element. You can build an expression for assigning an output value to a process variable.

You can also provide a list as an output variable to this element. For more information about lists, see Creating lists from processes.

MULTI INSTANCE LOOPSee To enable multi instance loop.

User Task

The User Task element models a user performing a task. The task is represented by a record. The task is considered as complete if the completion criteria is satisfied. You can use a Timer event with the User Task activity. The Time event interrupts a wait step and lets the process make a decision about how to proceed after the wait step times out. For more information about the Timer event, see Adding a Timer event to a wait step.

 User Task properties and their description
PropertyDescription
Mode

Option to use a new record or an existing record to represent a task. You can select from the following options:

  • Create Record
  • Update Record
Record Definition

 Name of the record definition for which you want to represent a task.

Record ID

The record instance or the record instance ID that you want to update. If a task is represented using an existing record, you must configure the record ID. The record instance if passed can only refer to a transaction entry (record entry passed from a rule to a process parameter).

This field is available only if you select Update Record in the Mode field.

Completion Criteria

Criteria that specifies when this user task is considered as complete. The criteria is a condition expression that evaluates fields of a task record. 

INPUT MAP

Fields of the record definition that are assigned a value using the expression builder. You can set the value of a record field through a process parameter. This value is used to create or update a record instance.

For example, a record definition has a field called EmployeeName and the process has a parameter called EmpName. You can build an expression that assigns EmpName to the field EmployeeName. As the EmployeeName and EmpName parameters are mapped by the expression, the process uses the value in the EmpName parameter to set the EmployeeName field of the record instance that the process creates or modifies.

OUTPUT MAPProcess parameters that you want to obtain as output values from this User Task element. You can build an expression for assigning an output value to a process variable.
CANCELLATION INPUT MAP

Parameters that you want to set if the user task is cancelled. A user task can be cancelled in the following conditions:

  • When the user task is active and the process instance is cancelled
  • When the user task is active and an associated timer times out.
MULTI INSTANCE LOOPSee To enable multi instance loop.

Receive Task

A Receive Task element models a wait step in the process that waits for the arrival of a message. It is typically used with connectors, where the connector initiates an asynchronous request to the integration target. Receive Task waits for the integration target to finish the request and call back. Integration target uses SignalProcessInstanceCommand to call back the Receive Task and then the process execution continues. SignalProcessInstanceCommand has correlation ID that uniquely identifies the Receive Task of a process instance. For more information about SignalProcessInstanceCommand, see Platform Application Java API Documentation.

You can use a Timer event with the Receive Task activity. The Time event interrupts a wait step and lets the process make a decision about how to proceed after the wait step times out. For more information about the Timer event, see Adding a Timer event to a wait step.

The following images illustrates an example of a Receive Task:

 Receive Task properties and their description
PropertyDescription
SIGNAL INPUT PARAMETERSNames of the process variable that is used by the signal process instance command.
SIGNAL PARAMETERSNames of process variables that receive inputs from signal process command.
MULTI INSTANCE LOOPSee To enable multi instance loop.

Sub-Process

A Sub-Process is an element that contains other activities, gateways, events, and so on which form a process that is part of another process. A Sub-Process can only be used inside a parent process. It cannot be invoked by another process using a Call Activity. A process that is defined in a Sub-Process element is not reusable, that is, other processes cannot call this process through the Call Activity element. You can pass a list as an input or output variable to this element. For more information about lists, see Creating lists from processes.

A Sub-Process is used to enhance process readability, to group certain steps to create a logic group, and present the user with high level steps. As Sub-Process is part of the parent process, if you move elements to a Sub-Process, all expressions configured on these elements continue to work.

Service Task

A Service Task element is used to invoke a Java service method that is exposed as Action Type using @Action annotation. You can create your own Service Task. To create a Service Task, you can use BMC Helix Platform SDK to create service classes, package the classes in your smart bundle and annotate methods as Action Type in the service class. The advantage of Service Task is that you can extend the platform by creating your own service, and integrate it seamlessly in BMC Helix Innovation Studio. See Creating a custom service in Java.

 Service Task properties and their description
PropertyDescription
Action Type NameName of the Action Type that performs Service Task. This field is populated automatically.
Run as

It allows execution of Service Task with permissions inherited from the process or the selected user role.

  • You can be set this field to Inherit from Process or Administrator to allow workflow to successfully perform the task on behalf of the user.
  • If the Service Task does a query in a record definition where data has row level permission enforced, set this field to Current UserCurrent User refers to the user who started the process.
INPUT MAP It defines the data binding of the action input. Inputs are defined in the Java service method as input parameters.
OUTPUT MAP

It defines the data binding of the action result. The result is a return object of the Java service method. You can use this to save the activity result to a process variable.

Important: It is recommended to use expression to pass the activity result to other activities.

MULTI INSTANCE LOOPSee To enable multi instance loop.

To add Activities in processes

Important

Application business analysts can customize the objects developed in their own applications and that are marked customizable by the developers, but cannot customize the objects developed in com.bmc.arsys. For example, objects in core BMC applications like Foundation, Approval, and Assignment cannot be customized.

  1. In the Process designer, you can drag and drop the activity elements to the canvas according to the business logic that you want to create.
  2. Enter the required properties of the activity element. 
  3. Click Save.

To enable multi instance loop

A multi instance loop defines process activity repetition. It allows execution of an activity for each item in a data array. Multi instance loop is available with Call Activity, User Task, Sub-Process, and Service Task Activities.

  1. In the Process designer, select the activity element for which you want to use Multi instance loop.
  2. In the Properties pane, in the MULTI INSTANCE LOOP section, enter the values for the following properties:

    PropertyDescription
    Loop Type

     It allows executing a certain activity for each item in a given collection, sequentially or in parallel.

    Important: If you do not select the Loop Type, multi instance loop is not enabled on the activity.

    Loop Data Input

    An expression that represents a collection of items. It refers to an array of data such as list of task records, or a list of approvers.

    Input Data Item

    A process variable that represents data type of each item. It is assigned with a value from the Loop Data Input array (such as a task record or name of an approver).

    You can also provide a list as an input variable to this element. For more information about lists, see Creating lists from processes.

    Completion Criteria(Optional) If you do not want the process to loop through all data, configure Completion Criteria
    A multi instance activity ends when all instances are finished. However, it is possible to specify an expression that is evaluated every time an instance ends. When this expression evaluates to true, all remaining instances are deleted and the multi instance activity ends. The process continues thereafter.
    For example, in an approval use case, you can use completion condition to define if 3 out of 5 approvers approve the request, the loop is considered complete.
  3. Click Save.

Multi instance loop example

The following images illustrates a process, where the process fetches a list of records. For each record, it updates the record integer field, and appends the record display ID to a process variable IDs. Record handling is done in a Sub-Process, where update record and append IDs steps are performed. In this example, Multi instance loop is defined on the Sub-Process.

The following images show sample configuration of the process variable and the process steps (Get Loop Source Records, Sub Process, Increment Integer Field and Append Display ID) for the above process:

Process stepsSample configuration
Process variable

Get Loop Source Records

Sub-Process

Increment Integer Field

Append Display ID

Related topic

Defining the application business logic through processes

Was this page helpful? Yes No Submitting... Thank you

Comments