快速实现自定义流程解决方案探讨
这种业务环境很多,比如某集团公司(也是我实际项目中经常碰到的)内部有上千份自定义表单,这类表单中约有70%的表单都是需要走流程的(一般以审批为多),归纳之,基于以下背景:
- 流程多,大多流程基于表单的审核
- 自定义表单多
- 涉及到审批的角色一般来说不是很多,流程一般也比较简单(如分支、合并、条件等)
- 不走流程的表单也要进行电子表单录入并归档
根据背景,涉及到的知识点如下:
- 工作流引擎:以轻型并且可扩展性佳的工作流引擎为佳,我这里选用的是osworkflow
- 自定义表单的实现
- 两者结合快速实现流程“从无到有”的建设
我这里给出我的设计思路,欢迎大家拍砖讨论:
- 自定义表单前台利用tinymce,自己编写form的Plugin,主要用于完成前台表单的快速可视化自定义,通过DOM对象自定义属性标注各个控件的类型、长度、是否必填项、默认值,支持的控件如文本,日期,数字,下拉框,复选框等,其中下拉框支持动态读取(如部门数据,用户数据等),这个Plugin的编写需要花费一定的时间,这也是obpm开源软件的实现思路,我觉得挺OK的
- 自定义表单后台通过JDBC动态建表的方式进行,根据前台tinymce得到的HTML片段可分析出各个控件类型和默认值等属性,作为create table的各个column,每个table增加默认必须的几个属性,如:ID:PK,Title:记录标题,DT:记录录入时间 Author:记录录入者,flowID:工作流ID(如果有的话),这样即可动态create table了
- 有了这套自定义表单工具后,需要给他加个通用查询组件,这很Easy,不罗嗦,这样每个表数据就支持查询了
- 建立通用的自定义表单查看,编辑,修改操作,通过JS和HTML的完美结合,实现这个也很简单,推荐的js框架JQuery,利用遍历Table的Column方式与js挂钩,即可给展现的页面模板数据填上相应的值
- 有了这套自定义表单工具后,创建电子表单的唯一工作量就是在tinymce的HTML编辑器中画电子表单,然后给动态需要输入的地方放入合适的控件即可,一般一个中等难度的电子表单10分钟内搞定
- 剩下的是让需要走流程的电子表单和osworkflow结合,流程由osworkflow控制,并结合这套自定义表单,实现流程的控制,这点我代码还在编写阶段,尚未实现,等实现了继续写:)
好了,说了这么多,晚上代码也写累了,睡觉去了,demo到时候等全部写完将一并放出,欢迎大家一起来讨论!
相关推荐
86417413 2020-11-25
83206733 2020-11-19
86276537 2020-11-19
83266337 2020-11-19
86256434 2020-11-17
zhouboxiao 2020-11-16
rise 2020-11-22
sssdssxss 2020-11-20
windle 2020-11-10
孙雪峰 2020-10-30
85477104 2020-11-17
xfcyhades 2020-11-20
liuxudong00 2020-11-19
cheidou 2020-11-19
gunhunti 2020-09-25
csdnYF 2020-11-15
达观数据 2020-11-11
playlinuxxx 2020-11-11