1. 程式人生 > >開源工作流引擎Shark入門2——使用JaWE設計一個流程

開源工作流引擎Shark入門2——使用JaWE設計一個流程

    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的屬性     這樣一個簡單的流程就畫完了,可以再模擬器中進行模擬流程,也可以用在應用程式中。