工作流引擎(activiti、flowable)之bpmn配置文件詳解

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章