工作流引擎是 BOS 系統的一個重要組件
它可以根據客戶具體的業務邏輯
來定義工作流模型
整個應用程序就根據所定義的流程來運行
它把應用系統模塊和工作流程分開
當流程發生變化
只需修改流程模型
具體的應用程序無需修改
參考wfmc 標准
我們把工作流分成幾個模塊
· 流程定義模型
· 用戶端
· 工作流引擎
· 建模工具
· 組織架構
在虛線框中代表工作流的服務器端
它對於用戶是透明的
用戶通過工作流引擎所提供的客戶端來對工作流引擎進行操做
客戶端包括建模工具
管理工具和任務列表
各模塊之間的關系如下圖
工作流的操作可以分為
建模階段(Process Design&Definition)和運行階段(Run Time)
運行階段又可分為工作流引擎端和客戶端
客戶首先通過建模工具
建立一套工作流的模型定義(Process definition)
工作流引擎(Workflow Enactment Service)根據模型所提供的信息
把具體任務交給用戶來完成
用戶在登入後
會發現有一項新的任務在他的任務列表中
在他選擇執行後
預先設定的應用程序將被激活
在執行應用程序的過程中
所調用的應用程序會和工作流引擎交換數據
告訴工作流引擎目前運行的狀態
當他完成任務後
工作流引擎得到反饋
將按流程把任務交給下一個人
直到完成整項工作
我們將通過一個簡單的例子
來解釋工作流引擎的作用
上面是一個假想的銷售流程圖
任何工作流程圖都包含起始節點和結束節點
起始節點可以是單獨的一個節點
也可以隱含在一個任務節點中
在上圖中
線索就是一個起始節點
用戶得到一個線索後
第一步是輸入線索
因為下一步是和客戶聯系(contact customer)
需要由銷售代表來完成
而銷售代表(sales rep)有多個
工作流引擎將把任務分配給銷售部的經理
由銷售部經理把任務分配給某個銷售代表
這個銷售代表就會在他的任務列表中看到這個任務
當他聯系了客戶後
發現這個客戶有可能買我們的產品
就把相關信息輸入到數據庫重
結束了這個環結的工作
工作流引擎就會把任務傳給下一個環節
如果客戶不感興趣
就轉移到結束節點
此工作流程就結束
下一個環節是建立銷售計劃(sales plan)
需要市場部經理來做
因為市場部經理只有一個
就把任務直接分配給市場部經理(marketing manager)
Marketing manager 做出銷售計劃後
需要公司的CEO 和CFO來審批
當兩位經理都對此做出審批後
將把信息反饋到 sales manager
假設CEO 的評審沒有通過
銷售經理需要修改 sales plan
再進行審批
直到通過為止
下一個環節是拜訪客戶
如果一切順利
就可得到定單
整個流程結束
以上的例子是一個假想的例子
但它反映了工作流引擎的一些重要功能
用戶看到的只是自己的任務列表
當他完成了這項任務後
由工作流引擎根據流程
把任務分配給下一個環節的負責人
每一個任務都由一個角色來完成
由工作流引擎
根據組織架構
決定具體由誰來做
有些過程(審批)需要重復進行
直到通過
有些過程 (審批)需要所有的前置任務(CEO review
CFO review)都完成
才進入下一個階段
有些過程不需要人來操作
比如
審批節點自動等待 CEO和CFO 都審批完後
把結果反饋到市場部經理
工作流引擎對於用戶來說是透明的
用戶通過它的客戶端來對它進行操作
客戶通過建模工具來建立模型
通過任務列表來知道自己當前的任務
通過管理工具來對工作流程進行維護
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19775.html