手把手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。
先想清楚业务,再动手画
我们设计的请假流程长这样:
- 员工提交请假申请
- 部门主管审批
- 审批通过 → 结束;审批驳回 → 打回修改
- 修改后再提交,重新走审批
动手画
在左侧工具栏里,把下面这些元素依次拖到画布上:
- 开始事件(圆圈):流程起点
- 用户任务(圆角矩形):命名为"提交请假申请"、"主管审批"
- 排他网关(菱形):判断审批是否通过
- 结束事件:流程终点
再用箭头把元素按顺序连起来,然后选中"主管审批"任务,在右侧属性面板里把名称、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),仅供参考