# 使用流程来进行提交后处理

# 概述

本功能用于在表单提交后通过流程引擎执行额外的业务逻辑处理,利用流程的可视化配置能力,实现免编程的业务扩展。例如任务下发后自动发送邮件通知等场景。

# 一、核心原理

# 表单提交自动发送信号

表单提交后,系统会自动发送信号,供流程监听触发:

操作类型 发送的信号
新增表单提交 formApplication.{formId}.submit formApplication.{formId}.submit.new
编辑表单提交 formApplication.{formId}.submit formApplication.{formId}.submit.update

# 获取表单Id

  1. 进入流程库 → 表单设计
  2. 找到目标表单,右键 → 复制Id
  3. 示例:3a1d4019-4bcf-586c-919d-9483158ebc71

# 二、示例演示:任务下发邮件通知

# 演示路径

  • 访问地址:https://localhost:5001/app/samples
  • 应用名称:附加处理-流程 → 任务下发

操作步骤

  1. 进入“任务下发”模块
  2. 点击“添加”按钮,填写任务派发单:
    • 工作内容:阿里云CDN+OSS账号开通
    • 处理人:史蒂夫
    • 日期:选择当前日期
  3. 点击“保存”提交表单

# 业务处理效果

表单提交后,系统自动发送邮件通知任务接收人,右下角弹出邮件接收提示。

# 三、配置步骤

# 创建处理流程

设计一个包含业务处理节点的流程(如发送邮件):

节点类型 配置内容 说明
发送邮件 收件人、标题、内容 使用腾讯企业邮箱或其他邮件服务

# 设置信号触发

  1. 打开流程:进入集团流程库 → 选择目标流程
  2. 添加信号开始节点
    • 拖出开始节点,类型改为“信号开始事件”
    • 打开属性,设置信号名称:
      formApplication.3a1d4019-4bcf-586c-919d-9483158ebc71.submit.new
      

# 配置数据映射

  1. 编辑事件数据:添加表单中需要使用的字段

    字段名 类型 说明
    工作内容 字符串 作为邮件内容
    处理人邮箱 字符串 作为收件人
  2. 连线映射

    信号数据 流程数据 说明
    工作内容 邮件内容 直接映射
    处理人邮箱 收件人 直接映射
    固定值 邮件标题 输入“工作任务下发通知”
  3. 连接节点:从信号开始节点连接到发送邮件节点

# 保存流程

完成配置后保存流程,即可生效。

# 四、完整配置示例

# 流程结构

    A[信号开始事件] -->   B[发送邮件]

# 信号配置

信号名称: formApplication.3a1d4019-4bcf-586c-919d-9483158ebc71.submit.new

事件数据:
  - 字段: 工作内容
    类型: 字符串
  - 字段: 处理人邮箱
    类型: 字符串

映射关系:
  工作内容 → 邮件内容
  处理人邮箱 → 收件人
  固定值 "工作任务下发通知" → 邮件标题

# 五、适用场景对比

方案 优点 缺点 适用场景
代码扩展 灵活,可实现任意逻辑 需要编程 复杂业务逻辑
流程触发 无需编程,可视化配置 需流程支持 通知、同步等常规操作

# 六、常见应用场景

场景 处理内容 配置方式
任务下发 发送邮件通知接收人 流程发送邮件节点
订单提交 更新库存状态 调用ESB或数据库更新
审批完成 触发子流程 流程间信号调用
数据同步 同步到其他系统 调用REST接口
数据更新 修改业务系统数据 ESB输出流节点

# 七、注意事项

  1. 表单Id准确性:确保复制的表单Id正确无误
  2. 信号类型区分:新增使用.submit.new,编辑使用.submit.update
  3. 按需提取字段:事件数据只添加流程需要的字段即可
  4. 固定值处理:流程中可直接设置固定值,无需表单字段
  5. 流程保存:修改后需保存并发布流程

# 八、总结

通过表单提交触发流程的方式,可以实现:

  • 无需编程:完全可视化配置
  • 邮件通知:自动发送邮件提醒
  • 数据同步:更新其他系统数据
  • 流程协作:触发其他业务流程
  • 集成扩展:调用ESB实现复杂集成

这种方案适合大多数需要表单后处理的场景,是配置化开发的典型应用。

通过这种方式,业务人员可以通过配置流程来实现表单提交后的各种业务处理,大大降低了开发门槛,提高了系统的灵活性和可维护性。