6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RPA x AI-OCR x BIを連携したレポート業務の効率化②

Last updated at Posted at 2022-03-16

え?まだExcelで作成したレポートを定期的にメールで連絡しているんですか??
ということで、引き続きレポート業務の効率化の作成を行っていきます。
今回は、UiPathのメイン処理を作っていきます

前回はこちらをご覧ください

デモ動画

実際に作成したデモはこちらをご覧ください。

※実際に運用していないため、作成したワークフローにはバグや検討漏れ等がある可能性があります。

作成するもの

全体像がこちらです
image.png

今回、こちらを作成していきます

  • PCを持っていない人は紙でアンケートを行うが、AI-OCRで集計を行い、Action Center機能を用いて目視で最終確認を行う。

前々回:理想形を考える方法はこちらをご覧ください

前回:PCを持っている人にMicrosoft Formでアンケートを行い、アンケート結果はBIツールのレポートで皆が参照できるようにする処理はこちらをご覧ください

作成したコードはこちらに格納しています

作成は次のステップです。

  • STEP1. ファイル監視 バックグラウンドプロセスを作る
  • STEP2. AI-OCRデータ取得プロセスを作る
  • STEP3. Orchestratorの設定

STEP1. ファイル監視 バックグラウンドプロセスを作る

生成されたファイルをロボットを動かさずに監視する

ハンドスキャナで読み取った紙は特定のフォルダに保存されるようにあらかじめ設定しています。
Unattended Robotで定期的にスケジュール実行する場合、1分置きに実行などしておくとスキャンしたものをすぐに処理することができますが、ロボットはこの業務しかできなくなります。
実行周期を数時間にするとスキャナで読み取ったものをすぐに処理できません。
こういう場合はファイル変更トリガーをバックグラウンドプロセスで使用します。
バックグラウンドプロセスであれば、監視中も他のプロセスを実行することが可能です。

image.png

メインプロセスの実行方法

今回、Action Centerを使用したチェック処理を入れています。
バックグラウンドプロセスからフォアグラウンドに切り替え後にAction Centerの処理が上手く動きませんでした。
おそらく、バックグラウンドプロセスをOrchestratorから動かせないため?
このため、Orchestratorのキューを使用してAI-OCRとActionCenterを実行するメインプロセスを呼び出すようにしました。

STEP2. AI-OCRデータ取得プロセスを作る

PersistanceアクティビティがMain.xaml上で実行しないとエラーとなるため、Invokeしないようにしています
エラーメッセージ:UiPath.Activities.Contracts.Persistence.IPersistenceBookmarks' の拡張は、このワークフローを実行するように構成する必要があります。

デモ実行中の表示

デモ実行中に何をやっているか分かるようにPresentationRobotパッケージを導入しています。
マーケットプレイスからインストールします。

image.png

作り方に興味がある方は、こちらを参照してください。

Config等の初期化

バックグラウンドプロセスと共通の設定ファイル(Excel)を呼び出して、Dictionary型の変数に格納します。

image.png

トランザクションの取得

Orchestratorのキューの設定は後から行いますが、AIOCRというキューを作成して、バックグラウンドプロセスがキューにアイテムを入れると、このプロセスが動作するようにトリガを設定します。

バックグラウンドプロセスでキューに格納された情報を取得します。
キュートリガで自動起動されるようになっているため、誤ってこのプロセスが手動実行された場合に終了するようにしています。
TransactionItem.SpecificContent("Document").ToStringで取得したファイルパスを使用します。

image.png

DX Suite処理の呼び出し

PersistenceのあるMain.xamlにデシリアライズ処理があるとエラーとなるため、DX-Suite処理のみを切り出しています

image.png

DX Suite処理の作成

今回使用するAI-OCR DX SuiteのAPIを使用したワークフローがUiPath マーケットプレイスにあります。
こちらを流用します。
Sample1をほぼそのまま流用しています。

image.png

AI-OCRからのデータ取得

DX Suite処理を呼び出して引数としてStatusとCsvFileNameを取得します。
Statusがsuccessとなった場合のみ、データ取得と後続するAction Centerへのチェック依頼を実施するようにします

image.png

Action Centerへのチェック依頼

AI-OCRは認識率が100%とはならないため、Action Centerを使用して事前チェックする工程を自動化処理の中に組み込みます。
チェック中はロボットがライセンスを使用しないため、他の処理を実行することも可能です。

フォームタスクを作成、タスクを割り当て、フォームタスク完了まで待機というステップを踏みます。

image.png

再開後の処理

再開後にチェック済みデータをMicrosoft Formsと同じ形式に整形します。

image.png

トランザクションのステータス設定

トライキャッチを使用して、Tryの最後で、トランザクションのステータスを設定アクティビティでステータスをSuccessfulとして、正常に終了させます。
トライキャッチのCatches部にエラーが発生した場合を考慮して、トランザクションのステータスを設定アクティビティを配置します。
ステータスはFailedにします

image.png

Action Centerの処理

Action Center用に事前にパッケージをインストールします
・UiPath.Form.Activity
・UiPath.FormActivityLibrary
・UiPath.Persistence.Activity

プロジェクトの設定でこちらを有効にします
・永続性をサポート

Action Centerのフォーム

image.png

HTML要素コンポーネント(画像表示)
image.png

フィールドキーとして指定します
image.png

フォームとUiPath Studioの変数はコレクションで関連付けます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/9d730d5c-b9b5-ab6e-eae0-
1d48dde4b599.png)

タスク割り当てをUiPath Studioで指定することもできます
TaskUserAssignment.TaskId = TaskObj.Id
TaskUserAssignment.UserNameOrEmail = User(メールアドレスが入った変数を指定)
image.png

コレクションに追加
image.png

再開後は、Microsoft Formsの形式にしてデータを保存して同期フォルダに格納しています

STEP3. Orchestratorの設定

キューの追加

AIOCRという名称でキューを新規に作成します
image.png

トリガ設定

トリガ設定では、アカウントとマシンを指定することをお忘れなく
image.png

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?