表单中每一个字段有固定的数据类型,并由不一样的数据控件展现,如日期、数字、单选或多选、下拉、多行文本甚至富文本编辑器。在实现更强的功能上,咱们还容许控件能实现脚本交互。
3、设计实现思路
在表单与流程的整合中,咱们通常不建议把表单的全部数据都存储在流程中,仅须要把参与流程跳转的数据才存到流程变量中去。如请假出差的流程,以下所示:
如申请出差金额则须要参与流程的处理中去,于是在进入这个判断节点以前,流程变量中须要存在这个变量,而且经过判断这个变量值来让流程自动跳转。
1. 流程实例与业务表单关联
基于以上设计的原则,流程中则不存储业务表单的数据,那么流程与业务表单又如何关联?在Activiti 5 则比Jbpm4考虑了这块,他在流程实例表及任务实例表相关运行表中增长了一个字段(BusinessKey),用来关联业务表单的数据,咱们通常把这个字段称为业务主键。其关联关系以下所示:
那么流程表单的数据如何存储及如何展现,从上图能够看到,咱们对自定义的表单提供了生成物理表的方式,那么表单的存储则经过在线生成的页面获取物理表必须要的数据,而后保存至物理表中。这须要咱们在设计表单时,生成一套表单数据规范,在审批时,可以进行页面表单的数据验证及存储。另外,还须要对在执行过程当中的表单进行权限控制,如同一节点上审批相同的表单,不一样角色的人员对表单的字段的读写权限是不同的。
2. 在线表单设计功能要求
咱们把以上的需求进行了用例描述,则获得以下示例
1. 设计表单模板
容许用户预先设置好一些带有漂亮格式的表单,如包括表头、表脚及样式。方便用户调整表单。
2. 设计表单布局
容许用户在线进行在线布局,目前通常来讲都是基于表格的布局方式。
3. 设计表单字段控件、数据类型、数据验证
设计表单字段的输入控件类型及数据类型,用于保证用户输入的数据的正确性
4. 设置表单字段权限
用于控制表单的字段的读写权限,结合工做流的审批,能够更有效显示数据。
5. 支持表单动态脚本
容许对表单控件加上交互脚本,以实现如一些级联更新等的数据交互等。
6. 表单预览
能够在线实时显示表单的显示效果
7. 预设流程变量
把参与流程运算的表单字段标识为流程变量。
3. 在线流程表单设计逻辑结构分析
生成流程表单的流程以下所示: