手把手5步用Camunda Modeler从零搭建一个请假审批流程

手把手5步用Camunda Modeler从零搭建一个请假审批流程

手把手5步用Camunda Modeler从零搭建一个请假审批流程

【免费下载链接】camunda-modelerA modeling solution for BPMN, DMN, and Forms based on bpmn.io. As a companion tool to your favorite IDE it supports you in implementing solutions with Camunda.项目地址: https://gitcode.com/gh_mirrors/ca/camunda-modeler

你有没有遇到过这种场面:流程规则写在文档里,决策逻辑锁在Excel表里,审批表单散落在各个系统里。业务要改一条规则,得先翻文档、再改表格、最后通知开发改代码,一个来回就是好几天。团队的"流程"看得见,却摸不着,更跑不起来。

这正是很多团队在推进业务流程自动化时卡住的地方——缺的不是流程,而是一套能让流程、规则和界面在一起工作的建模工具

如果你也在为这件事头疼,这篇文章就是为你写的。我们会用 Camunda Modeler 这款开源建模工具,亲手把一条"请假审批流程"从零跑通:先画流程,再写决策规则,最后配一个审批表单。全程跟着做,大概一顿午饭的时间就够了。

顺便说一句,Camunda Modeler 是免费开源的,源码托管在 GitCode 的镜像仓库里,你可以放心跟练。

为什么是 Camunda Modeler,而不是继续用文档和Excel?

先说结论:因为流程不是"画出来"就完事的,最终要交给引擎去执行。Camunda Modeler 的价值在于,它基于 bpmn.io 技术栈,支持BPMN 2.0、DMN 1.3 和 Forms 三种国际标准建模语言,而且和 Camunda 执行引擎天然打通。

这意味着同一份模型,既能在画布上看,也能直接部署运行。画出来的不是"示意图",而是"可执行的资产"。

对比维度文档 + Excel 的做法Camunda Modeler 的做法
流程怎么表达文字描述,千人千面BPMN 标准图形,全球统一
规则放哪里Excel 公式,难维护DMN 决策表,可复用可测试
界面怎么来开发手工写页面表单设计器拖拽生成
能不能执行不能,只能参考直接导出部署到引擎

对业务分析师和产品经理来说,最大的友好之处在于:你不用写代码,也能把"业务想法"变成"可运行的模型"。

第一关:环境就绪——最快跑通开发环境的方法

先别急着装环境,我们先把目标定清楚:这一关的验收标准是,npm run dev之后,屏幕上弹出 Camunda Modeler 的主界面

需要准备什么

  • 一台装了 Node.js v16 或更高版本的电脑(Windows 用户建议用 Git Bash 或 WSL)
  • npm 包管理器
  • Git 客户端

三步走

# 1. 拉取源码 git clone https://gitcode.com/gh_mirrors/ca/camunda-modeler cd camunda-modeler # 2. 安装依赖(第一次会稍久,耐心等) npm install # 3. 启动开发模式 npm run dev

光看命令没感觉,跑起来才是真的。启动后你会看到下面这个界面,这就是我们要打交道的主战场:左边是元素工具栏,中间是画布,右边是属性面板,底部有错误检查和引擎版本信息。

这就是 Camunda Modeler 的主界面,画布、工具栏、属性面板一应俱全。

顺手认识一下目录

知道几个关键目录就够了,不用全背:

  • app/:主进程逻辑,窗口管理、文件读写都在这
  • client/src/app/tabs/:各类编辑器,bpmn/dmn/form/各占一块
  • client/src/app/plugins/:插件系统,后面想扩展功能往这看
  • test/e2e/:端到端测试,改完代码跑一跑很安心

第二关:画出第一条流程——请假申请怎么走

环境就绪,进入正题。这一关的验收标准:画布上出现一条从"提交申请"到"流程结束"的完整流程,且底部状态栏显示 0 errors

先想清楚业务,再动手画

