Every process task requires some form of input, e.g, the date and time of a meeting, task assignee, customer’s contact, etc. In addition, it is often necessary to exchange data between elements within the same business process (e.g., sending an email to the same contact that was specified in the meeting), as well as between different processes (e.g., branching a process depending on the result of its sub-process).
The following table outlines common business tasks from the standpoint of process execution mechanisms in bpm’online:
Business task | Bpm’online task | Process task |
Schedule a task and make it easily identifiable in the calendar | Create a new record in the [Activities] section with a certain value in the [Subject] field | Manually enter the title of the task that must be created as the value of the [What should be done?] parameter of the [Perform task] element. Read more>>> |
Assign a task to the user who started the process | The [Owner] field of the record in the [Activities] section should be populated with the current user contact | Set the “Current user contact” variable as the value of the [Who performs the task?] parameter of the [Perform task] element. Read more>>> |
Email the meeting contact immediately after the meeting has ended | Create a new email whose [To] field will contain the email address of a contact who was specified in the [Contact] field of the meeting activity | The [To] parameter of the [Send email] element must have the same value as the [Contact] parameter of the [Perform task] element. Read more>>> |
Example
Check bpm’online marketplace for free business process templates (Fig. 1, Fig. 2, Fig. 3, Fig. 4, Fig. 5) illustrating the examples of using process parameters. Click here to download the template.
After installing the marketplace template, two new processes will appear in the [Process library] section: “Call a client” and “CEO review” processes. Select a process and click [Open] to view its diagram. The business process examples mentioned in this article will be available in these two processes.
Bpm’online uses parameters to solve the aforementioned process tasks.
What are parameters?
Parameters are similar to fields on bpm'online record pages: they can be populated with values of different data types (text, numerical, lookup, etc.). In bpm'online, business process parameters serve two functions:
-
Provide specifics (or “input”) about how the process elements are executed (e.g., what will be the name and duration of an activity created as part of a business process, who will be assigned as its owner, etc.).
-
Act as a medium for exchanging information between the elements within a business process (e.g., what was the task result, who was its owner, etc.) or between a sub-process and its parent process.
Since parameters represent the state of a process element or a process after its execution is complete, their values can be used for branching processes using gateways and conditional flows.
Parameters are available in both business processes and process elements.
Element parameters are displayed on the element setup area. For example, the [To] field in the [Send Email] process element (Fig. 6) is a text parameter whose value represents the recipient’s email address.
Important element parameters are available on the element’s setup area by default, whenever you select an element on the diagram. If the element setup area is closed, simply double-click the element to open it. To access all parameters of an element, switch to the “advanced” mode (Fig. 7).
Note
The names of parameters in the “regular” and “advanced” modes may be different. To locate which parameter is being populated, type in a random value for the necessary parameter in the “regular” mode, switch to the “advanced” mode, and locate the value in the list of parameters.
Process parameters are available on the [Parameters] tab in the process setup area (Fig. 8), which you can access by clicking or an empty space on the Process Designer working area (if the element setup area is open).
Parameter types
The type of parameter depends on the data type of its value. The types of parameters are roughly similar to types of bpm’online section and lookup columns, which in turn correspond to columns in the bpm’online database.
The following parameter types are available in bpm’online:
Text | A parameter whose value is a text string that can represent a constant value, or a value generated during the process flow. For example, the [What should be done?] parameter of the [Perform task] element. |
Decimal | Stores and exchanges decimal numeric values. For example, the [Function result] parameter of the [Read data] element. |
Integer | Stores and exchanges integer numeric values. For example, the [Start executing in] parameter of the [Perform task] element. |
Boolean | Stores logical values (true or false). For example, the [Answer required] parameter in the [User dialog] element. |
Lookup | A parameter which stores a value from a lookup (i.e., a link to a lookup record). For example, the [Who fills in the page?] parameter of the [Open edit page] element can be populated with values from the [Contact] lookup. |
Date/Time | Stores certain date/time values. For example, the [Start date and time] parameter of the [Start timer] event. |
Currency | Stores values of currency fields. Learn more about currency fields in the corresponding article. |
Collection of Objects | Collection parameters contain complex values, each representing a number of entries, such as a number of contacts with name, address and a phone number specified for each contact. This parameter type can be used by developers in scripts. |
Id | Stores a unique record identifier. For example, the [Id] parameter of the [Signal] start event. |
Depending on when and how a parameter value is populated, it can be either incoming or outgoing.
-
Incoming values are populated before the element or process is executed. Incoming parameters affect the process element execution.
-
Outgoing values are populated during the process/element execution and usually represent its result, or the state the process or element is in after it has completed.
An incoming value can be replaced with outgoing value in some parameters, e.g., a task was connected to a specific contact but needs to be replaced with a different contact during process execution.
Populating parameter values
You can populate incoming parameter values in one of the following ways:
-
Enter a static parameter value manually. In this case, parameter values are specified directly, when the process is designed and are always the same in all process instances. For example, the name of the task (the [What should be done?] parameter) created with the help of the [Perform task] element. Read more>>>
-
Select a “system setting” (e.g., “Test email recipient”) or a “system variable” (e.g., current date and time, current user contact, current user account, etc.) whose value will be passed to the parameter. In this case, parameter values will be the same as the values of corresponding system settings or system variables at the time of process execution. For example, if you select the current user contact as the [Who performs the task?] parameter value in the [Perform task] element, the task will be created for the user who started the process. Read more>>>
-
Use a formula. Multiple parameters can be combined or converted to other types using formula syntax, e.g., combining a text string with a parameter value. Read more>>>
-
By obtaining a value from another parameter. This method enables you to get a parameter value from a different parameter in the process. For example, you can get the contact with whom the meeting had been previously scheduled (the [Contact] parameter of the [Perform task] element) and pass this value to the [To] parameter of the [Send Email] element.
Obtaining parameter values from another parameter
A parameter can be configured to obtain its incoming value from another parameter with the same data type.
For example, a new contact is added via an [Open edit page] element, and later in the process flow a meeting must be scheduled with that same contact. In this case, the value of the “source” [Record Id] parameter (where the record Id of created contact is stored) of the [Open edit page] element must be passed to the “target” [Contact] parameter of the [Perform task] element. Read more>>>
Note
Make sure that the “source” parameter is properly populated at the time when the “target” parameter obtains its value.
Most of the time, parameters can only receive values from other parameters of the same type. However, certain parameters can receive values of other parameter types, namely:
-
Date/time parameters can store interchangeable values: you can specify a date value in the time parameter and vice versa.
-
Integer and decimal parameters can store interchangeable values, i.e. you can specify a decimal value in the integer parameter and vice versa. Integer and decimal values will be converted depending on the parameter they are passed to.
-
Lookup parameters can store a record’s unique identifier (Id). For example, specify the Id of a contact in a lookup parameter whose values can be selected from the [Contacts] lookup.
To obtain a parameter value from a different parameter:
1.Click the button next to the field of the “target” parameter (the one, which must be populated).
2.Select [Process parameter] from the menu (Fig. 9). The parameter selection window (Fig. 10) will open.
3.Select a “source” process or element parameter (the one, whose value must be passed to the current parameter) in the parameter selection window.
The element parameter selection tab (Fig. 10) of the parameter selection window displays a list of elements in the current process (1). Select an element on the left-hand side of the window and the list of its parameters will be displayed to the right (2). This list only displays parameters whose type corresponds to the “target” parameter. Double-click a parameter in the list to populate the “target” parameter with its value.
The [Process parameters] tab (Fig. 11) displays all available process parameters. This list only displays parameters whose type corresponds to the “target” parameter. Double-click a parameter in the list to populate the “target” parameter with its value.
Use cases
•How to specify static and variable parameter values
•How to run business processes for section records