表單、流程與資料庫

在AgielPoint 流程架構可分為三個層次--前端組件, 流程伺服器, 資料庫.

前端組件一般通常是以表單呈現, 但也可以是另一個資訊系統中任何形式的網頁或程式.

前端組件與後端的流程引擎及資料庫的溝通資訊主要有兩種: 發出需求事件與存取流程變數.

image

在AgilePoint 是採用事件驅動的架構,因此, 對前端組件而言是發出一個Event 通知後台的Server , 只要server 端收到這個事件, 前端作業就算完成, 至於後台Server 後續的步驟為何, 則由流程引擎依照所定義的流程模型控制.

常用的事件有CreateProcessIntsnce(啟動流程)、CompletedWorkitem(完成人工步驟))、CompletedProcedure(完成自動步驟) 、 ReassignWorkItem( 轉派)、 CreateLinkedWorkItem(加簽), CreatePseduoWoritem(通知… 等事件。

流程變數的存取可透過WebService 的API進行, 因此資料的存取可以與表單上的欄位無關,自然也可以由程式運算或另一個外部系統來存取流程資料.

採用透過WebService 驅動事件及存取流程變數的優點是表單,流程分離與資料庫三者可以完全分離, 因此前端組件不只可以是表單亦可以是另一個系統, 只要能夠呼叫WebService 的系統都可以與流程整合.

另一個優點是可以很容易的作到一個流程多表單, 一個表單多流程, 多表單共用流程.

一流程多表單

在AgilePoint 的流程架構中,流程與表單是分離的,因此只需要在流程元件指定不同的表單(WorkToPerform),同一個流程每個步驟皆可使用不同表單, 並因為表單與資料分離, 因此只要在各表單間使用相同的流程變數名稱, 就可以存取相同的流程變數, 因此很容易可以達成一個流程多表單, 且資料可以共享.

clip_image002

多表單共用流程

在企業常有多種申請表,使用相同的流程, 在以往的流程可能需要為每一張表單建立一個流程, 在AgilPoint 中, 只需在手動作業的流程元件動態指定表單名稱, 即可達成多表單共用一個流程.

流程樣版的中的手動作業元件AFAgileWork的工作頁面(WorkToPerform) 可使用流程變數,在電子表單樣版中,預設會將表單編號,儲存於流程變數MWI_FormID,因此WorkToPerform 可直接設定$MWI_FormID,再將多張表單分別設定於Portal 的程式清單,則會自動將表單名稱帶至流程中。

http://Fiscdev/AresEFM/KEFM010w.aspx?ProcessTemplate=共用流程

http://Fiscdev/AresEFM/KEFM020w.aspx ?ProcessTemplate=共用流程

clip_image004

0.1.3 多流程共用表單

 

若同一表單,在不同的情境需執行不同了流程,可分別設定程式清單, 只需將兩個程式項目的URL 參數列指定不同的流程名稱。

http://Fiscdev/AresEFM/KEFM010w.aspx?ProcessTemplate=通用表單K01

http://Fiscdev/AresEFM/KEFM010w.aspx?ProcessTemplate=通用表單K02

clip_image006

採用流程,表單, 資料庫三者分離的架構, 可以讓三者間採用多樣化且彈性的組合, 讓流程發揮最大的效益.

留言

這個網誌中的熱門文章

如何使用SQL Profiler 找到語法錯誤

如何將SQL Server 的查詢輸出寫入文字檔

AgilePoint逐級簽核與指定簽核層級範圍