如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2019年4月9日

如何設計一個流程管理系統(BPM) - 設計概念

作者: Fred F.M. Wang (FW知識瑣記) 日期: 20190211  rev: 20190409

筆者最近自行設計一個基礎的流程平台,在此分享一個Workflow平台該具備哪些基礎的資料模型,提供大家設計的參考。

列出下列幾項 :

1. 流程定義 : 用來定義要建立的流程基本資料,包含流程代碼,名稱,類別,系統說明文件連結,上線日期,是否停用等

2. 流程角色 :用來定義流程參與者的角色。用於流程的權限控管。

3. 關卡定義 : 用來定義流程有哪些關卡,包含流程代碼,關卡代碼,名稱,描述,母關卡代碼(用於會簽),有權執行關卡的角色/部門/或表單欄位名稱(填單時指定)/使用者帳號/...等。注意 : 關卡權限的設計需要保持彈性,可以是流程設定的角色,或組織表中的頭銜或特定部門主管,或在表單中指定,或固定使用者,角色也可能在表單中指定,特定部門也可能在表單中指定。

4. 關卡催簽定義 : 定義流程各個關卡的完成期限,與催簽頻率(一次,每天一次或兩天一次等)。

5 轉換流定義 : 用來定義一個關卡執行甚麼動作會到哪一個關卡,包含流程代碼,關卡代碼,動作,下一個關卡代碼。

6 流程個案 : 每一次流程啟動時產生一筆流程個案,也就是流程的實例(instance)。包含: 流程代碼,個案代碼,個案名稱(主旨,專案名稱等),目前關卡代碼,關卡開始時間,目前關卡負責人代碼,個案開始時間,個案結案/中止/作廢時間等。

7 流程節點 : 每執行一個關卡,就會記錄一次流程節點,也就是關卡的實例(instance),對簽核流程而言,就是簽核記錄。包含流程代碼,個案代碼,序號,關卡代碼,開始時間,完成送出時間,實際執行/簽核人,動作名稱,備註/簽核意見等。

8 表單定義與表單欄位定義 : 略。

9 表單欄位關卡控制 : 用來設定在不同關卡,表單中各個欄位是唯讀,隱藏,可填或必填。包含流程代碼,表單編號,欄位名稱,關卡代碼,控制方式(唯讀,隱藏,可填或必填)。

11 表單內容變更記錄 : 重要欄位變更可以記錄在這裡,包含 :流程代碼,個案代碼,表單編號,欄位名稱,變更前內容,變更後內容,變更時間,變更者。
 
12 代理人設定 : 讓使用者指定自己某段時間的流程代理人,包含 使用者代碼,流程代碼,代理人代碼,代理起始日,代理結束日(代理的最後一天)。

設計的概念模型如下 : 


 如果需要還要加上使用者帳號與組織表。

在程式設計前,還需要進行功能模組與資料處理模組的設計,資料處理模組設計,就是實現對上述資料模型存取的函式設計功能模組設計則實現流程系統應具備的功能函式設計。可以提供流程入口網站叫用以及其他流程功能系統內嵌簽核模組。

最後開發 流程入口網站與相關管理功能。系統架構的概念圖如下:

 

Fred F.M. Wang




2 則留言:

  1. 你好,最近要開發電子簽核,剛好看到你也寫出一套,不知可以留個mail訊息交換

    回覆刪除
    回覆
    1. 抱歉, 無法公開個人郵件信箱, 我提供LineID: fmwang991890

      刪除

歡迎提供意見, 謝謝 (註 : 留言經過版主審核通過才會發布)