☰
3分钟配置带审批流的报销单:JVS三引擎可视化串联实战
2026/9/30 19:49:29 网站建设 项目流程

技术背景:为什么报销是验证低代码引擎协同的理想场景

报销业务天然具备高频提交、多角色参与、强规则约束(如金额阈值、部门归属、附件类型)和高用户感知等特征。对技术人员而言,它恰好覆盖结构化数据采集、状态驱动流转、异步自动化处理三类典型技术需求——这正是JVS表单引擎(JVS-form)、流程引擎(JVS-flow)、逻辑引擎(JVS-logic)协同设计的验证场域。

引擎职责与接口契约:松耦合下的能力编排

JVS三大引擎通过标准化上下文传递实现联动,不依赖硬编码集成:

  • 表单引擎:作为数据入口,提供拖拽式控件(数字输入框、富文本、多文件上传),支持前端校验规则(如amount > 0、正则匹配发票号)。提交后输出标准JSON Schema结构化数据;
  • 流程引擎:接收表单ID及数据快照,基于预设条件(如data.amount > 5000)动态路由至不同审批节点;支持抄送、加签、退回等状态变更,并将审批结果写入流程上下文;
  • 逻辑引擎:监听四大触发源(表单提交、流程节点完成、定时器、外部API调用),通过画布节点编排服务链路;可读取表单原始数据或流程上下文(如flowContext.approver.userId),执行数据更新、Webhook推送等动作。

三者间通过统一的数据上下文(Context)传递关键字段,例如:表单提交后自动携带formId与formData触发流程;流程节点完成后,自动注入flowInstanceId与approvalStatus供逻辑引擎消费。

实战步骤:三步完成可运行报销应用(含关键配置点)

所有操作均在浏览器内完成,无需重启服务、无需部署代码,保存即实时生效。

第一步:构建结构化表单(JVS-form)

  • 拖入「数字输入框」控件,字段名设为amount,开启「必填」并配置校验表达式:value > 0 && value % 1 === 0.01(确保两位小数);
  • 添加「多行文本」控件,字段名reason,启用富文本;
  • 插入「文件上传」控件,限制类型为image/jpeg,image/png,application/pdf,最大数量3;
  • 在表单设置中启用「提交前校验」,失败时阻断提交并提示错误位置。

第二步:配置条件分支审批流(JVS-flow)

  • 新建流程,关联上一步表单;
  • 首节点设为「部门负责人审批」,审批人按组织架构自动匹配deptLeader角色;
  • 添加「条件网关」节点,判断$form.amount > 5000:
  • 成立 → 追加「财务复核」节点,审批人固定为role:finance_auditor;
  • 不成立 → 直接进入「管理层终审」节点,启用「手写签名强制验证」开关;
  • 所有审批节点启用「超时自动提醒」,周期设为PT2H(2小时)。

第三步:编排自动化逻辑(JVS-logic)

  • 创建逻辑,触发类型选「表单提交后」,绑定对应表单ID;
  • 第一节点使用「公式计算」:

```
'BX' + formatDateTime(now(), 'yyyyMMdd') + padLeft(sequence('reimburse_seq', 5), '0')
```

输出字段映射至reimburseNo;

  • 第二节点使用「网络请求」:
  • 方法:POST;
  • URL:钉钉机器人Webhook地址(需提前在逻辑变量中配置为dd_webhook_url);
  • Body(JSON):

```json
{
"msgtype": "text",
"text": {
"content": "【报销待审】${formData.reason}(${formData.amount}元),审批链接:${flowContext.approvalUrl}"
}
}
```

  • 保存逻辑并启用。

发布为轻应用:从配置态到运行态的关键跃迁

配置完成后,需通过JVS-AppM模块打包发布,才能被终端用户访问:

  • 进入「应用管理」→「新建轻应用」,勾选已配置的表单、流程、逻辑及关联数据模型;
  • 设置权限范围:支持按组织架构(如/公司/销售部)、角色(budget_admin)或具体用户ID列表授权;
  • 发布后生成独立访问路径(如/app/reimburse-v1),PC端菜单直达,移动端扫码即开;
  • 权限策略与流程节点审批人规则自动对齐——例如流程中指定role:deptLeader,则发布时该角色成员自动获得审批入口。

提示:所有引擎均提供调试模式。可在表单提交后查看完整上下文日志(含formData、flowContext、logicContext),快速定位字段缺失或表达式错误。

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

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

立即咨询