Oracle Integration Cloud の Robotic Process Automation (RPA)を試してみる

# はじめに
この記事ではOracle Integration Cloud(以下略OIC)で現在一部のリージョンで利用可能なRobotic process automation (RPA)の機能を試してみた内容を紹介します。

Oracle Integration Cloudについてはこちら
https://www.oracle.com/jp/integration/application-integration/

OIC3についてはこちら
https://docs.oracle.com/ja-jp/iaas/application-integration/index.html

OIC RPAについてはこちら
https://docs.oracle.com/en/cloud/paas/application-integration/robotic-automation/become-early-adopter.html

# 事前準備

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

RPAが利用可能なリージョンをサブスクライブ、またはRPAを利用するSR申請が完了していること
https://docs.oracle.com/en/cloud/paas/application-integration/robotic-automation/become-early-adopter.html

RPAを実行するPCにサポートされているブラウザがインストールされていること
https://docs.oracle.com/en/cloud/paas/application-integration/robotic-automation/system-requirements.html

RPAを実行するPCにJava Development Kit (JDK) 17がインストールされていること
https://docs.oracle.com/en/cloud/paas/application-integration/robotic-automation/system-requirements.html

使用するブラウザにRobot Designer Browser Extensionがインストールされていること
https://docs.oracle.com/en/cloud/paas/application-integration/robotic-automation/install-recorder.html

# OIC プロジェクトの作成
OICのコンソールにアクセスし、メニューからプロジェクトの画面へ遷移し、「追加」をクリックします。
RPAはOICのプロジェクトという単位の中で作成できます。プロジェクトはOICの統合フローや接続の定義などをひとくくりで管理できる単位です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/60e4f006-670e-35f4-9ea1-de6f18bfede3.png)

「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/04902bd7-c7dd-7878-1388-dab863434b5c.png)

任意の名前を入力し「作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/3d48ca0d-486d-7fd9-c0b5-19c9d9361f40.png)

左のロボアイコンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/9cfc20ab-eed6-93ca-5644-78b6d9f83117.png)

項目|説明
-|-
ロボット|RPAを作成する
環境プール|RPAを実行する環境を定義する
ロボット接続タイプ|RPAで接続する先のプロパティを定義する
ロボット接続|RPAで接続する先を定義する

# 接続プールとエージェントのインストール
最初にRPAを動作させる環境の定義とエージェントのインストールを行います。
RPAはエージェントをインストールしたPCのブラウザ上の動作を自動化して動かすことができます。

環境プールの作成で「作成」をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/53d9ca72-a55d-d636-779c-f05cc503cc3a.png)

任意の名前で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/5448cb56-39e2-a7a3-3cb9-4a9924fd085f.png)

「環境の追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f8d26f1f-978b-d75f-6727-ff7052f0ddc7.png)

ロボットエージェントのダウンロードをします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/858b154a-b288-4f4c-6779-164409b68b17.png)

RPAを動かすPCの任意の場所に展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/6f7fba3e-f656-c2ff-8738-f72e46449230.png)

README.mdに記載されているコマンドを実行し、エージェントを起動します。
`java -jar C:\agent\orpa-agent-0.1.XX.jar`

:::note warn
エージェントのホームディレクトリはデフォルトでは`C:\Users`のユーザー配下に指定されますが、ユーザー名に空白を含んでいる場合、コマンド実行時に以下のようなエラーが発生するようです。この問題はオプションでエージェントホームを指定することで回避できます。※尚、このオプションはpowershellでは正しく動きませんでした。
(例: `java -Duser.home=C:\Users\agent_home -jar orpa-agent-0.1.80.jar`)

```
2024-11-29 13:41:19.160 [main] INFO  - Successfully updated environment with the installing agent version
2024-11-29 13:41:19.237 [main] ERROR - robot runtime is not installed or not found in the PATH.
2024-11-29 13:41:19.237 [main] INFO  - Downloading dependencies
2024-11-29 13:41:19.298 [main] ERROR - robot runtime is not installed or not found in the PATH.
2024-11-29 13:41:19.298 [main] INFO  - Downloading  robot runtime for Environment: XXXXXXXXXXXXXXX-YYYYYYYYYYYYY
2024-11-29 13:41:22.520 [main] INFO  - Downloaded robot runtime and configuring it
2024-11-29 13:41:22.542 [main] INFO  - Successfully created robot runtime path: C:\Users\XXXX YYYY\.orpa\.robot_runtime\rcc.exe
2024-11-29 13:41:24.183 [main] INFO  - File created and made executable successfully.
2024-11-29 13:41:24.244 [pool-3-thread-1] ERROR - robot runtime is not installed or not found in the PATH.
2024-11-29 13:41:24.245 [pool-3-thread-1] ERROR - robot runtime is not available. Please check robot runtime installation before proceeding
```
:::

