表單中每一個字段有固定的數據類型,並由不一樣的數據控件展現,如日期、數字、單選或多選、下拉、多行文本甚至富文本編輯器。在實現更強的功能上,咱們還容許控件能實現腳本交互。
3、設計實現思路
在表單與流程的整合中,咱們通常不建議把表單的全部數據都存儲在流程中,僅須要把參與流程跳轉的數據才存到流程變量中去。如請假出差的流程,以下所示:
如申請出差金額則須要參與流程的處理中去,於是在進入這個判斷節點以前,流程變量中須要存在這個變量,而且經過判斷這個變量值來讓流程自動跳轉。
1. 流程實例與業務表單關聯
基於以上設計的原則,流程中則不存儲業務表單的數據,那麼流程與業務表單又如何關聯?在Activiti 5 則比Jbpm4考慮了這塊,他在流程實例表及任務實例表相關運行表中增長了一個字段(BusinessKey),用來關聯業務表單的數據,咱們通常把這個字段稱爲業務主鍵。其關聯關係以下所示:
那麼流程表單的數據如何存儲及如何展現,從上圖能夠看到,咱們對自定義的表單提供了生成物理表的方式,那麼表單的存儲則經過在線生成的頁面獲取物理表必須要的數據,而後保存至物理表中。這須要咱們在設計表單時,生成一套表單數據規範,在審批時,可以進行頁面表單的數據驗證及存儲。另外,還須要對在執行過程當中的表單進行權限控制,如同一節點上審批相同的表單,不一樣角色的人員對錶單的字段的讀寫權限是不同的。
2. 在線表單設計功能要求
咱們把以上的需求進行了用例描述,則獲得以下示例
1. 設計表單模板
容許用戶預先設置好一些帶有漂亮格式的表單,如包括表頭、表腳及樣式。方便用戶調整表單。
2. 設計表單佈局
容許用戶在線進行在線佈局,目前通常來講都是基於表格的佈局方式。
3. 設計表單字段控件、數據類型、數據驗證
設計表單字段的輸入控件類型及數據類型,用於保證用戶輸入的數據的正確性
4. 設置表單字段權限
用於控制表單的字段的讀寫權限,結合工做流的審批,能夠更有效顯示數據。
5. 支持表單動態腳本
容許對錶單控件加上交互腳本,以實現如一些級聯更新等的數據交互等。
6. 表單預覽
能夠在線實時顯示錶單的顯示效果
7. 預設流程變量
把參與流程運算的表單字段標識爲流程變量。
3. 在線流程表單設計邏輯結構分析
生成流程表單的流程以下所示: