流程表單開發設計器設計方案

肖永威發表於2015-05-10

目 錄

前言

原辦公業務流程平臺審批單使用業務資料(橫向)表縱向儲存的思路,所有流程所使用的業務表單的資料都存在一張物理表中,表中每條資料記錄包含列的(Column)定義和值(Value),列(Column)所對應的欄位資訊,通過定義表來定義。這種設計需要使用程式碼進行資料組裝,比較繁瑣。當表單內容較大時,介面展現速度較慢,而且此方案很難支撐查詢統計需求。

為了滿足使用者可自定義快速開發流程表單的需求,並解決上述方案的不足,採用NoSQL技術來優化設計,因為NoSQL無需事先為要儲存的資料建立欄位,隨時可以儲存自定義的資料格式。按NoSQL的特性,可以靈活進行schema結構(列的定義)的修改,理論上應該可以很好支援這些動態表單的持久化儲存。

基於上述文件資料庫管理思路,採用審批單(表單)模版,以及NoSQL與關係型資料庫相結合的方案,設計目標如下:

  • 使用使用者化工具設計審批單(模版)
  • 按規範規則,定義審批單關鍵資料項,例如如下統一命名關鍵資料項,標題、部門、關鍵數值(例如統計、流程流轉規則所需要的)、時間等
  • 審批單(模版)通過業務資訊管理進行版本化管理
  • 審批單資料儲存分為兩部分:一是關鍵欄位內容,隨同流程資料儲存到關係型資料庫中;整個表單(含HTML、CSS、JavaScript、圖示等)連同資料內容,以文件整體物件儲存到NoSQL資料庫中
  • 審批單上所涉及到的CSS、JS、圖示等資源性檔案,需要進行版本管理(在資料庫中只儲存他們的URL);

注:“模版”為管理概念,通過業務資訊管理上線使用的表單可以定義為模版,依賴業務資訊進行版本管理。

設計功能

使用場景模擬

1.快速開發表單

Created with Raphaël 2.1.2運維人員運維人員表單設計器表單設計器MongoDBMongoDB表單資訊管理表單資訊管理1.按需求繪製表單()2.定義表單資料項()3.生成HTML文件()4.儲存文件到資料集()5.釋出開發完成表單()

2.表單使用

Created with Raphaël 2.1.2運維人員運維人員業務資訊管理業務資訊管理表單資訊管理表單資訊管理流程等其他環節流程等其他環節MongoDBMongoDB1.新建業務()2.新增表單()3.展現表單列表()4.選擇表單()5.略......()6.提取表單文件並形成縮圖()7.解析表單關鍵資訊()8.儲存業務資訊()9.更新表單使用狀態()

主要功能

表單設計器功能

  • 佈局管理:增加/刪除表單佈局區塊
  • 編輯表單標題:
  • 表單內容管理:在區塊內按行管理,增加1行1欄、1行2欄、1行3欄、1行4欄,刪除行
  • 新增表單欄位:定義表單欄位名稱、顯示名稱、資料i型別、驗證等
  • 表單樣式管理:選擇預設CSS樣式
  • 獲取介面原始碼文件:
  • 儲存表單:儲存表單文件到MongoDB資料庫中
  • 表單資訊管理:釋出表單到表單資訊表中(MongoDB中的ID、時間、標題、建立人、狀態、描述等)

其他相關功能

  • 解析表單關鍵字功能:解析按規範規則所定義的欄位關鍵字,以及將來所提供統計資料介面的資料定於
  • 生成表單縮圖:生產靜態表單或圖片
  • 表單預覽:預覽所設計表單,可以與“生成表單縮圖”通用

資料儲存設計

業務文件的資料一般情況下分為三部分:業務文件資料、意見資料和附件。三部分資料在本專案中儲存在MongoDB資料中,表單文件和意見文件儲存在collections集合中,其中附件儲存的db.fs.files集合中,三部分資料以內嵌文件方式儲存。
附近儲存使用GridFS。GridFS是一種將大型檔案儲存在MongoDB的檔案規範。

Demo介面及功能

表單設計器

表單設計器功能介面整體原型

主介面

定義資料專案

這裡寫圖片描述

表單欄位屬性定義

屬性型別:

  • 單行文字
  • 多行文字
  • 下拉選單
  • 日期時間
  • 複選控制元件
  • 單選控制元件
  • 表格控制元件

格式化型別

  • 字元(abc)
  • 數字(3.14)
  • 電子郵件(admin@163.com)
  • 網址(www.10010.com)

注:下拉選單資料內容,最好來自資料庫事先定義。

參考:
從原理分析審批流表單配置功能使用的問題 肖永威 2014.2
在BPM動態可配置表單中使用NoSQL技術可行性分析——通用流程化應用審批單設計思路(二) 肖永威 2014.12
用MongoDB資料庫來管理辦公系統中文件型的表單和資訊——通用流程化應用審批單設計思路(二,續) 肖永威 2015.1

相關文章