[CAIレシピ] 実行済みCAIプロセスのステータス取得

## はじめに
次の記事では、CAIプロセスを非同期モード(CAIプロセスが完了する前にレスポンスを返す)とする実装方法を確認しました。

- [マイルストンステップによる非同期実行](https://qiita.com/shunsuzu/private/c4ec68a42fc9d773b3b2)

CAIを非同期モードに構成した場合、実行結果を後から確認したい場合もあると思います。この記事では、実行済みのCAIプロセスのステータスを取得する方法を説明します。

なお、この記事は次の記事の内容を理解していることを前提としています。

- [はじめてCAIを使う際に](https://qiita.com/shunsuzu/private/12b8dbd08a30efa0003a)
- [プロセスの作成と実行(匿名認証と基本認証)](https://qiita.com/shunsuzu/private/01d91caedb92bd7781ea)
- [プロセス実行環境の切り替え(Secure Agent環境での実行)](https://qiita.com/shunsuzu/private/2afc72613d894b4d553e)

## プロセスIDからステータスを確認する

プロセスIDからステータスを確認するには、CAIプロセスのデプロイ先別に次のURLを使用して基本認証にてGETリクエストを実行します。

- クラウドサーバー
https://__\<Informatica Cloud Application Integration URL\>__/active-bpel/restadmin/processes/?processId=__<プロセスID>__
- Secure Agent
http://__\<agentName\>:\<httpPortNumber\>__/process-engine/restadmin/processes/?processId=__<プロセスID>__

ステータスはprocessStateとして表示され、次のタイプがあります。
|ステータス(日本語)|ステータスの意味|
|-|-|
|Running(実行中)|プロセスは正常に実行中です。|
|Suspended(一時停止中)|何らかの理由でプロセスが一時停止しています。|
|Completed(完了)|正常に完了しています。|
|Faulted(フォルト)|プロセスはフォールトで終了しています。|
|Compensatable(補償可能)|サブプロセスが完了し、補償の対象となっています。|

### クラウドサーバーでの確認例

[プロセスの作成と実行(匿名アクセスと基本認証)](https://qiita.com/shunsuzu/private/01d91caedb92bd7781ea)で作成した __recipe-pca-HelloWorld__ を実行して、プロセスIDをアプリケーション統合コンソールから確認します。次の例ではプロセスIDは`1049154077944557568`です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/cc349fa2-50f6-b001-0b54-c46f2b564e45.png)
なお、この例ではURLの表示よりIICS・CAIサーバーのFQDNは __usw5-cai.dm-us.informaticacloud.com__ であることがわかります。

確認したプロセスIDと、IICSサーバーのFQDNを指定して、CAIプロセスのステータスを確認します。

```:クラウドサーバーで実行されたCAIプロセスのステータス確認
// curl コマンド(見やすいようにjqコマンドで整形してます)
curl -u username:password https://<IICS・CAIサーバー>/active-bpel/restadmin/processes/?processId=1049154077944557568 | jq

// 実行結果
{
  "totalRowCount": 1,
  "completeRowCount": true,
  "process": [
    {
      "processId": "1049154077944557568",
      "processState": "COMPLETED",
      "processStateReason": null,
      "processName": {
        "value": "recipe-pca-HelloWorld",
        "namespace": "urn:screenflow:process:recipe-pca-HelloWorld"
      },
      "title": "recipe-pca-HelloWorld",
      "planId": "1049153518378254336",
      "cid": "1049153517958823936",
      "version": 3,
      "persistenceType": "BRIEF",
      "processGroup": "RT.User",
      "processInitiator": null,
      "processInitiatorTenantContext": null,
      "tenantContext": "<利用環境のOrgID>",
      "started": "2024-12-05T02:43:44.522+00:00",
      "modified": "2024-12-05T02:43:45.000+00:00",
      "completed": "2024-12-05T02:43:44.833+00:00"
    }
  ]
}
```




### Secure Agentサーバーでの確認例

[プロセス実行環境の切り替え(Secure Agent環境での実行)](https://qiita.com/shunsuzu/private/2afc72613d894b4d553e)で作成した __recipe-psa-HelloWorld__ を実行して、プロセスIDをアプリケーション統合コンソールから確認します。次の例ではプロセスIDは`3508`です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/21a0cc63-7fe1-32cc-f8cd-0b913049bbd7.png)


確認したプロセスIDと、Secure AgentサーバーのFQDN、ポートを指定してCAIプロセスのステータスを確認します。

```:Secure Agentで実行されたCAIプロセスのステータス確認
// curl コマンド(見やすいようにjqコマンドで整形してます)
curl -u username:password http://localhost:7080/process-engine/restadmin/processes/?processId=3508 | jq

// 実行結果
{
  "totalRowCount": 1,
  "completeRowCount": true,
  "process": [
    {
      "processId": "3508",
      "processState": "COMPLETED",
      "processStateReason": null,
      "processName": {
        "value": "recipe-psa-HelloWorld",
        "namespace": "urn:screenflow:process:recipe-psa-HelloWorld"
      },
      "title": "recipe-psa-HelloWorld",
      "planId": "276",
      "cid": "91",
      "version": 1,
      "persistenceType": "FINAL",
      "processGroup": "RT.User",
      "processInitiator": null,
      "processInitiatorTenantContext": null,
      "tenantContext": "$public",
      "started": "2024-12-05T03:55:14.040+00:00",
      "modified": "2024-12-05T03:55:14.639+00:00",
      "completed": "2024-12-05T03:55:14.635+00:00"
    }
  ]
}
```


## 参照情報

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/private/3d1971ef6e3b993516aa)
- [CAI製品ドキュメント > REST APIs for viewing processes](https://docs.informatica.com/integration-cloud/application-integration/current-version/monitor/processes/process-management-apis-for-deployed-processes/rest-apis-for-viewing-processes.html)