開源工作流引擎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的屬性
    這樣一個簡單的流程就畫完了,可以再模擬器中進行模擬流程,也可以用在應用程序中。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章