📄 Flowable 协同办公模块使用
内部资料,请刷新扫码登录
pigcloud
文档对应版本说明
本文档对应 PIGX-UI 5.2 flowable 版本, 👉🏻 旧 Activity 版本查看这里
# 业务介绍
- pigx-flow 模块通过整合 flowable 6.8 (opens new window) 完成简单的流程发起、审批、拒绝等操作。实现类似于企业微信、钉钉等企业常见的简易审批工作流。通过改进后的动态表单设计器,用户可以轻松创建和编辑动态表单,支持自定义字段和验证规则。而流程设计器则提供了直观的拖放界面,使得审批流使用体验类似于企业微信或钉钉。我们相信这些改进将极大地提升用户的工作效率和体验。
# 操作步骤
# 创建分组
- 流程管理 > 创建分组
# 创建流程
- 流程管理 > 创建流程
# 发起流程
# 处理待办
# 发起历史
# 特殊操作
# 审批人:部门主管

业务描述:发起人所在部门主管可以审批。
1.系统管理 > 岗位管理 > 添加岗位 > 添加部门主管 (DEPT_LEADER) 岗位

- 2.系统管理 > 用户管理 > 添加用户 > 设置用户为对应部门、对应岗位(部门主管)
# 进阶使用
# 业务侧发起流程
在实际业务场景中,您可能需要从自己的业务系统(如ERP、CRM等)中直接发起工作流,而不是通过PigX-OA的界面操作。这种情况下,您可以通过调用PigX-OA提供的API接口来实现流程的程序化发起。
@Autowire
RemoteFlowApiFlowService flowApiFlowService;
// 获取流程配置详情
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
processInstanceParamDto.setFlowId(flowId);
processInstanceParamDto.setStartUserId(String.valueOf(user.getId()));
Map<String, Object> paramMap = new HashMap<>();
// 设置发起人
Dict rootUser = Dict.create()
.set("id", processInstanceParamDto.getStartUserId())
.set("name", user.getUsername())
.set("type", NodeUserTypeEnum.USER.getKey());
paramMap.put("root", CollUtil.newArrayList(rootUser));
processInstanceParamDto.setParamMap(paramMap);
flowService.startProcessInstance(processInstanceParamDto);
具体参考可以在协同办公里面 F12 具体看下提交流程发起需要的参数

# 节点任务通知
版本说明
v5.6+ 后支持,以最新版本为准
支持在节点对应任务完成后(审批通过、审批拒绝)往目标接口 POST JSON BODY推送消息。
字段名 | 类型 | 描述 |
---|---|---|
flowId | String | 流程id (process id) |
processInstanceId | String | 流程实例id (process instance id) |
data | String | 表单数据 (form data) |
localData | String | 本地数据 (local data) |
nodeId | String | 节点id (node id) |
userId | Long | 用户id (user id) |
executionId | String | 执行id (execution id) |
taskId | String | 任务id (task id) |
approveDesc | String | 审批描述 (approval description) |
nodeName | String | 节点名称 (node name) |
taskType | String | 任务类型 (task type) |

# 示例接收代码(Java):
// http://localhost:9999/test/webhook
@Inner(value = false)
@PostMapping("/webhook")
public R test(@RequestBody Map<String,Object> body) {
// body 业务处理
return R.ok("success");
}
# 流程状态查询
在接收到节点任务通知后,您可能需要确认整个流程的状态(是否已完成或被拒绝)。这可以通过使用流程实例ID(processInstanceId)进行查询实现。系统提供了相应的API接口,允许您根据processInstanceId检索流程的当前状态、历史记录和相关详情。

# 表单设计器个性化
本项目表单设计器功能基于 form-create 开源版本,根据 form-create 开源协议允许商业化使用;
如果进阶使用或者个性需求,请参考官方文档和视频:
https://form-create.com/service/video
https://form-create.com/v3/guide/control