プロセス状態の更新
/ic/api/process/v1/processes/{processId}
インスタンスのプロセス・フローを一時停止、再開、取消し、中断、リカバリし、変更します。
たとえば、次のことが可能です。- 問題のために現在一時停止されているインスタンスのプロセス・フローを変更
- 特定の理由で別のアクティビティに実行中のインスタンスを移動
- データ・オブジェクトおよびインスタンス属性の値が原因でアクティビティが失敗した場合に、データ・オブジェクトおよびインスタンス属性の値を変更します。 その後、現行アクティビティの実行を再試行できます。
取消処理では、現在のプロセス・インスタンスのみが取り消されます。
中止アクションの動作は、abortTypeパラメータの設定によって異なります。 abortTypeの有効値は次のとおりです:
- self: 中止アクションが実行される現在のインスタンスのフローIDに一致するすべてのインスタンスを中断します。
- ダウンストリーム: 指定されたフローIDとその子フローIDに一致するすべてのインスタンスを中断します。
- すべて: 指定されたフローIDとその親および子フローIDに一致するすべてのインスタンスを中断します。
リクエスト
- application/json
- processId(required): string
プロセスIDの値
object- abortType: string
- activityChanges: array activityChanges
- assignees: array assignees
- comments: string
- correlationKeyChanges: array correlationKeyChanges
- dataObjectChanges: array dataObjectChanges
- faultActionType: string
- flowId: integer(int64)
- id: string
- instanceAttributeChanges: array instanceAttributeChanges
- processes: array processes
- type: string
レスポンス
- application/json
- text/plain
200レスポンス
304 レスポンス
401レスポンス
404レスポンス
500レスポンス
例
例: プロセス状態を更新
次の例は、RESTリソースでPUTリクエストを送信してプロセスを更新する方法を示しています。
次のアクションは、リクエストの本文のidでサポートされています:
-
suspend -
resume -
cancel -
abort -
recoverFaultedInstances
リクエストの送信:
https://example.com/ic/api/process/<version>/processes/<processId>
説明
-
example.comは、Oracle Integrationが実行されているホストです。 -
<version>はREST APIバージョンです。
リクエスト本文:
{
"id":"suspend"
}
例: プロセス・インスタンスとそのすべての子を中止
この例では、プロセス・インスタンスと、同じフローIDを持つ子のすべてのインスタンスを中断しています。
PUTリクエスト:
https://example.com/ic/api/process/v1/processes/20007
リクエスト本文:
{
"id":"abort",
"abortType":"downstream"
}
例: データ・オブジェクトの変更ありでソース・アクティビティからターゲット・アクティビティへのワークフローを再開
ワークフローは、ワークフローがソース・アクティビティからターゲット・アクティビティに移動する前に、システムによって内部的に一時停止されます。
ヒント:
dataObjectChangesの変更がない場合、リクエストからそのセクションを削除します。
PUTリクエスト:
<host>/ic/api/process/v1/processes/20007 リクエスト本文:
{
"id" : "resume",
"comments" : "test",
"activityChanges" : [ {
"sourceActivityId" : "ACT4b60e9aa3d738847e732c6ab8a9c7adc",
"targetActivityId" : "EVT18856620525658",
"dataObjectChanges" : [{
"name": "webFormDataObject",
"value": "{ \"travelPurpose\" : \"abcd\" , \"cost\" : \"111\" }"
}]
}]
}
例: ソース・アクティビティからターゲット・アクティビティへのワークフローの一時停止
ワークフローの状態は、あるロケーション(ソース・アクティビティ)から別のロケーション(ターゲット・アクティビティ)に変更されます。
APIを使用してsourceActivityIdおよびtargetActivityIdを取得できます: GET <host>/ic/api/process/v1/processes/{processId}/activityflows?includeDataObjects=true
PUTリクエスト:
<host>/ic/api/process/v1/processes/20007 リクエスト本文:
{
"id" : "suspend",
"comments" : "test parallel gtwy alter flow",
"activityChanges" : [ {
"sourceActivityId" : "ACTadfc6736bdabd6207e2b71e9e143dd39",
"targetActivityId" : "ACTf876962abdf8eeb0f517fb7c2114ac2e"
} ]
}
例: 失敗したプロセス・インスタンスのリカバリ
失敗したプロセス・インスタンスをリカバリするには、id recoverFaultedInstancesを使用し、faultActionTypeで実行するアクションを指定します。
faultActionTypeで使用可能な値は次のとおりです:
ACTION_CONTINUE: このアクションは、プロセスを次のアクティビティに移動して、失敗したアプリケーションをリカバリする場合に使用します。 たとえば、特定のアクティビティでインスタンスに障害が発生した場合、そのアクティビティは組織で作業しなくなったユーザーに割り当てられています。ACTION_ABORT: このアクションを使用して、プロセスを中止して完了します。 たとえば、誤ったペイロードを入力したためにアクティビティが失敗する場合にこのアクションを使用できます。ACTION_RETRY: このアクションを使用して、プロセスがフォルトであった同じアクティビティを再試行します。
例: 失敗したプロセス・インスタンスのリカバリ
PUTリクエスト:
<host>/ic/api/process/v1/processes/20007 リクエスト本文:
{
"id":"recoverFaultedInstances",
"faultActionType":"ACTION_RETRY"
}
例: 複数のプロセスの失敗したプロセス・インスタンスのリカバリ
APIコールが1つある複数のプロセスで、失敗したプロセス・インスタンスをリカバリできます。 リクエストの本文にプロセス定義Idをリストし、idにrecoverFaultedInstancesを指定します。
この例では、リストで指定されたすべてのプロセスの一括リカバリが試行されます。 faultActionType ACTION_RETRYは、プロセスにフォルトがあった同じアクティビティを再試行することを示します。
PUTリクエスト:
<host>/ic/api/process/v1/processes/リクエスト本文:
{
"processes":["61084","61080","61082","71417","71419","71415","61058"],
"id":"recoverFaultedInstances",
"faultActionType":"ACTION_RETRY"
}
レスポンス・ヘッダーの例
Status Code: 200 OK Content-Type: application/json
レスポンス本文の例
プロセス・インスタンスが正常に更新されたときのレスポンス本文の例を次に示します。
ProcessInstance state changed successfully