You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

1.1.0稳定版zeebe Java客户端如何完成USER_TASK?

Zeebe 1.1.0 版本用户任务处理方案

首先明确:Zeebe 1.1.0稳定版没有推出独立的USER_TASK专属操作API,该版本的用户任务是基于普通Job机制封装实现的,不存在遗漏API的问题,Java客户端操作步骤如下:

1. 注册用户任务Job Worker

BPMN中定义的USER_TASK默认任务类型为io.camunda.zeebe:user-task,你需要先注册对应类型的worker监听用户任务:

// 初始化ZeebeClient之后注册worker
zeebeClient.newWorker()
    .jobType("io.camunda.zeebe:user-task")
    .handler((client, job) -> {
        // 读取用户任务元数据:处理人、候选组、表单配置等
        String assignee = job.getCustomHeaders().get("io.camunda.zeebe:assignee");
        Map<String, Object> processVariables = job.getVariablesAsMap();
        
        // 此处编写业务逻辑:比如将任务写入待办库、推送待办通知给处理人
        // ...

        // 若无需等待用户操作,直接完成任务可在此处调用complete命令
        client.newCompleteCommand(job.getKey())
            .variables(Map.of("taskResult", "autoCompleted"))
            .send()
            .exceptionally(e -> {
                throw new RuntimeException("用户任务完成失败", e);
            });
    })
    .open();

2. 用户主动提交任务完成操作

如果用户需要在前端操作后再完成任务,你需要先将用户任务对应的jobKey、流程实例ID等信息存入自己的业务待办库,用户提交时直接调用完成接口即可:

// jobKey为待办库中存储的对应用户任务的唯一标识
zeebeClient.newCompleteCommand(jobKey)
    .variables(用户提交的表单参数Map)
    .send()
    .join();

注意事项

  • 你可以在BPMN的USER_TASK配置中自定义taskType属性,替换默认的长类型标识,worker对应的jobType同步修改即可
  • 1.1.0版本没有内置用户任务查询接口,你需要配置Exporter将任务数据导出到Elasticsearch等外部存储,自行实现待办查询逻辑
  • 转派、驳回等高级用户任务操作,该版本没有原生支持,需要结合BPMN边界事件、流程变量等自行实现

用户任务配置示例

内容的提问来源于stack exchange,提问作者周功浩

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:54:00