BPMN XML Reference
Overview
Business Process Model and Notation (BPMN) is a widely adopted industry standard for modeling business processes. It allows businesses to represent their workflows in a graphical, XML-based format, enabling automation and integration with various systems. In tSM, we use BPMN to model processes and extend its functionality through specific custom extensions.
BPMN can be directly edited in the tSM Process Designer, where it serves as the full definition of the process. You can transfer processes between environments by using copy & paste, or by utilizing the backup and restore functionality. When transferring BPMN definitions, ensure that the process ID remains unchanged and that all referenced entities (such as user groups, skills, statuses, etc.) are correctly in place to avoid errors during execution.
BPMN Standard and XML Definition
The BPMN XML format defines the structure of a business process in an interoperable way, meaning the process can be shared between different systems and tools. The key XML namespaces ensure that the process is recognized and executable by BPMN-compliant engines.
Here is an example of a basic BPMN XML definition:
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
id="Definitions_1gs58qx"
targetNamespace="http://bpmn.io/schema/bpmn">
<!-- BPMN Process Definitions -->
</bpmn:definitions>
The BPMN standard XML format allows tools to easily import and export process models, making it possible to collaborate across different systems, including analytical tools like Camunda Modeler, Signavio, and others.
Camunda BPMN Extensions
Camunda process engine extends the BPMN standard by introducing additional execution logic and attributes to make the models executable. These extensions allow you to define tasks, assign roles, and handle process flow with conditions. The Camunda extensions can also specify how tasks are executed, paused, or restarted, with attributes like camunda:asyncBefore or camunda:jobPriority.
Here’s an example with Camunda extensions:
<bpmn:process id="ExampleProcess" isExecutable="true" camunda:versionTag="1.0">
<bpmn:userTask id="Task1" name="Review Task" camunda:assignee="${user}">
<bpmn:extensionElements>
<camunda:taskListener event="create" class="com.example.TaskListener" />
</bpmn:extensionElements>
</bpmn:userTask>
</bpmn:process>
In this example, Camunda-specific attributes like camunda:assignee and camunda:taskListener are used to control task assignment and execution.
More details about Camunda BPMN extensions can be found in the official Camunda documentation.