我们设计的请假流程长这样:

  1. 员工提交请假申请
  2. 部门主管审批
  3. 审批通过 → 结束;审批驳回 → 打回修改
  4. 修改后再提交,重新走审批

动手画

在左侧工具栏里,把下面这些元素依次拖到画布上:

  • 开始事件(圆圈):流程起点
  • 用户任务(圆角矩形):命名为"提交请假申请"、"主管审批"
  • 排他网关(菱形):判断审批是否通过
  • 结束事件:流程终点

再用箭头把元素按顺序连起来,然后选中"主管审批"任务,在右侧属性面板里把名称、ID 填好。画完的样子,跟下面这张图神似——这张是项目里自带的示例,画的是跨部门协作的发票处理流程,泳道、网关、数据存储都用上了,可以当临摹对象。

BPMN 是 Camunda Modeler 的核心建模语言,泳道、事件、网关都是它的基础积木。

模型的背后其实是 XML

画布上的图形,底层对应的是 BPMN XML。切到"XML"标签页能看到全貌,核心结构长这样:

<process id="leaveProcess"> <startEvent id="start" name="开始" /> <userTask id="submitLeave" name="提交请假申请" /> <exclusiveGateway id="decision" name="审批通过?" /> <userTask id="managerApprove" name="主管审批" /> <endEvent id="end" name="结束" /> </process>

白话解释:这段 XML 就是在告诉引擎"流程按这个顺序跑"。你不需要手写它,画布上的每一次拖拽,都会自动生成对应的 XML。

让流程真正"有规则"

现在流程只会走直线,还不会"判断"。审批通过走哪条、驳回走哪条,这个"判断"由下一关的决策表来接管。先给网关连两条条件流,条件占位符留空,我们马上回来填。

第三关:把规则交给决策表——DMN 怎么用

排他网关自己不会判断,它需要一份"规则说明书"。这就是 DMN 的用武之地。这一关的验收标准:建好一张决策表,输入请假天数,能稳定输出"自动批准"或"转人工审批"

新建 DMN 文件

在 Camunda Modeler 里新建文件时选择 DMN 类型,你会进入决策表编辑视图。这是项目自带的一张示例决策表,左边是输入,右边是输出,一眼就能看懂逻辑:

DMN 决策表把"如果……那么……"的规则平铺成表格,业务人员也能直接维护。

设计我们的请假规则

新建一张决策表,配置三个字段:

输入输入输出
请假天数是否紧急审批方式
<= 3自动批准
> 3任意转人工审批

规则很简单:三天以内且非紧急的假,系统直接批;超过三天,交给主管人工判断。这张表就是网关要的"说明书"。

怎么和流程对接

在 BPMN 里,排他网关的条件表达式可以引用 DMN 的输出变量。比如"主管审批"分支的流程条件写审批方式 == "转人工审批",网关就知道该往哪条线走。

小提示:规则尽量少而清晰。决策表一页能看完是最好的状态,超过就说明该拆分了。

第四关:给审批配上表单——Forms 表单怎么设计

流程和规则都齐了,但"提交请假申请"这个任务,员工总得有个界面去填吧?这就是 Forms 模块的活。这一关的验收标准:表单能收集姓名、请假天数、请假原因三个字段,并且必填项校验生效

拖拽生成表单

新建 Form 文件,从左侧组件库拖入文本框、数字框和文本域,分别绑定到对应的表单字段。项目示例里的这张发票表单就是这个套路——字段、说明、校验规则都在可视化界面里配置:

表单设计器里拖拽字段、配置校验,无需写前端代码。

字段的配置长什么样

表单的底层是 JSON 配置。比如"请假天数"这个数字框,配置大概是这样的:

{ "type": "number", "id": "leaveDays", "label": "请假天数", "validate": { "required": true, "min": 1, "max": 30 } }

白话解释:这段配置的意思是"这是一个叫 leaveDays 的数字字段,必填,取值范围 1 到 30 天"。

把表单挂到任务上