起動できたらOICコンソールに戻って、環境プールの環境の追加からエージェントを選択して「追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/01f62490-a078-7acb-6df7-5d7eef3b002b.png)

次にロボット接続タイプを作成します。これはRPAで操作する際に使用する変数などを定義することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/fe60bd1b-f2be-5220-2746-9c1660e2852f.png)

任意の名前と任意のプロパティを設定して「作成」します。今回は[こちら](https://oracle-japan.github.io/ocitutorials/cloud-native/ci-for-beginners/)で作成したwordpressにログインする手順を自動化したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/6fa33e57-775b-8f6b-d59f-b298933ce5c8.png)

# ロボット接続の作成

次にロボット接続を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/6966fb1c-516c-7317-f7eb-8f2d7858f925.png)

ロボット接続を作成した接続タイプを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/e663dc25-0dbc-64e1-fb04-b436d0de4a76.png)

接続タイプで指定したプロパティを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/a27c71a2-df9f-21c8-736b-a89679b3d349.png)

# ロボット(RPA)の作成

次にロボット(RPA)を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/38b94df8-8fc1-fa68-6879-363016e10650.png)

任意の名前で「作成」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/c053e4b9-f467-b36f-ec68-17df0fdd27d8.png)

Open Applicationのメニューから編集をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/2e916c90-1e2a-f485-e909-f322a1dd9197.png)

Open Browserのダイアログが表示されたら、URLは「ロボット接続」のボタンをクリックし、表示される定義したプロパティをドラッグアンドドロップで選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/aaa5859b-dfc5-dac5-6588-dda3c52e0bb1.png)

次に開いたブラウザでユーザー名を入力するRobot actionsを追加します。
Open Applicationの下の「＋」から「Enter Text」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/2b41034e-da1c-b70f-cf05-ac671e160019.png)

「Enter Text」では入力するテキストエリアと内容を設定します。
ロケータのアイコンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/f7a5402e-9b91-b2db-05ce-34889411ad21.png)

ロケータのアイコンをクリックするとページ要素をターゲット指定というダイアログで現在開いているブラウザのタブが選択できるので任意のタブをクリックします。今回はContainer Instanceで実行中のWordPressのログイン画面を選択します。（※事前に開いておきます）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/ff210f75-e4f9-b0da-4463-796ed94f47da.png)

選択後、選択したタブが表示されロケータを指定することができます。画面上から入力したいロケータを選択します。今回は「ユーザー名またはメールアドレス」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/8da9f5fb-21ee-ab37-9658-8501d12fb131.png)

クリックするとロケータに自動的に入力されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/1c22b1fa-a4f3-953c-9b01-955def6d2b0a.png)

同様の手順でパスワードの入力アクションを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/fefb50ad-fee6-6e72-4322-2493e112b915.png)

追加するとこのようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/98d35ade-e816-589b-f301-8038077f3921.png)

最後にクリックするRobot Actionを追加します。
「＋」からClick Elementをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/461c1059-29c6-35e5-2677-69428fde14e1.png)

Click Elementで「ロケータ」のアイコンをクリックしターゲットの作成からプルダウンで現在開いているブラウザのタブが選択できるので任意のタブをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/0b0f7a22-fc72-8e5c-a983-870f9d531be1.png)

WordPressのログイン画面から「ログイン」ボタンを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/55334a4f-bdf7-1d35-fb63-7775cb535ed4.png)

Click Elementに戻り、ロケータが入力されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/32bd49fd-5f16-2f70-6275-e3429f7a25f8.png)

ここまで出来たら「保存」します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/9ea9b84f-672c-3fef-2e83-eebeb6a9a5ee.png)

# 動作確認

それでは作成したロボットを動かしてみます。ロボットを動かすには環境プールをロボットに割り当てる必要があります。メニューから「環境プールの追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/5035dfe2-95b4-d980-aa71-5857ed3bc5a9.png)

作成した環境プールを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/0c779827-da26-6bc8-d091-e93cb99cba02.png)

実行可能な状態にするため、メニューからアクティブ化します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/c3e0462b-6a48-63af-0664-5031369899de.png)

しばらくしてアクティブな状態になると実行できるようになるのでメニューから実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/5ec57000-f2d8-a607-9239-1bb46de9eeac.png)

入力パラメータが表示されますが、今回は渡すパラメタがないので右上の「実行」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/60ade065-b6e3-111c-d42b-f2949f2b7595.png)

しばらくすると自動的にブラウザが立ち上がり、作成したロボットアクションが実行されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/c95ce428-67db-c737-5326-53100137edb8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479589/03a55ae5-733d-d770-b6fe-9677ebda5371.png)

# まとめ
RPAを使うことでAPIが公開されていないアプリケーションへの連携やWebブラウザ上の単純な動作の自動化が可能になり、OICで作成できるフローの幅が広がったように思います。

以上です。