Flowable 使用 BPMN 2.0 XML 格式来定义业务流程模型。BPMN(Business Process Model and Notation)是一种业务流程模型和符号的标准,它提供了一种图形化的表示方法来描述业务流程的结构和行为。
以下是一个基本的 Flowable BPMN 2.0 XML 文档的结构和组成部分的详细解释:
BPMN 2.0 XML 基本结构
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:flowable="http://flowable.org/bpmn"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI"
typeLanguage="http://www.w3.org/2001/XMLSchema"
expressionLanguage="http://www.w3.org/1999/XPath"
targetNamespace="http://www.flowable.org/processdef">
<process id="processId" name="Process Name" isExecutable="true">
<!-- 流程元素定义 -->
</process>
<!-- BPMN DI 元素定义 -->
</definitions>
关键元素和属性
- definitions:这是 BPMN 2.0 XML 文档的根元素。它包含所有其他的 BPMN 元素,并提供了一些命名空间定义。
- process:定义了一个具体的业务流程。它具有以下属性:
- id:流程的唯一标识符。
- name:流程的名称。
- isExecutable:表示该流程是否可执行。
流程元素
以下是可以在 <process>
元素内部定义的一些关键元素:
- startEvent:流程的开始点。
- endEvent:流程的结束点。
- userTask:表示需要人工完成的任务。
- flowable:assignee:分配给任务的用户。
- flowable:candidateGroups:可以领取任务的用户组。
- flowable:candidateUsers:可以领取任务的用户。
- sequenceFlow:连接两个流程元素的流,定义了流程的流向。
- sourceRef:流的源元素。
- targetRef:流的目标元素。
- exclusiveGateway:排他网关,用于基于条件的流程分支。
- parallelGateway:并行网关,用于创建并行分支。
- inclusiveGateway:包容网关,允许基于条件的多个分支。
- callActivity:调用另一个流程定义。
- serviceTask:执行自动任务的元素。
- flowable:class:执行任务的自定义类。
- flowable:expression:执行任务的表达式。
BPMN DI 元素
BPMN DI(Diagram Interchange)元素用于定义流程图的位置和布局信息:
- bpmndi:BPMNDiagram:包含流程图的全部信息。
- bpmndi:BPMNPlane:包含流程元素的图形表示。
- bpmndi:BPMNShape:定义单个流程元素的图形。
- bpmndi:BPMNEdge:定义流程元素之间的连接线。
示例
以下是一个简单的流程定义示例:
<process id="simpleProcess" name="Simple Process" isExecutable="true">
<startEvent id="startEvent"/>
<userTask id="userTask1" name="First Task" flowable:assignee="user1"/>
<sequenceFlow sourceRef="startEvent" targetRef="userTask1"/>
<endEvent id="endEvent"/>
<sequenceFlow sourceRef="userTask1" targetRef="endEvent"/>
</process>
这个流程定义了一个开始事件、一个用户任务和一个结束事件,以及连接这些元素的顺序流。
注意事项
- BPMN 2.0 XML 是结构化的,且需要遵循特定的命名空间和规则。
- Flowable 扩展了 BPMN 2.0 标准,通过添加自定义属性(如
flowable:assignee
)来增强其功能。 - 在实际使用中,可能还需要包含更多的细节,如监听器、表单定义、任务参数等。
要深入了解 BPMN 2.0 XML 和 Flowable 的 XML 结构,建议参考 Flowable 的官方文档和 BPMN 2.0 规范。