1、引言
在前面我們知道了怎麼創建流程控制引擎,而Activiti 的正常使用還需要進行部署流程,而這就有一個很重要的前提。那就是創建相應的流程圖,並讓其能被 service 所調用從而實現流程的執行。
2、流程圖創建工具
2.1 簡述第一種創建方式
在這裏說明一點,流程圖的創建可以使用兩種方式,第一種是XML版本的,案例如下:
我們看到的是一個無開始事件(左側的圓圈),後面是兩個用戶任務:“寫每月財務報告”和 “驗證每月財務報告”,以一個無結束事件(右側帶有粗邊框的圓圈)結束。
- 在這裏,start task 告訴我們什麼入口點的過程。
- 在 user task 聲明是我們的過程的人工任務的表示。請注意,第一個任務分配給會計組,而第二個任務分配給管理組。有關如何將用戶和組分配給用戶任務的更多信息,請參見用戶任務分配部分。
- 當到達 end task 時,該過程結束。
- 這些元素通過順序流相互連接。這些順序流具有source和target,用於定義順序流的方向。
其對應的xml 版本的配置如下:
<definitions id="definitions"
targetNamespace="http://activiti.org/bpmn20"
xmlns:activiti="http://activiti.org/bpmn"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
<process id="financialReport" name="Monthly financial report reminder process">
<startEvent id="theStart" />
<sequenceFlow id='flow1' sourceRef='theStart' targetRef='writeReportTask' />
<userTask id="writeReportTask" name="Write monthly financial report" >
<documentation>
Write monthly financial report for publication to shareholders.
</documentation>
<potentialOwner>
<resourceAssignmentExpression>
<formalExpression>accountancy</formalExpression>
</resourceAssignmentExpression>
</potentialOwner>
</userTask>
<sequenceFlow id='flow2' sourceRef='writeReportTask' targetRef='verifyReportTask' />
<userTask id="verifyReportTask" name="Verify monthly financial report" >
<documentation>
Verify monthly financial report composed by the accountancy department.
This financial report is going to be sent to all the company shareholders.
</documentation>
<potentialOwner>
<resourceAssignmentExpression>
<formalExpression>management</formalExpression>
</resourceAssignmentExpression>
</potentialOwner>
</userTask>
<sequenceFlow id='flow3' sourceRef='verifyReportTask' targetRef='theEnd' />
<endEvent id="theEnd" />
</process>
</definitions>
2.2 視圖模式創建流程圖
這裏我們創建一個簡單的流程圖作爲示範入門。
開發流程 首先要做的,就是要設計好流程圖;一個項目可能會包括多個流程圖;所以在src/test/resources源文件夾下新建一個包diagrams,以後所有的流程圖文件(bpmn文件和生成的png文件)都放在這個包下;
然後在diagrams上右擊,New - > Other :創建一個新的流程實例圖
選擇 Activiti下的 Activiti Diagram 要開始開發一個Activiti流程圖表:
這裏 中間區域,是用來繪製流程圖標的。右側是繪製流程圖標的工具箱,下面的Properties是屬性視圖,目前看到的是整個helloWorld流程圖的屬性:
然後來畫流程圖,任何流程,都必須有一個開始事件節點和結束事件節點:
在右側的工具箱裏會看到有個StartEvent 和EndEvent。先點下 然後拖到中間的繪圖區域就OK了;
當然每個節點的屬性都可以看到,而且可以設置,可以點擊選中一個節點,然後在屬性視圖上看到所以值;
會看到這裏插件都給設置了初識屬性值,可以改 ,也可以不改,都行;
之後在搞一個用戶任務節點(開發最常用的節點),拖一個到中間繪圖區域
這裏的任務節點,必須要有一個人去處理這個任務,而且在實際開發中,根據實際業務,給這個用戶任務節點取個名字,
當然這裏是初識,所以就搞個myprocess名字,然後分配給“小龍”這個人;
這樣就完成了最簡單的流程圖設計。