前端事件:
可与列表页面的行内按钮绑定,定义按钮点击后要完成的动作。
如:配置一个事件类型为【新建】的前端事件 A,在表单列表配置时添加的按钮,可通过绑定事件 A 来实现点击按钮后起草一个新的流程。
- 事件名称:按照业务场景定义事件名称
- 事件编码:尽量使用有实际含义的可读性的字符串定义事件编码
- 事件类型:新建,产品预置的事件类型,可实现起草一个指定表单的流程。项目也可以自定义扩展,定制其他事件类型
事件类型【新建】
功能:根据选择的流程表单,起草一个新流程
配置项:
- 流程表单:选择需要新建的流程表单
- 业务类型:选择流程表单对应的业务类型
- 新窗口打开:新建的流程是否在新窗口打开
- 默认值:配置新建时流程表单字段的值
- 赋值方式:赋表单值,将当前表单指定字段的值写入流程表单(目标表单)指定的字段;手动输入:可以直接赋值,如果是下拉菜单/复选框等,需要注意写入的是 Key 值,不是 value 值
提示:支持设置多个字段的值
后端事件:
在流程设计中使用,定义进入环节或环节提交等场景下要完成的动作。
如:配置一个事件类型为【数据复制】的事件 B,实现流程结束时修改其他表单的数据
- 事件名称:按照业务场景定义事件名称
- 事件编码:尽量使用有实际含义的可读性的字符串定义事件编码
- 事件类型:数据复制,产品预置的事件类型,可实现将目标表单的数据写入当前表单,或当前表单的数据写入目标表单。项目也可以自定义扩展,定制其他事件类型
事件类型【数据复制】
功能:实现将目标表单的数据写入当前表单 或 当前表单的数据写入目标表单中
配置项:
- 数据流向:目标表单数据传入当前表单,一般用于进入表单前要处理的事件;当前表单数据传入目标表单,一般用于离开表单前要处理的事件,主要是提交流程要触发的事件使用。
- 外键(当前表单):当前表单中用于记录目标表单主键值的字段。
- 目标表单:数据复制的目标表单
- 主键(目标表单):目标表单中记录数据唯一标识的字段。一般使用【文档唯一 ID】,这是数据库中记录数据的 id,具有唯一性。也可以使用其他字段,如:名称等,但必须确保选择的字段能唯一标识一条数据。
- 写入数据:(当数据流向选择目标表单数据传入当前表单)
- 赋值方式:赋表单值,将目标表单指定字段的值写入当前表单指定的字段;手动输入,可以直接赋值,如果是下拉菜单/复选框等,需要注意写入的是 Key 值,不是 value 值;公式,可以选择公式进行赋值
提示:
- 支持设置多个字段的值
- 子表数据变更会全部数据都变更,不能部分变更
- 写出数据:(当数据流向选择当前表单数据传入目标表单)
- 数据变更模式:新增,主要使用在多值的时候,会追加字段数据;变更,主要是用于替换数据
- 赋值方式:赋表单值,将当前表单指定字段的值写入目标表单指定的字段;手动输入,可以直接赋值,如果是下拉菜单/复选框等,需要注意写入的是 Key 值,不是 value 值;公式,可以选择公式进行赋值
- 去除重复:主要针对多值的数据,如果重复,就去掉。
样例:
以合同审批、变更为例,实现需求:合同审批完成后,在合同列表中每行合同数据后显示“变更”按钮,点击后可触发起草当前合同的变更单 且变更单中默认显示原合同的信息。变更单流转结束时将变更内容回写至原合同。
实现步骤:
- 完成合同审批、合同变更的表单设计、流程定义等
提示:因为合同变更流转结束时需要更新合同审批的信息,所以在变更表单中可以添加一个字段“合同 ID”记录着原合同的 beanId(文档唯一 ID),便于通过此 id 去获取原合同数据完成更新
- 合同审批表单-事件管理,添加前端事件【合同变更】,事件类型选择【新建】,目标表单为合同变更单,默认值配置将当前表单的文档唯一 ID 写入目标表单(合同变更)的“合同 ID”字段中。配置如下图所示:
- 合同审批表单-列表配置,添加按钮【变更】,触发事件选择 2 中维护的前端事件【合同变更】
通过上述步骤可实现的效果:合同审批单列表页面显示操作按钮“变更”,点击按钮后起草合同变更单,列表显示效果如下:
- 合同变更表单-事件管理,添加后端事件【合同变更起草】,事件类型选择【数据复制】,目的是将原合同信息带入合同变更单中。配置如下图所示:
- 修改合同变更单的流程定义,在开始环节中配置“进入环节表单事件”,选择 4 中维护的后端事件【合同变更起草】
通过上述配置,可实现,在合同审批列表中点击变更按钮后,将合同审批的数据带入合同变更单中。
- 合同变更表单-事件管理,添加后端事件【合同变更结束】,事件类型选择【数据复制】,目的是将合同变更的数据回写(更新)到合同审批单中。配置如下:
- 修改合同变更单的流程定义,在流程结束的前一个环节中配置“离开环节表单事件”,选择 6 中配置的后端事件【合同变更结束】
通过上述配置,可实现在合同变更流程结束时自动将变更单中的数据更新至合同审批单中。