開源工作流引擎Shark入門2——使用JaWE設計一個流程
阿新 • • 發佈:2019-01-07
XPDL描述了工作流的相關元素,如參與者、活動、活動間的轉移、上下文變數等內容,由這些元素組成一個個流程。XPDL是一個xml格式的檔案,可以用文字編輯器直接編輯,但這需要對XPDL規範非常熟悉。JaWE是一個圖形化的XPDL編輯器,利用這個工具就不需要學習枯燥的XPDL中的xml元素了,在圖形介面上用拖拽式的方法就可以設計出我們需要的流程。
本文講述如何用JaWE設計一個簡單的請假流程,這個流程假設由員工提出請假申請,經理進行審批,如果審批通過,員工休假完之後進行銷假;如果審批沒有通過,員工可以檢視經理拒絕的原因。出於工作流系統與業務系統協同執行的原因,假設業務系統有一個物件叫做請假單據,每個物件有一個id,業務系統要把請假單據的id傳入流程的上下文,以作為工作流系統與業務系統互動的橋樑。
執行開始選單|程式|Together Workflow Server CE 2.4-1|TWE|Together Workflow Editor Community Edition,就開啟JaWE了,新建一個包(Package),一個包裡面包含若干個流程(Process),一個包其實也就是一個xpdl檔案,儲存為mydemo.xpdl。
在左側的導航樹上,右鍵點選新建的包,選“Properties”,設定包的一些屬性:
圖1包的屬性
在包的屬性頁上,點選“Workflow Processes”標籤頁,點選新建元素按鈕新建一個流程,在流程的屬性頁裡面,設定屬性:
圖2新建請假流程的屬性
在請假流程的“Workflow Variables”標籤頁設定以下流程上下文變數(其中biz_id代表業務系統請假單據的id):
圖3請假流程的變數
在右側的流程圖示區域,畫出請假的流程,效果如下:
圖4請假流程整體圖
參與者“申請人”設定以下屬性:
圖6“審批”到“檢視拒絕原因”的Transition的屬性
這樣一個簡單的流程就畫完了,可以再模擬器中進行模擬流程,也可以用在應用程式中。
- id:employee
- name:申請人
- type:Role
- id:manager
- name:經理
- type:Role
- id:askForLeave_act1
- name:請假申請
- performer:申請人
- start mode:Automatic
- finish mode:Automatic
- id:askForLeave_act2
- name:審批
- performer:經理
- start mode:Automatic
- finish mode:Automatic
- id:askForLeave_act3
- name:休假結束銷假
- performer:申請人
- start mode:Automatic
- finish mode:Automatic
- id:askForLeave_act4
- name:檢視拒絕原因
- performer:申請人
- start mode:Automatic
- finish mode:Automatic