我正在使用jBPM 6.2.0。我有一个包含用户任务的小工作流程。 我试图通过Java客户端使用远程API完成任务。
以下是使用的代码。
TaskService taskService = connManager.getTaskService("admin", "admin");
taskService.start(4, "admin");
taskService.complete(4, "admin", null);
和相关方法。
private RemoteRuntimeEngine getRuntimeEngine(String deployment, String user,
String password) throws MalformedURLException {
URL deploymentUrl = new URL("http://localhost:8080/jbpm-console/");
return (RemoteRuntimeEngine) RemoteRuntimeEngineFactory
.newRestBuilder().addUrl(deploymentUrl).addUserName(user)
.addPassword(password).addDeploymentId("").build();
}
public TaskService getTaskService(String user, String password)
throws MalformedURLException {
// Establish Connection
RemoteRuntimeEngine conn = getRuntimeEngine("", user, password);
TaskService taskServcie = conn.getTaskService();
return taskServcie;
}
完成任务后,工作流程无法继续。就我而言,以后没有活动,所以我期待工作流程结束。
答案 0 :(得分:1)
完成任务时,您需要指定正确的deploymentId(而不是“”)。这意味着您可以在不指定deploymentId的情况下查询任务列表等,但要完成它,您需要使用正确的“上下文”。可以从任务本身检索deploymentId。
请注意,我们已经在master中做了一些改进,以确保您可以实际传递null或“”如果您不知道deployId,并且您希望我们为您查找它。但是对于6.2.0.Final,你仍然需要自己查找。