LSPS documentation logo
LSPS Documentation
Processes

A Process is defined in a process definition file, which can hold one BPMN or GO-BPMN Process. When the process is executed, it is executed directly based on the definition: no compilation or code translation takes place.

A process represents a namespace, and as such, can define process variables. It can also define parameters.

For further information on Processes and their elements, refer to GO-BPMN Modeling Language Guide.

Modeling a Process

To create a Process, do the following:

  1. In GO-BPMN Explorer, right-click the Module and go to New > Process Definition.
  2. In the dialog box, define the properties of the Process:
    • Container: parent Module
    • Type: whether the Process is goal based or a standard BPMN process without the GO-BPMN extension
    • Visibility: if Private, the Process content will not be accessible from importing modules. Also, you will not be able to use such a process in a reusable process.
    • Executable: when selected the process is instantiated as part of the model instance and can be used as a Sub-Process or as the Activity parameter of the Execute task.

      The flag marks a process that serves only for documentation purposes.

    • Instantiate Automatically: if selected, the Process is instantiated when its parent Model is instantiated and that even if it is imported in a non-executable Module.
  3. Now you can define the workflow of the Process.

    Note: Modeler is a diagram editor: you can editing the content of the Process definition via a diagram, hence consider getting familiar with the concept of diagrams and diagram editors.

creatingProcess.png
Creating Process workflow

Defining Element Labels

To allow the same name on multiple elements in a process diagram, all process elements with semantic value, which excludes Annotation, Diagram Frame, Hyperlinks, can define the Label property: if the label contains a value, it is displayed on the diagram instead of the name of the element. It is intended for purely presentation purposes and does not have to be unique in the namespace unlike the element name.

To define an element label, do the following:

  1. Open the process diagram with the element.
  2. Select the element.
  3. In the Properties view, go to the Appearance tab and define the label in the Label field.
labels.png
Identical labels on multiple process elements

Defining Process Parameters

You can instantiate your process with parameters if it is instantiated with a function call or by a reusable sub-Process, etc. If a process is instantiated automatically by its model it cannot take any input parameter.

To define process parameters, do the following:

  1. Make sure the process is open in the process editor.
  2. In the Outline view, right-click the process and select New > Parameter. Make sure to select the parameter as Required if it cannot be null: if not required and the process is instantiated without the parameter, the parameter value is null.

    Alternatively, you can open the process properties in the Properties view and click Add on the Parameters tab.

  3. In the Property view, define the parameter properties. In the case of reusable-Subprocesses, the parameter values are defined on the Parameters tab of its Properties view.

Example process instantiation

applicationProcess(user -> admin, requestedHardware -> Hardware.ssd)

Defining Process Variables

Process variables are accessible from within the process context and are initialized when the process instance is created.

To define local process variables do the following:

  1. Make sure, you have the process resource opened in the Process editor.
  2. In the Outline view, right-click the process and go to New > Variable.
  3. In the displayed Properties view, define the variable properties.

Modeling a Process

After you have created a process, you can model its content: the way you design your process and the element you use are primarily determined by the process type you have chosen, that is, whether your process is BPMN- or GOBPMN-based.

Process content is defined using the Modeler, which is a dedicated diagram editor: when you open a process for editing, the editor opens a diagram. As you insert new element views onto the diagram, the elements are created in the process and displayed in the Outlook view.

To insert a Task as part of your process, do the following:

  1. Open the process definition. If using GO-BPMN processes, make sure to open the respective Plan.
  2. In the palette, select the Task and click into the canvas where you want to place the Task.
  3. Select the type of the Task in the dialog box.
  4. Define the task parameters: you can do so either in the Parameters tab of its Properties view or in the built-in task editor after double-clicking the Task element.
definingTaskParameterValue.png
Defining task parameters
The syntax of the parameter expression is a comma-separated list of key-value pairs:

<parameter1_name> -> <parameter1_value>,
<parameter2_name> -> <parameter2_value>

User Task parameters

title ->  "My Pending Item",
performers ->  { anyPerformer()},
uiDefinition ->   myTodoForm()

Changing Task Type

To change the task type of an existing Task, right-click the Task in the canvas and click Change Type. In the dialog box with task types select the new Task Type.

Note that the expression with parameter values remains unchanged and you need to adapt the parameters to the new Task Type.

Removing Invalid Task Parameters

To remove the invalid parameters and keep only the parameters that are relevant for the new Task Types, go to Project -> Task Parameter Cleanup: Task type parameter cleanup automatically removes irrelevant parameters and parameter values.

Reusing a Process

A process can be reused in another process: a reused process is instantiated as a subprocess of the parent process within its own context. You can reuse a process either with the Reusable Sub-Process, which is a standard BPMN way or Execute task type, which allows you to reuse a process or task without actually knowing what you are reusing:

  • To reuse a process in a Reusable Sub-Process task, insert the Sub-Process task to your process flow and, in its Detail properties, set its Reference Process Name to the process.
  • To reuse a process in an Execute task, in the process properties, set the Create activity reflection type and set it as the activity parameter of the Execute task.

In both cases, make sure your Process has the executable option selected. Also, consider disabling the Instantiate Automatically on the Process so that it is not automatically instantiated when the parent Module is instantiated.

Extracting Process Elements into a Reusable Sub-Process

To nest one or multiple Process elements into a Sub-process, select the elements, right-click the selection, and in the context menu, click Extract to Subprocess.