Business Process Definition Overview
This topic contains information about business process definitions (BPMN files).
Define New Business Process
You can define business process using Workflow Modeler. For more information, see Workflow Web-based Modeler.
To define a new business process, you can create the business process in Workflow Modeler and then save the process as a BPMN file (*.bpmn20.xml).
For more information, see Workflow - Default Process Definitions Bit Bucket Repo.
Business Process Definition Properties
This section describes some of the properties required in a business process definition.
- Id (corresponds to process type)
- Name (Process Name)
- Data Object tab
manualStart:
Mandatory. This is a Boolean value to indicate if the process instance can be started manually. Set to false for processes to be started using search query.objectTypes:
Optional. A comma-separated list of Reltio object types is to be configured here if the process definition is applicable to specific object types only.deleted:
Optional. This is a Boolean value to indicate if the process definition is no longer available. This is to be set to true in cases where the process definition needs to be made unavailable.
manualStart
).Main Configuration Properties
For a User Task, the following properties are used:
assignee
: this attribute allows you to directly assign a user task to a given user.For example:<userTask id="deleteReview" name="Delete Review" activiti:assignee="cust_user">
candidateGroups
: this attribute allows you to make a list of comma-separated Reltio roles candidates for a task. For example:<userTask id="dcrReview" name="DCR Review" activiti:candidateGroups="ROLE_REVIEWER">
dueDate
: this attribute allows you to set the due date of a task when it is created. The format used is the ISO 8601[1] format (as required by the BPMN 2.0 specification). For example:<userTask id="dcrReview" name="DCR Review" activiti:dueDate="P2D">
Note: "P2D" is used asdueDate
to indicate the task is due in two days.
Form Properties
For a User Task, the following form properties are configured:
decision
(type enum): The possible values for actions.- Enum for possible actions
- Default value indicates the preferred action
- Enum values (Id) to be used to determine the next step
validator
: The class name (with full path) to indicate which class will be used to validate this particular task. Out of the box classes are:com.reltio.workflow.core.task.validator.SingleEntityTaskValidator
com.reltio.workflow.core.task.validator.PotentialMatchTaskValidator
com.reltio.workflow.core.task.validator.DataChangeRequestValidator
notificationOnAssignmentEnabled
: Set totrue
orfalse
to enable/disable email notification on task assignment.notificationOnCompletionEnabled
: Set totrue
orfalse
to enable/disable email notification on task completion.disableAssignToOwner
: Set totrue
to disable assignment to the task owner. If set totrue
, a Workflow task cannot be assigned or reassigned to the task owner.accessTypes
: Specifies the list of privileges the user must have, to be an assignee. Example:<activiti:formProperty id="accessTypes" name="AccessTypes" type="string" default="READ,DELETE" writable="false"></activiti:formProperty>
Note: This means a user must have READ and DELETE privileges on all entities involved in the task to be a possible assignee. IfaccessTypes
is not configured, a user must have all permissions on the objects to be a possible assignee.
Listeners
-
Listener on assignment of task (if email notification is required): To be
configured with a proper class name. If the source is not available, you can add the
following line in the bpmn file.
<activiti:taskListener event="assignment" class="com.reltio.workflow.activiti.service.TaskAssignmentEventListener"></activiti:taskListener>
-
Listener on creation of task: To be configured with a proper class name. This
will be different depending upon type of User Task as follows:
-
General Task: Assign the task using least-used algorithm among possible
assignees (if assignee is not passed by process initiator). If the source is
not available, you can add the following in the bpmn file.
<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.TaskStartEventListener"></activiti:taskListener>
-
Repeating Task: Assign the task to the previous assignee of this task.
If the source is not available, you can add the following in the bpmn file.
<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.RepeatableTaskStartEventListener"></activiti:taskListener>
-
Task not to be Assigned: Assign the task to no one. If the source is not
available, you can add the following in the bpmn file.
<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.TaskNoAssignmentStartListener"></activiti:taskListener>
- DCR Task: Update
dcrType
(CREATE_ENTITY, UPDATE_ATTRIBUTE, etc),entityType
(configuration/entityTypes/HCO, etc) andrelationType
variables with information from the respective objects of the process. If the source is not available, you can add the following in the bpmn file.<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.DCRTypeTaskListener"></activiti:taskListener>
- Entity Task: Update the
entityType
variable (configuration/entityTypes/HCO, etc) with information from the entity object of the process. If the source is not available, you can add the following in the bpmn file.<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.EntityTypeTaskListener"></activiti:taskListener>
- Relation Task: Update the
relationType
variable (configuration/relationTypes/HasAddress, etc) with information from the relation object of the process. If the source is not available, you can add the following in the bpmn file.<activiti:taskListener event="create" class="com.reltio.workflow.activiti.service.RelationTypeTaskListener"></activiti:taskListener>
-
General Task: Assign the task using least-used algorithm among possible
assignees (if assignee is not passed by process initiator). If the source is
not available, you can add the following in the bpmn file.
Service Task
For a Service Task, define the following:
-
Class name: Must be configured for each service task. Out-of-the-box classes
are:
Delete
Service:com.reltio.workflow.activiti.service.Delete
NotAMatch
Service:com.reltio.workflow.activiti.service.NotAMatch
Merge
Service:com.reltio.workflow.activiti.service.Merge
- Apply Change Request:
com.reltio.workflow.activiti.service.ChangeRequestApply
- Reject Change Request:
com.reltio.workflow.activiti.service.ChangeRequestReject
Decision Gateway
Decision Gateway is required if there are separate paths to be followed based on the value of some variable.
Sequence Flows
Sequence flows are conditional paths coming out of a decision gateway. These are to be
defined on condition on a decision value like:
${decision=="Delete'}${decision=="Cancel'}${decision=="Merge'}${decision=="NotAMatch'}
Support of different BPMN Constructs
Message Start Event
Workflow Adapter does not have any API to support the starting process with a message start event.
Timer Start Event
Timer start event followed by a User Task with TaskStartEventListener
runs into error as least-used assignment cannot be done without environment URL or
tenant information. Since Timer start event initiates a process internally without any
start process API call, this information cannot be passed. Timer start event works if
the process definition consists of just a simple service task followed by it.
Sub-process
Sub-process works fine on the Workflow Adapter. Call activity-sub-BPMN file in a Call
Activity followed by a User Task with TaskStartEventListener
runs into
error as a least-used assignment cannot be done without the environment URL or tenant
information but it works on Workflow Adapter. Call activity works if the sub-BPMN file
consists of just a simple service task.
Receive Task
Workflow Adapter does not have any API to support the starting process with the Receive Task.
Other Tasks
- Script Task: supported
- Manual Task: supported
- Business Rule task: not supported
- Parallel Gateway: supported.
- Inclusive Gateway: supported.
- Event-based Gateway: not supported.
OOTB Validators
This section contains information about out-of-the-box validators.
Data Change Request Validator
- Used in 'DCR Review' tasks
- class:
com.reltio.workflow.core.task.validator.DataChangeRequestValidator
- Tasks should be marked as invalid during validation if:
- DCR was already removed
- Entity was already removed or became a loser after merge
- More than one DCR is present in the task
Single Entity Task Validator
- Used in 'Delete Review' task
- class:
com.reltio.workflow.core.task.validator.SingleEntityTaskValidator
-
Tasks should be marked as invalid during validation if:
- There is more than one entity in the task
- Entity was already deleted or became a loser after merge
Potential Match Task Validator
- Used in 'Match Review' task
- class:
com.reltio.workflow.core.task.validator.PotentialMatchTaskValidator
-
Tasks should be marked as invalid during validation if a match disappears or matches disappear by:
- Clicking Not a match in the UI
- Updating an entity so that it becomes not a match
- Changing match rules and reindexing
- Removing one of the entities