Flowable/Camunda实战:手把手教你用BPMN 2.0图标画一个完整的审批流程图
2026/5/9 19:20:30 网站建设 项目流程

Flowable/Camunda实战:从零绘制完整审批流程图的BPMN 2.0指南

当你在Flowable Modeler中新建一个空白流程时,面对左侧琳琅满目的BPMN图标,是否曾感到无从下手?本文将带你用Camunda Modeler(同样适用于Flowable)逐步构建一个包含部门审批、财务审核、自动通知等完整环节的采购审批流程。我们会从最基础的拖拽图标开始,直到生成可部署的.bpmn文件——整个过程就像搭积木一样直观。

1. 环境准备与基础元素认知

在开始绘制前,建议下载最新版Camunda Modeler(与Flowable兼容),其界面主要分为四个区域:左侧的BPMN元素面板、中央的绘图画布、右侧的属性配置栏以及底部的调试控制台。我们先来认识几个核心元素:

  • 用户任务(User Task):需要人工处理的节点,如图中部门经理审批
  • 服务任务(Service Task):自动执行的逻辑,如发送邮件通知
  • 排他网关(Exclusive Gateway):菱形图标,用于条件分支
  • 定时事件(Timer Event):时钟图标,实现延迟触发

提示:双击画布空白处可设置全局流程属性,建议先定义processId和name

2. 构建采购审批主干流程

2.1 绘制基础任务链

  1. 从左侧面板拖拽**开始事件(空心圆)**到画布
  2. 添加第一个用户任务,命名为提交采购申请
  3. 连接后续任务:
    • 部门初审(用户任务)
    • 金额>5000?(排他网关)
    • 财务复核(用户任务,条件分支)
  4. 最终汇合到归档记录(服务任务)
<!-- 示例:部门初审的用户任务定义 --> <userTask id="deptReview" name="部门初审" flowable:assignee="${applicant.deptManager}"> <extensionElements> <flowable:formProperty id="approved" type="boolean" label="是否批准"/> </extensionElements> </userTask>

2.2 配置网关条件

在金额判断网关处,需要设置流转条件:

路径目标条件表达式说明
财务复核${amount > 5000}大额采购流程
直接归档${amount <= 5000}小额采购快速通道

注意:表达式语法默认使用JUEL,也可切换为Groovy

3. 高级功能集成

3.1 添加定时事件

当需要实现"超时自动通过"功能时:

  1. 部门初审任务添加边界定时事件
  2. 配置属性:
    • Timer Definition Type: Duration
    • Timer Definition: PT48H (48小时)
  3. 连接后续自动审批服务

3.2 异常处理设计

通过错误边界事件处理审批拒绝:

  1. 在审批任务添加红色闪电图标
  2. 定义错误代码:REJECTED
  3. 连接补偿任务:
    • 通知申请人修改
    • 重置表单状态
// 对应的JavaDelegate示例 public class RejectionNotifier implements JavaDelegate { public void execute(DelegateExecution exec) { String applicant = (String) exec.getVariable("applicant"); emailService.send(applicant, "您的申请需要修改"); } }

4. 流程调试与优化

4.1 模拟运行测试

Camunda Modeler内置模拟器可逐步验证:

  1. 点击右上角"Start Process"按钮
  2. 在调试面板填写初始变量:
    { "amount": 7500, "applicant": "user123" }
  3. 逐步执行并观察变量变化

4.2 性能优化技巧

  • 对高频任务启用异步特性
    <serviceTask id="archiveTask" flowable:async="true"/>
  • 使用执行监听器记录耗时:
    exec.getEngineServices() .getRuntimeService() .createVariableInstanceQuery() .processInstanceIdIn(exec.getId()) .list();

5. 可视化增强与文档化

5.1 添加注释元素

  • 使用文本注释解释复杂逻辑
  • 关联线连接到相关元素
  • 分组相关节点到泳道

5.2 生成流程图文档

通过Modeler的Export功能可生成:

  • 高分辨率PNG流程图
  • 带交互注释的HTML文档
  • 符合规范的BPMN 2.0 XML

最后分享一个实用技巧:在复杂流程中,我习惯先用便签纸手绘草图确定主要节点,再在工具中细化。对于包含超过15个节点的流程,建议拆分为子流程——这能让维护成本降低40%以上。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询