首页 > 解决方案 > 使用 singleResult() 方法在 Camunda 中创建的任务为空

问题描述

我正在使用以下命令在 camunda 中创建一个 taskService,但是正在创建空任务。知道可能是什么原因吗?

Task task = taskService.createTaskQuery()
            .processInstanceBusinessKey(businessKey).initializeFormKeys().singleResult()

任务评估为空。

businessKey是提供的有效非空字符串。

标签: camundacamunda-modeler

解决方案


未创建任务实例/处于活动状态或 businessKey 不匹配。尝试限制较少的标准,看看你是否得到结果,例如:

List<Task> taskList = taskService.createTaskQuery().active().list()

然后将 businessKey 添加回来并检查它是否匹配。启动实例时是否正确提交了businessKey?

如果您只是刚刚启动流程实例并有权访问 ID,那么您还可以尝试使用流程实例 ID 作为过滤条件:

RuntimeService runtimeService = engine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("MyProcess");
TaskService taskService = engine.getTaskService();
List<Task> taskList = taskService.createTaskQuery()
        .processInstanceId(processInstance.getId())
        .list();
Task task = taskList.get(0);

推荐阅读