没有为该名称定义查询 [getAuditTaskById]

No query defined for that name [getAuditTaskById]

当我尝试使用 taskService.start(task.getId(), "krisv"); 开始任务时,我得到 No query defined for that name [getAuditTaskById]。 bpmn 文件与 Evaluation.bpmn 文件非常相似。我目前的jbpmn版本是6.2.

代码片段如下:

List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("krisv", "en-UK");
if (tasks.size() > 0) {
    TaskSummary task = tasks.get(0);
    System.out.println("Task id: " + task.getId());
    System.out.println("'krisv' completing task " + task.getName() + ": " + task.getDescription());
    System.out.println("Task status: " + task.getStatus().name());
    System.out.println("Potential owners: " + task.getActualOwner().getId());
    taskService.start(task.getId(), "krisv");
    Map<String, Object> results = new HashMap<String, Object>();
    results.put("performance", "exceeding");
    taskService.complete(task.getId(), "krisv", results);
    System.out.println("Completed task");
} else {
    System.out.println("No tasks!");
}

上面的代码几乎是示例文件夹中 ProcessTest.java 文件的复制。 ProcessTest.java 允许完成任务,但我的自定义 java 文件中没有完全相同的代码。

此外,如果有帮助的话,当前任务的状态是"reserved"。谢谢!

查询在 jbpm-human-task-audit-audit jar 中定义,您需要在类路径中使用它: https://github.com/droolsjbpm/jbpm/blob/6.2.0.Final/jbpm-human-task/jbpm-human-task-audit/src/main/resources/META-INF/TaskAuditorm.xml#L40

并且您需要确保在您的 persistence.xml 中引用了此文件,例如: https://github.com/droolsjbpm/jbpm/blob/6.2.0.Final/jbpm-test/src/main/resources/META-INF/persistence.xml#L15