UiPath Document Understanding 第6回 基礎編 テンプレートを使って無人オートメーションを実行しょう

[第5回 基礎編 テンプレートを使って日本語請求書からデータ抽出しよう](https://qiita.com/utanesuke/items/1cac422f8e4b2ecee26e)の記事では、有人オートメーションの日本語請求書から情報を抽出するためのワークフローを作成しました。
この記事では、無人オートメーションを実行するために必要なワークフローの修正と、UiPath Automation Cloudでの設定について説明します。
前回のワークフローのベースで作成していきますので、[第5回](https://qiita.com/utanesuke/private/1cac422f8e4b2ecee26e)をまだ読んでいない方は、そちらを先にご覧ください。

# 有人オートメーションと無人オートメーションの違い
有人オートメーションは人間の監督下で実行されるオートメーションです。
例えば、[第2回 有人オートメーションでの検証](https://qiita.com/utanesuke/items/95e49a3f21d81c4393a9#2-%E6%9C%89%E4%BA%BA%E3%82%AA%E3%83%BC%E3%83%88%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%81%AE%E6%A4%9C%E8%A8%BC) では、人間のユーザーが存在しているため、ユーザがオートメーション実行端末で提示された分類ステーションと検証ステーションをチェックして、オートメーションを継続することが可能です。

しかし、無人オートメーション<sup>補足1</sup> では、人間のユーザーがいない状態でオートメーションを実行するため、オートメーション実行端末で分類ステーションと検証ステーションが表示されても、チェックできるユーザがいないため、オートメーションが中断になります。
無人オートメーションでも、、分類ステーションと検証ステーションが表示された場合、ユーザがチェックし、オートメーションが続行できるように、UiPath Action Center<sup>補足2</sup> を利用する必要があります。

:::note
補足1 : 有人オートメーションと無人オートメーション違いの詳細は[こちら](https://docs.uipath.com/ja/overview/other/latest/overview/attended-vs-unattended-automation)を参照してください。
補足2 : UiPath Action Centerの詳細は[こちら](https://www.uipath.com/ja/product/action-center)を参照してください。
:::
これからUiPath Action Centerを利用するためには、UiPath Automation Cloudでの設定や必要なワークフローの修正が必要となります。

# UiPath Action Centerでの設定

無人オートメーションでは、UiPath Studioから作成した分類ステーションと検証ステーションがアクションとして、ユーザに提示されます。
これらのアクションをUiPath Action Centerで保存するためには、アクションを格納するコンテナーが必要です。UiPath Action Centerでは、このコンテナーをアクション カタログと呼んでいます。
UiPath Action Centerでアクション カタログを作成する手順は以下の通りです。
- UiPath Actionsにアクセスします。
- [管理者設定]タブをクリックして、アクションカタログを作成するフォルダを選択します。
- [新しいカタログを追加]ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/5d56c49d-5fce-e070-444f-e0a6a021b620.png)
- 表示された画面に、カタログ名を入力して、作成ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/0363188b-ade9-a5e6-86d0-d2be4c3e57b7.png)

これで、アクション カタログが作成されました。

# UiPath Orchestratorでの設定

## ストレージバケットの作成

有人オートメーションでは、検証に利用する端末とオートメーション実行に利用する端末が同じため、ドキュメントを読み込んで表示することができます。一方、無人オートメーションでは、検証に利用する端末が異なるため、別途ドキュメントを格納してユーザに表示する必要があります。
UiPath Orchestratorでは、ストレージバケットを用意しており、ここにドキュメントを格納することができます。

UiPath Orchestratorでストレージ バケットを作成する手順は以下の通りです。
- UiPath Orchestratorにアクセスします。
- オートメーションを実行するフォルダを選択して、ストレージバケットタブをクリックします。
- ストレージバケットを追加ボタンをクリックして、新しいストレージバケットを作成します。
- 次の画面に名前を入力して、追加をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/d86a1942-c281-ea8b-c738-109b3747ce4d.png)

これで、検証するドキュメントを格納するストレージバケットの作成ができました。次に、Orchestratorのアセットにストレージバケットとアクションカタログの名前を設定します。

:::note info
ストレージバケットの詳細な情報は[ストレージ バケットについて](https://docs.uipath.com/ja/orchestrator/standalone/2022.10/user-guide/about-storage-buckets)のページを参照してください。
:::


## アセットの作成

[第四回 環境設定(APIキーのアセット)](https://qiita.com/utanesuke/items/c59aaaa96db2f93bc83a#%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A)と同じように、アクションカタログとストレージバケットの名前もアセットに設定していきます。
- **アセット名:** [Data\Config.xlsx]の「Assets」シートでの[DU_ActionCatalogName]と[DU_StorageBucketName]
- **アセット値:** UiPath Action CenterとOrchestratorで作成したアクションカタログ名とストレージバケット名

:::note info
[Data\Config.xlsx]の「Assets」シートで以下の三つの項目が存在しているかを確認してください、なければ追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/0157d784-2d95-6d44-1c05-e438632d2d6c.png)
:::

作成手順は上記の[第四回 環境設定(APIキーのアセット)](https://qiita.com/utanesuke/items/c59aaaa96db2f93bc83a#%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A)を参照してください。作成後、Orchestratorでのアセットは以下の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/6fb8fe77-2b16-8e24-7a24-a7f2c4ef400c.png)

これで、UiPath Cloud Platformで必要な設定や作成が完了しました。次に、ワークフローでの変更を行います。



# ワークフローでの修正とパブリッシュ

第五回でのワークフローのベースで修正するので、第五回で作成したワークフローを開いて(こちらの[DU_Framwork_Sample_日本語請求書.zip](https://drive.google.com/file/d/15VC5jFZ6_twB-1Cc1VytImfG_WOsN6vv/view?usp=sharing)よりダウンロードも可能)、以下の手順で設定します。

- `Main-ActionCenter.xaml`を右クリックして、メインに設定をします。
- `Main-ActionCenter.xaml`での引数の以下のように設定をします<sup>補足</sup>。
    - in_TargetFile："Data\ExampleDocuments\Sample_Invoice_04.pdf"
    - in_UseQueue：False


:::note info
補足：
ワークフローで引数のデフォルト値を設定していますが、Orchestratorから実行する際に、変更することが可能です。
今回キューを使わないようにしているので、in_UseQueueをFalseにしました。キューを利用するケースはまた別の記事で解説します。
:::

上記の設定が完了したら、UiPath Studioのリボン欄での[パブリッシュ]をクリックして、Orchestratorへパブリッシュします。

# 実行してみる

次に、UiPath Studioからパブリッシュしたパッケージを用いて、Orchestratorから実行指示を出して、無人オートメーションとして実行するようにします。
それでは、UiPath Orchestratorのウェブページへ移動して、ロボットが実行するフォルダを選択して、プロセスを追加してください。
正常に追加されましたら、[今すぐ開始]をクリックして、実行してください。

- 実行開始したら、ジョブ状態が**実行中**になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/81ed7a30-b80e-acc8-0057-4cac313766fc.png)

- 次に、分類検証のアクションが作成され、ジョブの状態も**中断**に変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/e17eddce-afb5-7cf4-5e73-9e13bafa220a.png)

- 作成した分類検証アクショを確認するので、UiPath ActionCenterウェブページへ移動して、以下の画面で示した通りに、アクションが一件作成されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/a2d6c8a4-a44d-4fd1-468e-67c7403fb5f3.png)

- 上記のアクションをクリックして、次の未割り当て画面に、このアクションを自分に割り当てます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/469caa7d-b935-9e0b-ee8a-ebb2383017f0.png)

- 次の画面に、分類が正しいかをチェックして、問題なければ保存をしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/dc554076-dc9b-1a77-a67f-ccddec48d1ac.png)

-  ユーザによる分類の検証が完了したため、ジョブは引き続き実行され、ジョブの状態も再び**実行中**に変更されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/97669575-87c6-bb64-2b39-9b79a9eed403.png)

