bpmn文件是activiti或flowable配置流程定義的文件,一般一個bpmn文件定義一個流程,文件爲xml格式,各種元素級別如下:
<?xml version="1.0" encoding="UTF-8"?>
<definitions>
<process>
<startEvent></startEvent>
<endEvent></endEvent>
<userTask>
<extensionElements>
<activiti:taskListener></activiti:taskListener>
</extensionElements>
</userTask>
<scriptTask/>
<manualTask/>
<receiveTask/>
<serviceTask/>
<businessRuleTask/>
<exclusiveGateway/>
<parallelGateway/>
<sequenceFlow>
<conditionExpression></conditionExpression>
</sequenceFlow>
<subProcess></subProcess>
<boundaryEvent/></boundaryEvent>
</process>
</definitions>
注意如果是 flowable, 部分配置需改動。 如:
activiti:taskListener 需改爲 flowable:taskListener
process: 流程定義根元素,代表了一個流程定義的開始,屬性如下
屬性名 | 含義 |
---|---|
id | 流程唯一id,啓動流程時需要 |
isExecutable | 流程是否可執行 |
name | 流程名稱 |
type | 流程類型 |
isClosed | 流程是否已關閉,關閉不能執行 |
startEvent: 流程啓動事件,一個process只能有一個,且必須爲流程起始元素
屬性名 | 含義 |
---|---|
id | 啓動節點id |
name | 啓動節點名稱 |
endEvent: 流程結束事件,一個process只能有一個,且必須爲流程結束元素
屬性名 | 含義 |
---|---|
id | 結束節點id |
name | 節點名稱 |
userTask: 流程中間用戶任務,夾在startEvent與endEvent之間的節點
屬性名 | 含義 |
---|---|
id | 任務id,使用id操作任務 |
name | 任務名稱 |
activiti:assignee | 任務所屬用戶,只能指定用戶完成這個任務,即任務辦理人 |
activiti:candidateUsers | 多個任務辦理人 |
activiti:candidateGroups | 任務處理人候選組,處理人必須在這個組內 |
activiti:exclusive | 獨家的,好像是在排它性網關中使用,意思應該是在有並行分支情況下,只會走其中一條 |
activiti:dueDate | 設置用戶任務到期日期 |
activiti:priority | 用戶任務優先級,0-100 |
extensionElements: userTask的子元素,用於擴展元素
activiti:taskListener: 擴展元素之一,用於監聽某個任務的運行
屬性名 | 含義 |
---|---|
event | 監聽的任務事件名,create、assignment(分配任務)、complete |
class | 任務監聽器類,需要實現TaskListener |
sequenceFlow: 順序流分爲兩種:標準順序流 條件順序流,其實就是連接兩個節點的一條線
屬性名 | 含義 |
---|---|
id | 順序流id |
sourceRef | 連線的起始節點id,即接近startEvent的節點 |
targetRef | 連線結束節點id,即接近endEvent的節點 |
conditionExpression: sequenceFlow子元素,根據表達式確定是否執行這一順序流,一條順序流只能聯繫兩個節點
屬性名 | 含義 |
---|---|
xsi:type | 含義不知道,值爲tFormalExpression |
子元素 | 表達式,${days <= 3} |
如果需要表達式判斷,有多條順序流連接了同一開始節點,一般這樣的開始節點都是網關
exclusiveGateway: 排它性網關,即多個sequenceFlow以網關節點開始時,只根據條件執行其中一條流,其他流不再判斷
雖然與userTask同屬於節點,但是其不作爲任務執行
屬性名 | 含義 |
---|---|
id | 節點id |
name | 節點名稱 |
gatewayDirection | 網關方向,Unspecified |