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

Defining the application business logic through processes

BMC Helix Innovation Studio provides Process designer, a graphic-based interface, to create and customize business processes of a Digital Service application. Processes are the named services of an application. Business logic is the core of each application and a process is an application service that performs application business logic and achieves the application purpose. You can invoke business logic for an application by calling processes of that application. Each process has a name, inputs, and outputs. For example, Approval is the sole service of Approval application, that can be invoked by calling Approval process through REST API or through metadata.

You can design processes meant to accomplish a business goal by using the Process designer. You can also use RESTful APIs to modify processes. APIs give you more power and control over managing processes and performing actions that might not be possible through the UI.

Note

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.

Before you create a process, ensure the following:

  • You have an understanding about the process objective, required inputs, and desired output.
  • You have all the elements required to create or modify your process. If the required element in not available, you may request your developer to create and deploy it. For more information about process elements and an example of a process created in BMC Helix Innovation Studio, see Process designer elements.

Best practices for designing a process

Following are some of the best practices that you should follow when designing a process:

  • Do not create big process with lot of steps and actions. Process definitions are to visually represent a business procedure. When the process definition becomes too big, it starts to lose the benefit of a visual workflow. Use a modular approach to divide the steps in smaller sub processes. You can do this using the Sub Process or Call Activity element.
  • Ensure that you have properly thought through between writing code (using @Action) and creating a process definition. Consider the following scenarios when selecting the correct option to write code or use Process designer:
    • If the business logic needs to be visually described or if your users can configure it, design a process using the Process designer.
    • Using service task to perform self sustained unit of work, and let process manage states.
    • You can write the code if it is faster to implement a complicated logic than using the Process designer.
  • When you create a new process, concentrate on laying out the flow first. Do not focus too much on configuring each element. When the flow is completed, save the process and then continue to configure each element one by one.

Workflow for creating a process

The stages involved in creating a process is show in the image below:


 To access the Process designer and create a process

  1. Log in to BMC Helix Innovation Studio and navigate to the Workspace tab.
  2. Select the application in which you want to create a process.
  3. In the application, click the Processes tab.
  4. Click New to create a new process definition that will represent your process.
    The Start and End elements appear on the canvas by-default. A process can have only one Start and End element. If you want to configure the Start event or the End event), select the element and enter the required properties in the Properties panel.

To configure a process

You can configure process definition properties such as the process name, permissions for users who can run the process, and variables associated with the process.

Perform the following steps to configure a process:

  1. On the Process designer console, navigate to Process Information section, the Properties panel.

  2. Configure the properties as described in the following table:

    PropertyDescription
    NameName the process such that the purpose can be easily identified. For example, Employee On Boarding process.

    Note: Process name should only alphanumeric characters, hyphens, dashes and spaces.

    DescriptionProvide description that briefly explains the process objective.
    Scope/Customization Options

    Option to define the scope for a process definition. This option further contains the following options:

    • Application/Library (default)—To limit the use of the definition within the same Digital Service application or library.
    • Public—To enable the definition to be used by all the smart applications or library and allow customizations for this definition.
    EnabledSelect this option if you want to users to start using the process.
    Run asAllows all process Service Tasks to execute with the permission of the selected user role
  3. At the top right corner of the Process designer console, click Save.

To add process permissions

You can set process permissions for a group and individual role. You have two levels of permissions for processes - Read and Execute. Following are the details about the permissions levels:

  • Read: This permission gives you the privilege of viewing the process definition details. You can can view each flow element and the data bound with that element. Anyone who can view the process definition can also execute the process.
  • Execute: This permission allows you to run the process. However, you cannot necessarily be able to view the detailed configuration of the process definition. 

Tip

Assign the process Read permission to a user, such as manager, who needs to view the business process details of your application. The manager may not always be an administrator. For users other than the manager, assign the process Execute permission.


Perform the following steps to add process permissions:

  1. Click Edit in the Permissions section.
  2. In the Edit Permissions for window, click Add Permission.
  3. In the Type column, select Role or Group as required.
  4. In the Group column, select the particular role or group.
  5. Select the type of permission - Execute or Read.
  6. To add another permission, repeat steps 2 through 5.
  7. Click Save.

To add process variables

A process has the following parameters that you have to configure depending on the purpose of your process:

ParameterDescription
Input variable

Parameter values that you need to provide when starting a process instance. An input variable can be optional or required.

  • When you add a required input variable with Text data type or Record data type, the context key for the process is set automatically.

  • A context key gives a business reference to a process instance and can be used as an identifier for a process instance. When you look at the process instance in the Manage Process dashboard, you can quickly identify the process instance, and you can relate the process instance to the business use case. For example, an Approval Process that has a context key as HPD0002340 indicates that the Incident request HPD0002340 started the Approval Process.

  • If a process instance has multiple required input variables, the first input variable is used as the context key.
  • If a process does not contain any required process variables of data type Text or Record to start the process, a context key named instance is automatically added at the process run time. The context key is displayed in the Manage Processes dashboard.
  • If you have multiple required input variables and you delete the input variable that is used as the context key, the context key is assigned to a next suitable input variable.