最后一步很关键:回到 BPMN 流程,选中"提交请假申请"用户任务,在属性面板里指定这个表单的 ID。这样流程引擎在跑任务时,就知道该给用户渲染哪个界面了。流程、规则、表单三块拼图,到这里算是齐了。

第五关:串起来交付——导出、检查与部署

三件套齐活,最后串起来验证。这一关的验收标准:三个文件都能通过语法检查,导出格式正确,能提交到版本库

过一遍质量检查

每个编辑器底部都有错误检查器。如果流程、决策表或表单有问题,会直接标红报错。养成习惯:每次改完模型,先看底部状态栏是不是 0 errors

导出与保存

  • 流程可导出为PNG / SVG / BPMN XML
  • 决策表可导出为DMN XML
  • 表单可导出为表单 JSON

文件都是纯文本格式,非常适合放进 Git 里做版本管理。这也是团队协作的关键——模型和代码一样,需要评审、留痕、可回溯

关于部署

Camunda Modeler 本身是建模工具,不负责运行流程。但它和 Camunda 执行引擎深度集成,模型文件可以直接部署到引擎上开始跑。这也是它被称为"你最爱 IDE 的搭档"的原因——建模归建模,代码归代码,各自干最擅长的事。

第一次运行就报错怎么办?避坑指南

新手最常见的问题,我们提前排掉几个雷:

问题1:npm install卡住或报原生模块编译错误

多半是 Node 版本或编译环境问题。先检查 Node 版本是否满足要求,Windows 用户务必在 Git Bash 或 WSL 里操作。

问题2:启动后画布空白,元素拖不上去

检查底部错误检查器有没有报错,然后看看当前打开的是不是正确的文件类型。BPMN 文件拖不进 DMN 编辑器,这是最常见的乌龙。

问题3:网关两条分支条件都为空

排他网关的每个出口都需要条件表达式,否则流程引擎不知道往哪走。回到 XML 视图检查条件字段是否真的写上了。

问题4:表单字段在流程里不生效

大概率是表单 ID 和任务里引用的 ID 对不上。统一 ID 命名规范,能省掉很多这类排查时间。

常见疑问 Q&A

Q:我是产品经理,不懂编程,能用吗?A:完全可以。建模主要靠拖拽,表单配置是可视化操作。只要你能讲清楚业务流程,就能画出模型。

Q:BPMN、DMN、Forms 一定要一起用吗?A:不一定。简单流程可以只用 BPMN,规则复杂了再加 DMN,有用户交互再加 Forms。按需取用即可。

Q:画好的模型能迁移到其他系统吗?A:BPMN、DMN 都是国际标准格式,理论上兼容任何支持这些标准的引擎,并不绑定单一厂商。

Q:想给工具加自定义功能怎么办?A:项目内置插件系统,代码在client/src/app/plugins/。可以先看看内置插件的写法,再仿照实现自己的插件。

行动清单与下一步

到这里,一条完整的请假审批流程已经跑通了。回头看,其实就做了四件事:

  • 画 BPMN 流程,确定"怎么走"
  • 写 DMN 决策表,确定"怎么判"
  • 配 Forms 表单,确定"怎么填"
  • 导出文件入库,确定"怎么交付"

给你的下一步建议:别急着学更多功能,先挑一个你手里真实的业务场景,比如工单分配、报销审批、客户跟进,用同样的四步走一遍。遇到不会的,去项目里看示例文件、看docs/目录,或者翻翻CHANGELOG.md了解版本演进,都比空想学得快。

流程不会自己变好,但有了顺手趁手的建模工具,它至少能被看清楚、被说清楚、被跑起来。现在就打开 Camunda Modeler,画下属于你的第一条流程吧。

【免费下载链接】camunda-modelerA modeling solution for BPMN, DMN, and Forms based on bpmn.io. As a companion tool to your favorite IDE it supports you in implementing solutions with Camunda.项目地址: https://gitcode.com/gh_mirrors/ca/camunda-modeler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考