# 使用流程来进行提交后处理
# 概述
本功能用于在表单提交后通过流程引擎执行额外的业务逻辑处理,利用流程的可视化配置能力,实现免编程的业务扩展。例如任务下发后自动发送邮件通知等场景。
# 一、核心原理
# 表单提交自动发送信号
表单提交后,系统会自动发送信号,供流程监听触发:
| 操作类型 | 发送的信号 |
|---|---|
| 新增表单提交 | formApplication.{formId}.submit formApplication.{formId}.submit.new |
| 编辑表单提交 | formApplication.{formId}.submit formApplication.{formId}.submit.update |
# 获取表单Id
- 进入流程库 → 表单设计
- 找到目标表单,右键 → 复制Id
- 示例:
3a1d4019-4bcf-586c-919d-9483158ebc71
# 二、示例演示:任务下发邮件通知
# 演示路径
- 访问地址:https://localhost:5001/app/samples
- 应用名称:附加处理-流程 → 任务下发
操作步骤:
- 进入“任务下发”模块
- 点击“添加”按钮,填写任务派发单:
- 工作内容:阿里云CDN+OSS账号开通
- 处理人:史蒂夫
- 日期:选择当前日期
- 点击“保存”提交表单
# 业务处理效果
表单提交后,系统自动发送邮件通知任务接收人,右下角弹出邮件接收提示。
# 三、配置步骤
# 创建处理流程
设计一个包含业务处理节点的流程(如发送邮件):
| 节点类型 | 配置内容 | 说明 |
|---|---|---|
| 发送邮件 | 收件人、标题、内容 | 使用腾讯企业邮箱或其他邮件服务 |
# 设置信号触发
- 打开流程:进入集团流程库 → 选择目标流程
- 添加信号开始节点:
- 拖出开始节点,类型改为“信号开始事件”
- 打开属性,设置信号名称:
formApplication.3a1d4019-4bcf-586c-919d-9483158ebc71.submit.new
# 配置数据映射
编辑事件数据:添加表单中需要使用的字段
字段名 类型 说明 工作内容 字符串 作为邮件内容 处理人邮箱 字符串 作为收件人 连线映射:
信号数据 流程数据 说明 工作内容 邮件内容 直接映射 处理人邮箱 收件人 直接映射 固定值 邮件标题 输入“工作任务下发通知” 连接节点:从信号开始节点连接到发送邮件节点
# 保存流程
完成配置后保存流程,即可生效。
# 四、完整配置示例
# 流程结构
A[信号开始事件] --> B[发送邮件]
# 信号配置
信号名称: formApplication.3a1d4019-4bcf-586c-919d-9483158ebc71.submit.new
事件数据:
- 字段: 工作内容
类型: 字符串
- 字段: 处理人邮箱
类型: 字符串
映射关系:
工作内容 → 邮件内容
处理人邮箱 → 收件人
固定值 "工作任务下发通知" → 邮件标题
# 五、适用场景对比
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 代码扩展 | 灵活,可实现任意逻辑 | 需要编程 | 复杂业务逻辑 |
| 流程触发 | 无需编程,可视化配置 | 需流程支持 | 通知、同步等常规操作 |
# 六、常见应用场景
| 场景 | 处理内容 | 配置方式 |
|---|---|---|
| 任务下发 | 发送邮件通知接收人 | 流程发送邮件节点 |
| 订单提交 | 更新库存状态 | 调用ESB或数据库更新 |
| 审批完成 | 触发子流程 | 流程间信号调用 |
| 数据同步 | 同步到其他系统 | 调用REST接口 |
| 数据更新 | 修改业务系统数据 | ESB输出流节点 |
# 七、注意事项
- 表单Id准确性:确保复制的表单Id正确无误
- 信号类型区分:新增使用
.submit.new,编辑使用.submit.update - 按需提取字段:事件数据只添加流程需要的字段即可
- 固定值处理:流程中可直接设置固定值,无需表单字段
- 流程保存:修改后需保存并发布流程
# 八、总结
通过表单提交触发流程的方式,可以实现:
- ✅ 无需编程:完全可视化配置
- ✅ 邮件通知:自动发送邮件提醒
- ✅ 数据同步:更新其他系统数据
- ✅ 流程协作:触发其他业务流程
- ✅ 集成扩展:调用ESB实现复杂集成
这种方案适合大多数需要表单后处理的场景,是配置化开发的典型应用。
通过这种方式,业务人员可以通过配置流程来实现表单提交后的各种业务处理,大大降低了开发门槛,提高了系统的灵活性和可维护性。