Output variableParameter that a process instance returns on process completion.

Perform the following steps to add process parameters:

  1. In the Properties section, click Add/Remove Variables.
  2. In the Add/Remove Variables window, click Add Variable.
  3. Enter the variable field details as described in the following table:

    Field NameDescription
    NameSpecify a suitable name for the variable.
    Variable IDSpecify an unique ID for the variable. This value must be numeric.
    Variable Type

    Specify if the variable is an input/output parameter or a local variable. For an input parameter, if you select the Variable Type as Input Required and Data Type as Text or Record, a context key is set automatically. See context key.
    Process input parameters and output parameters are the interface of a process. When starting a process, data is passed to the input parameters and when the process is complete, data is received from the output parameters. The only exception to this is Record data type.

    Process local variable facilitates process execution. It can be used to capture the result of a process activity such as signal input of a Receive Task or loop data item for a multi-instance loop.

    DescriptionProvide a description that clearly indicates the purpose of this variable.
    Data TypeFrom the dropdown list, select the required data type for the variable. See Process variable data types.

    Notes:

    • If you select Record as the Data Type, you must select a Record definition that you want to associate with the parameter.
    • If you choose Selection as the Data Type, you must specify the options that are displayed in the selection list.
    • (Optional) If you select Object as the Data Type, you can select the Document definition that you want to associate with the parameter.
    Default ValueSpecify a value that you want to appear by default for the parameter.
  4. (Optional) To add more parameters, repeat step 2 through step 3.
  5. Click Save

Process variable data types

The data types Boolean, Date, Date/Time, Decimal, Floating, Integer, Object, Record, Selection, Text, Time, and Document are supported for the process variables.

The following table describes the record data type, the object data type, and the document data type:

Data typeDescription
Record

Use the Record datatype to hold a record instance. For the Record data type, a parameter is passed by reference. When a parameter is passed by reference, the caller and the receiver use the same variable for the parameter. If the receiver modifies the parameter variable, the effect is visible to the caller variable.

  • If the record data type is used as a process input parameter, and a record instance is updated by the process, the caller automatically receives the updated record instance when the process returns. You do not need to define record as the process output parameter in order to receive an updated record instance.
  • If you want to share a process by different record definitions, you can use Sample Record Definition to associate a record data type to more than one record definitions.
    • To use the Sample Record Definition, on the Add/Remove Variables window, add a variable, select the datatype of the variable as Record, and select Use Sample Data.
    • Sample Record Definition allows to refer record fields (however the record definition name of the record is not validated at the process runtime). If a record instance does not have a field referenced by a process, a null value is used.
ObjectUse the Object datatype to hold an object. For the object data type, a parameter is passed by value. When a parameter is passed by value, the caller and the receiver have two independent variables with the same value. If the receiver modifies the parameter variable, the effect is not visible to the caller.
(Optional) Object associated with Document

Use a Document to hold a JSON schema for an object. When you associate document with an Object type variable, you can expand the Object variable as per the Document schema and use the individual attributes (such as simple object, nested object, or array of objects) in a process expression. For more information, see Defining a document schema.

The following images demonstrate how to access individual attributes within a simple objects or an array of objects.

Accessing attributes in a simple object:

Accessing attributes in an array of objects:

Notes:

  • To access all the elements in an array, you must use a multi-instance loop.
  • You can associate an Object with a document only if the runtime assigned value to an Object is in the JSON format.

To add process elements

Process designer elements are the building blocks of any process. These elements perform certain actions depending on their configuration. You drag the elements onto the canvas. For information about using Process designer elements, see Process designer elements.

Adding capabilities to your process

After you create the process, consult the following topics for additional capabilities you can add to your process. 

Next taskReference
Create process steps from start to end to create a business process flow, provide the process flow order, loop through a data list, and control the execution of a process flow.

Integrate with other applications, refactoring a large process in smaller readable components, model a user performing a task so that a process resumes once the task is complete.

Add wait states, compute expression value to use the expression value in a process flow, add text annotations that provide additional information about a process, and notify process users.
Create or update record instances and define a relationship between the record instances in a process flow.
Handle errors in a process.Handling errors in a process

View the process dashboard and manage process execution such as start a process, stop a process, or resume a process.

Managing processes by using the Manage Processes dashboard

Related topics

Process designer interface

Process designer elements

Expression Editor

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

Comments