天天看點

開源工作流引擎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”,設定包的一些屬性:

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

圖1包的屬性     在包的屬性頁上,點選“Workflow Processes”标簽頁,點選建立元素按鈕建立一個流程,在流程的屬性頁裡面,設定屬性:

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

圖2建立請假流程的屬性     在請假流程的“Workflow Variables”标簽頁設定以下流程上下文變量(其中biz_id代表業務系統請假單據的id):

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

圖3請假流程的變量     在右側的流程圖示區域,畫出請假的流程,效果如下:

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

圖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的屬性圖示:

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

圖5“審批”到“休假結束銷假”的Transition的屬性

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

圖6“審批”到“檢視拒絕原因”的Transition的屬性     這樣一個簡單的流程就畫完了,可以再模拟器中進行模拟流程,也可以用在應用程式中。

繼續閱讀