0

を使用して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()

HistoricProcessInstance戻り型にはタスク リストを取得するメソッドがないため、この Java API は機能しません。

私の目的は、プロセス インスタンスの現在の状態、つまり現在どのタスクにあるかを取得することです。

REST API は、プロセス インスタンスが実行したすべてのタスクを一覧表示します。リストの最後のタスクは、そのプロパティcompletedがであるため、現在実行中のタスクですfalse

Javaコードから同じことを達成したい。

助けてください。私の目的に到達するための別の方法も、私にとっては問題ありません。

4

2 に答える 2

1

HistoricServiceAPIの別のクエリを使用できます。

List<HistoricTaskIntance> taskList = getHistoryService()
  .createHistoricTaskInstanceQuery()
  .processInstanceId(processInstanceId)
  .list()

現在のタスク ステータスは、開いているタスクに対してHistoricTaskInstance.getEndTime()返される によって定義できます。null

于 2013-08-23T04:47:47.273 に答える