我正在使用Activiti 5.12
. 如所提供的,在其用户指南中,用于获取流程实例详细信息的 REST API 是:
GET /process-instance/{processInstanceId}
它的响应是这样的:
{
"id": "2",
"processDefinitionId": "financialReport:1",
"businessKey": "55",
"startTime": "2010-10-13T14:54:26.750+02:00",
"startActivityId": "startFinancialAnalysis",
"startUserId": "kermit",
"completed": false,
"tasks": [
{
"taskId": "3",
"taskName": "Analyze report",
"owner": null,
"assignee": "Kermit",
"startTime": "2010-10-13T14:53:26.750+02:00",
"completed": false
}
],
"activities": [
{
"activityId": "4",
"activityName": "Get report",
"activityType": "ServiceTask",
"startTime": "2010-10-13T14:53:25.950+02:00",
"completed": true,
"duration": 200
}
],
"variables": [
{
"variableName": "reportName",
"variableValue": "classified.pdf"
}
],
"historyVariables": [
{
"variableName": "reportName",
"variableValue": "classified.pdf",
"variableType": "String",
"revision": 1,
"time": "2010-10-13T14:53:26.750+02:00"
}
]
}
还提供了相同的 JAVA API,即:
ProcessEngines.getProcessEngine(configuredProcessEngineName).getHistoryService().createHistoricProcessInstanceQuery().processInstanceId("somevalue").singleResult()
此 Java API 不起作用,因为返回类型HistoricProcessInstance
没有获取任务列表的方法。
我的目标是获取流程实例的当前状态,即它目前处于哪个任务。
REST API 列出了流程实例已执行的所有任务,列表中的最后一个任务是它当前正在执行的任务,因为它的属性completed
是false
.
我想从 java 代码中实现相同的目标。
你能帮帮我吗?任何达到我的目标的替代方法对我来说也很好。