在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)

原业务流程平台审批单使用横向表纵向存储的思路,所有流程所使用的业务表单的数据都存在一张物理表中,表中每条数据记录包含Column定义和Value,Column所对应的字段信息,通过定义表来定义。这种做法就是在实现时,需要使用代码进行数据组装,比较繁琐。当表单较大时,界面展现速度慢。此方案查询统计支持有限。

为了满足可配置动态表单的需求,并解决上述方案的不足,采用NoSQL技术来优化设计,因为NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。按NoSQL的特性,可以灵活进行schema结构(列定义)的修改,理论上应该可以很好支持这些动态表单的持久化保存。

基于上述思路,采用审批单(表单)模版,以及NoSQL与关系型数据库相结合的方案,设计目标如下:

(1)使用用户化工具设计审批单模版;

(2)通过配置管理工具,配置审批单关键数据项,例如:标题、部门、关键数值(例如统计、流程流转规则所需要的)、时间等;

(3)审批单模版需要版本化管理;

(4)审批单数据存储分为两部分:一是关键字段内容,存储到关系型数据库中;整个表单(含HTML、CSS、JavaScript、图标等)连同数据内容,以文档整体对象存储到NoSQL数据库中;

(5)审批单上所涉及到的CSS、JS、图标等资源性文件,需要进行版本管理(在数据库中只保存他们的URL);

(6)历史表单查询保存原样;

(7)保留表单数据内容修改痕迹(存储流转中多版本表单),提供定期清理功能;

(8)保证高效读写性能,以及稳定性。

上述目标也适用于信息专栏内容。

另外,还有一套折中方案,也是在审批单模版的基础上,表单上非关键数据,组合成一个字符串保存(例如:JSON格式),在数据保存和提取展现时,按配置数据进行展现数据适配。

上述方案需要技术验证,欢迎读者反馈、建议。

参考资料:

基于PaaS平台开发流程审批框架界面设计方案(草稿)

从原理分析审批流表单配置功能使用的问题

通用流程化应用审批单设计思路(一)

动态表单的数据库结构设计

时间: 2024-10-07 11:35:41

在BPM动态可配置表单中使用NoSQL技术可行性分析——通用流程化应用审批单设计思路(二)的相关文章

用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)

1.办公系统中文档的定义 办公系统中的文档就是指对数据不敏感的业务,例如流程中的审批单.信息专栏.数据上报.信息记录等.而对于这些信息的管理,特别是时效性较强的管理记录,仍采用关系型数据库进行管理. (1)流程中审批单 流程中审批单由功能按钮区.特殊功能区.业务表单区.附件区.审批意见区等区域构成,其中,业务表单区理论上包含附件和意见,但是由于附件和意见的业务特殊性,需要单独进行管理,剩下的业务表单就可以看作文档了. 在一些流程审批业务中,业务信息有的是以Excel或word文件等方式专递,这样

流程管理中WEB表单开发服务需求分析及设计思路

在流程管理应用中,BPM产品所提供的表单设计工具,主要是面向开发人员的.而一些办公系统产品所提供的表单设计工具,受自身平台限制,无法在大型定制化应用中使用.在此通过对用户需求分析,提出WEB表单开发服务设计思路. 一.需求分析 现如今,在创新与改革社会环境推动下,办公管理系统的管理需求变化已经是常态了,如何让信息系统快速响应支撑管理需求的多变,已经成为使信息化建设和运维人员头痛的事情.特别是在一些大型企事业单位,快速支撑需求更突出.而原有信息系统很难适应这样的需求,必须走创新的路来解决这些需求,

流程表单开发设计器设计方案

目 录 前言 设计功能 使用场景模拟 快速开发表单 表单使用 主要功能 表单设计器功能 其他相关功能 数据存储设计 Demo界面及功能 表单设计器 表单设计器功能界面整体原型 定义数据项目 表单字段属性定义 前言 原办公业务流程平台审批单使用业务数据(横向)表纵向存储的思路,所有流程所使用的业务表单的数据都存在一张物理表中,表中每条数据记录包含列的(Column)定义和值(Value),列(Column)所对应的字段信息,通过定义表来定义.这种设计需要使用代码进行数据组装,比较繁琐.当表单内容较

办公管理支撑流程能力PaaS平台运维开发软件需求设计方案

1.概述 办公管理支撑流程能力PaaS平台(以下文中简称"能力平台")运维开发是指基于Cordys BOP 4 PaaS平台,通过二次开发,为运维开发人员提供快速支撑办公管理流程开发.实施.再造的能力,也为管理流程全生命周期管理提供数据支撑能力.管理目标及软件需求如下: (1)开发/运维人员 开发/运维人员是指系统平台管理人员.运维人员,例如:省公司与地市公司信息化系统管理员.开发/运维人员为专业信息化管理员,都是受过专业计算机教育,懂计算机软件维护.开发,但是,不是专业程序员,也就是

ETL调度开发(2)——配置表说明

根据需求我们需要创建部分所需的配置表,各表说明如下: 1.文件FTP主机配置表:SHELL_HOST_CFG COLUMN_NAME DATA_TYPE COMMENTS LATN_ID NUMBER HOST_ID NUMBER 主机ID HOST_NAME VARCHAR2 主机名 HOST_IP VARCHAR2 主机IP HOST_PORT VARCHAR2 主机端口 USERNAME VARCHAR2 用户名 PASSWD VARCHAR2 密码 HOST_PATH VARCHAR2

jQuery的下面是动态表格动态表单中的HTML代码

动态表格动态表单中的Jquery代码 <script type="text/javascript" src="/include/jquery/jquery-1.1.3.1.pack.js"></script><script language="javascript">$("#addjobline").css("cursor","pointer");$(

AEAI Portal-全动态Portlet配置

1. 概述 全动态Portlet,顾名思义,就是所有显示的内容全是动态的,包括显示样式和数据,显示的样式通过Html模板设置,而数据则可以有多种来源:常用的有ESB消息流程提供.通过Handler构造或通过门户管理中静态数据配置等. 2. 数据模板配置 全动态模板是html语言模板,在模板中定义数据显示的方式.样式等.相当于给数据穿了一件外衣.样式可以根据需要灵活设置,如table表格.ul列表等.下面我给出一个全动态模板样例,进行详细说明. 在门户管理中进入数据模板-->组件模板: 新增一个模

一个配置表优化的想法

今天下班在班车上想了一个关于配置表存储的小优化,起因是早上的时候发现了一个bug,这个bug是由于在运行时动态更改了一个列表配置导致的. 其实关于这种运行时"偷偷"改配置的问题我之前也有考虑过,这种应该是一不小心就会写出的,这不终于都出了一个. 至于如何预防这种问题,我认为在python里面似乎也没有什么好的解决方法,因为它不像c++有const语义,但有一个稍尽人事的预防措施就是把列表型的配置读成元组(tuple).而由此衍生出的一个想法便是:把配置表中所有的列表型配置都读成共享的元

spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】

最近做了一个spring boot 整合 quartz  实现 动态定时任务配置,在集群环境下运行的 任务.能够对定时任务,动态的进行增删改查,界面效果图如下: 1. 在项目中引入jar 2. 将需要的表导入数据库 官网上有不同数据库的脚本,找到对应的,导入即可 3. java 代码 将quartz 的相关配置文件,配置为暴露bean,方便后期引用. 有一处关键的地方,就是注入spring 上下文,也可以算是一个坑.如果,不注入spring 上下文,那么新添加的定时任务job,是新new 的一个