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請假流程整體圖
參與者“申請人”設置以下屬性:
- 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
從“請假申請”到“審批”的Transition比較簡單,連上就可以。從“審批”到“休假結束銷假”或“查看拒絕原因”的轉移是有條件的,下面分別給出這兩個Transition的屬性圖示:
圖5“審批”到“休假結束銷假”的Transition的屬性
圖6“審批”到“查看拒絕原因”的Transition的屬性
這樣一個簡單的流程就畫完了,可以再模擬器中進行模擬流程,也可以用在應用程序中。