OCI Process AutomationでREST APIから取得したデータをプルダウンに表示する

# はじめに

この記事ではOCI Process Automation(OPA)の画面フォームで作成したプルダウンにREST APIで外部から取得したデータを表示する手順をまとめます。今回はAutonomous DatabaseにORDSで公開したテーブルデータを取得して表示させたいと思います。

- OCI Process Automation(OPA)についてはこちら
https://www.oracle.com/jp/integration/process-automation/

- Autonomous Databaseについてはこちら
https://www.oracle.com/jp/autonomous-database/

- ORDSについてはこちら
https://www.oracle.com/jp/database/technologies/appdev/rest.html

# 前提

- OPAのプロビジョニングおよびユーザー・ロール設定が完了していること
https://docs.oracle.com/ja-jp/iaas/process-automation/oci-process-automation/provision-process-automation-instance.html

- なんでもよいのでREST APIのデータ取得先の準備(今回はADW)ができていること

# Process Applicationの作成

OPAのデザイナ画面から"作成"を押してProcess Applicationを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/49b5f4b6-f8e3-a77b-ce44-1f6f1bce06ab.png)

任意の名前を入力し、"Create"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/54204a97-a156-46a3-5c7b-1e23c9cde3e9.png)

# Connectorの作成

次にREST APIの接続先を定義します。コネクタをクリックし、REST APIをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/ba3250aa-9b22-787b-383e-acf6ed815822.png)

任意の名前とAPIのベースURLを入力し、"作成"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/d761bc0b-a4bb-28d8-990b-9dd044e53240.png)

作成されたコネクタをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f7ce8f05-9c86-44ed-9918-3772a4e9637c.png)

"＋"をクリックしてリソースを追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/efb056dc-0b6d-1c3b-c843-424058285e33.png)

接続するリソースの名前・パスを入力します。今回は事前に用意した部門テーブル(DEPT)を指定します。
"操作"から操作したいREST APIのメソッドを指定します。今回はデータを取得するのでGET。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/8dcbbabb-9a1b-51ac-e0cf-3df5841d7991.png)

次にレスポンスを設定します。レスポンスタブをクリックし、JSONサンプルをクリックします。
※今回は特にリクエストパラメータを指定しませんが、必要であればリクエストタブから設定できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/e6895c2f-240d-c042-94db-2fdebaabbb95.png)

返却されるレスポンスのサンプルを入力します。今回は手っ取り早くREST APIのレスポンスをそのまま貼り付けます。"次"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/6f5aaf1c-1a84-4086-1f5a-990dc539bd1c.png)

内容を確認し、"作成"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/94115df7-9fae-edff-6663-cfd2ad2c67ad.png)

"適用"をクリックしてコネクタの作成は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/6383a423-6f6e-4144-c20c-26b86bbc3275.png)

# Formの作成

次に画面フォームを作成します。UIタブからWebフォームをクリック、任意の名前を入力し、"作成"をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f2391b26-c075-9db9-4975-6cc141eb7952.png)

キャンバスにセレクトボックスを配置します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/259f6ecb-18e0-6000-6af5-12cb3c88aa47.png)

配置したセレクトボックスを選択し、左側のPropertiesを下にスクロールするとOptions Sourceという項目があるのでConnectorを選択します。選択するとプルダウンで取得するコネクタの選択が出てくるので先ほど定義したコネクタを指定します。その下にResponseという項目があり、こちらには実行したREST APIのどの値をプルダウンのLabel, Valueとして表示するか設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f4c90ba8-4ea4-6592-2b82-d0d8eeaf83ba.png)

これでFormの部分の作成は完了しました。

# ワークフローの作成

本題ではないので省略しますが、適当なワークフローを作成し、先ほど作成したFormをStartに割り当てます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/1ce8d834-bbc5-6fed-c158-5081fcc847d7.png)

あと実行できるようにActibate(アクティブ化)しておきます。こちらは右上のボタンを押して実行できます。

# 実行

最後にワークフローを開始して実際の動作を確認します。プルダウンにRESTで実行した値が表示されることが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/978f19d9-69ea-eab9-3f38-15a9f49f619a.png)

以上です。