Creating process steps or activities


A process has a sequence of steps that flows from start to end. In the 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 the activities with the 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 that refers to a process definition that was previously defined and is available for reuse or application integration. When a process execution arrives in the Call Activity, a new, subexecution is created. This subexecution is then used to execute an instance of the process referred by Call Activity, thereby creating a 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 a Task Manager application
  • Business procedure reuse
  • Runtime determination of a process to be invoked, such as Approval Flow, where different approval request are used in different Approval Flows.
Call Activity properties and their description

Property 

 Description

Called Process

Option to specify the process to be called:

  • Select Process DefinitionYou can select a predefined process that the Call Activity invokes.
  • Build ExpressionYou can build an expression that resolves to a process definition name or a process definition GUID that the Call Activity invokes. 
    • You can get the process definition GUID in the Process designer JSON view.
      If the expression is resolved to a process definition name, make sure that you update the expression when the process definition is renamed.

Sample Process

(Optional) When the Called Process is configured as an expression, the Sample Process property is displayed.
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 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 LOOP

User Task

The User Task element models a user performing a task. A record represents the task. The task is considered complete if the completion criteria are satisfied. In addition, you can use a Timer event with the User Task activity. The Timer event interrupts a wait step and allows the process to decide on 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

Property

Description

Mode

Option to use a new record or an existing record to represent a task.

  • New Record
  • Existing Record

Record Definition

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

Record ID

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 Existing Record in the Mode field.

Completion Criteria

Criteria that specify when this user task is considered complete. The criteria is a condition 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 expression maps the EmployeeName and EmpName parameters, 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 MAP

Process 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 canceled in the following conditions:

  • When the user task is active and the process instance is canceled.
  • When the user task is active and an associated timer times out.

MULTI INSTANCE LOOP

For more information, see 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. The integration target uses the SignalProcessInstanceCommand to call back the Receive Task and then the process execution continues. The SignalProcessInstanceCommand has a correlation ID that uniquely identifies the Receive Task of a process instance. For more information about SignalProcessInstanceCommand, see "API Documentation" in PDFs-videos-and-API-documentation.

You can use a Timer event with the Receive Task activity. The Timer event interrupts a wait step, allowing the process to 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 illustrate an example of a Receive Task:

22_1_ReceiveTask.PNG

Receive Task properties and their descriptions

Property

Description

SIGNAL INPUT PARAMETERS

Names of the process variable that is used by the signal process instance command.

SIGNAL PARAMETERS

Names of process variables that receive inputs from signal process command.

MULTI INSTANCE LOOP

For more information, see 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 element can only be used inside a parent process and is not reusable. It cannot be invoked by another process using a Call Activity. 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 element is used to enhance process readability, 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, all expressions configured on these elements continue to work if you move elements to a Sub-Process.

Service Task

A Service Task element is used to invoke a Java service method that is exposed as an Action Type using the @Action annotation. You can create your own Service Task. By using BMC Helix Innovation Studio 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 a Service Task is that you can extend the platform by creating your own service and integrate it seamlessly in BMC Helix Innovation Studio. For more information, see Creating-a-custom-service-in-Java.

Service Task properties and their description

Property

Description

Action Type Name

Name of the Action Type that performs the Service Task. This field is populated automatically.

Run as

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

  • You can set this field to Inherit from Process or Administrator to allow the 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 User
    Current User refers to the user who started the process.

INPUT MAP

 Property that defines the data binding of the action input. Which are defined in the Java service method as input parameters.

OUTPUT MAP

Property that defines the data binding of the action result. Which is a return object of the Java service method.
Use this property to save the activity result to a process variable.

Important: We recommend that you use an expression to pass the activity result to other activities.

MULTI INSTANCE LOOP

For more information, see To enable multi instance loop.

To add Activities in processes

Important

Application business analysts can customize the objects developed in their applications and that are marked customizable by the administrator, but cannot customize the objects developed in com.bmc.arsys in Best Practice Customization mode. For example, objects in core BMC applications like Foundation, Approval, and Assignment cannot be customized in Best Practice Customization mode. For more information, see Customization-layer.

  1. In the Process designer, drag 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:

    Property

    Description

    Loop Type

     The property that 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) Property that prevents the process from looping through all data.
    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 that if 3 out of 5 approvers approve the request, the loop is considered complete.

  3. Click Save.

Multi instance loop example

The following images illustrate 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 ID. 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.

22_1_TLoop.PNG

The following images show sample configurations 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 steps

Sample configuration

Add Process variable

22_1_loop config_add variable.PNG

Configure Get Loop Source Records

22_1_Get Loop Source Records.PNG

Add Sub-Process

22_1_loop config.PNG

Configure Increment Integer Field

22_1_Update Record TLoop.PNG

Add Append Display ID

22_1_Append Display ID.PNG

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*