1
0xD800 221 天前
从后端视角来看,需要表单的有两个接口:
发起流程:startProcessInstanceXX 审核流程:taskService.complete 参数都是 Map<String, Object>,也就是表单形式无所谓,你只需要前端把这个 Map<String, Object>传给你,你再传给流程引擎(Camunda)即可。 举例子: 具体业务要求可能会有表单字段的权限控制,不同节点展现的表单不一样。 此时可以基于 bpmnjs 扩展设计器,在 userTask 上绑定表单标识,然后前端通过表单标识来决定渲染哪个表单即可。 实际运作流程: 1. 流程管理员配置好流程图和启动表单及各个用户任务的表单后 2. 普通业务员发起流程 2.1 通过流程标识去获取启动表单, 2.2 输入表单内容,并提交发起流程接口(runtimeService.startProcessInstanceByXX) 3. 审批人查询待办获取到任务后,通过 taskId 和 processInstanceId 拿到该 userTask 绑定的表单 4. 审批人输入表单内容后提交审批( taskService.complete 接口) |
2
whnoob OP @0xD800 我可以理解成 complete 提交的时候按照这种结构提交? {"user_info": {"name": "test "}}。[![pkMja6J.png]( https://s21.ax1x.com/2024/05/23/pkMja6J.png)]( https://imgse.com/i/pkMja6J)
但是这个要和 task form 里的属性对应,貌似映射不了 form 表单的 reference |
6
whnoob OP @0xD800 我理解错了,我看到的那个自定义表单貌似没有用 camunda 表单的能力,自定义表单的数据是单独做的管理,然后在网关需要的时候,作为变量提交到 task 上去,camunda 只利用了流程相关的东西
多谢大佬耐心讲解,刚开始学习,可能概念不是很清晰,我的疑问大概理清楚了,多谢 |
7
Marinaaaa 220 天前
|