- しばらくジョブが実行してから、抽出検証のアクションが作成され、ジョブの状態が再び**中断**に変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/5322db60-e17d-feb4-3bc6-cff4d3360ab7.png)

- 上記の分類アクションの操作と同じように、抽出した結果を検証して、問題なければ送信をしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/5628256b-ee38-e05b-4909-897a513fc115.png)

- ユーザによる抽出結果の検証が完了したため、ジョブが継続実行されて、実行完了になったら、ジョブの状態が**成功**に変わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/e29e1e6d-57bd-c493-900b-00a89cad86cf.png)

これで、無人オートメーションとして実行が完了しました、修正したワークフローを[02.Template利用_第6回_UR実行](https://drive.google.com/drive/folders/1lI-M_QAlh7x_XbKhKGBJJQkf143SE_LM?usp=sharing)に保存しました。

:::note info
補足：
Unattendedロボットによる実行方法は本記事では説明しません。まだ実行方法について詳しく知らない場合は、この解説動画やページを確認してください。
[1. Unattendedロボットによる実行【UiPath Orchestratorをもっとよく知る動画シリーズ】](https://www.youtube.com/watch?v=etHj67rjMAc)
[2. UiPath Orchestratorからプロセスを実行する(Ver.21.10版)](https://qiita.com/kou1209/items/c372c298570d0b88277f)
::: 

# 補足

## ストレージバケット

前述したように、ストレージバケットは、検証するドキュメントの関連情報を格納するところです。ストレージバケットで格納状況を確認してみよう。

- 検証アクションが作成され、**ユーザ検証待ちの状態**で、検証するドキュメントの関連情報が格納されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/274f1f04-3ccf-96db-e609-0a5ec2d44ad2.png)

- ユーザが検証を終えて、**検証済の状態で**、検証済ドキュメントの関連情報が削除されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/c3308b89-4c95-a55b-a1d5-598950e7f9df.png)

UiPath DocumentUnderstandingテンプレートでは、デフォルトの設定として、ドキュメントの検証が終了した場合、ストレージバケットでのドキュメント関連情報を削除するようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/177240/8a3f1501-f76f-b22f-415d-a77dce448a50.png)

もし監査などの観点から、検証済のドキュメントも保存する必要がありましたら、分類検証及び抽出結果検証での該当チェックを外してください。

## 処理した結果のエクスポート

UiPath DocumentUnderstandingテンプレートでは、デフォルトの設定として、抽出した結果のエクスポート先は`Data\Exports\`のような相対パスですので、エクスポートした結果がロボット実行端末に保存しています。
エクスポート先を変更する場合には、Configファイルの[Settings]シートの[ExportsFolder]の値を変更して、再度パブリッシュしてください。

# 終わりに

ここまでは、定型の源泉徴収票及び準定型の請求書から情報の抽出ができました。非定型のドキュメントから情報を抽出するには、UiPath AI Centerが必要になるので、次回では、UiPath AI Centerの解説をします。


# 参考情報
- [Document Understanding Process: Studio のテンプレート](https://docs.uipath.com/ja/document-understanding/automation-cloud/latest/user-guide/du-process)