え?まだExcelで作成したレポートを定期的にメールで連絡しているんですか??
ということで、引き続きレポート業務の効率化の作成を行っていきます。
今回は、UiPathのメイン処理を作っていきます
前回はこちらをご覧ください
デモ動画
実際に作成したデモはこちらをご覧ください。
※実際に運用していないため、作成したワークフローにはバグや検討漏れ等がある可能性があります。
作成するもの
今回、こちらを作成していきます
- PCを持っていない人は紙でアンケートを行うが、AI-OCRで集計を行い、Action Center機能を用いて目視で最終確認を行う。
前々回:理想形を考える方法はこちらをご覧ください
前回:PCを持っている人にMicrosoft Formでアンケートを行い、アンケート結果はBIツールのレポートで皆が参照できるようにする処理はこちらをご覧ください
作成したコードはこちらに格納しています
作成は次のステップです。
- STEP1. ファイル監視 バックグラウンドプロセスを作る
- STEP2. AI-OCRデータ取得プロセスを作る
- STEP3. Orchestratorの設定
STEP1. ファイル監視 バックグラウンドプロセスを作る
生成されたファイルをロボットを動かさずに監視する
ハンドスキャナで読み取った紙は特定のフォルダに保存されるようにあらかじめ設定しています。
Unattended Robotで定期的にスケジュール実行する場合、1分置きに実行などしておくとスキャンしたものをすぐに処理することができますが、ロボットはこの業務しかできなくなります。
実行周期を数時間にするとスキャナで読み取ったものをすぐに処理できません。
こういう場合はファイル変更トリガーをバックグラウンドプロセスで使用します。
バックグラウンドプロセスであれば、監視中も他のプロセスを実行することが可能です。
メインプロセスの実行方法
今回、Action Centerを使用したチェック処理を入れています。
バックグラウンドプロセスからフォアグラウンドに切り替え後にAction Centerの処理が上手く動きませんでした。
おそらく、バックグラウンドプロセスをOrchestratorから動かせないため?
このため、Orchestratorのキューを使用してAI-OCRとActionCenterを実行するメインプロセスを呼び出すようにしました。
STEP2. AI-OCRデータ取得プロセスを作る
PersistanceアクティビティがMain.xaml上で実行しないとエラーとなるため、Invokeしないようにしています
エラーメッセージ:UiPath.Activities.Contracts.Persistence.IPersistenceBookmarks' の拡張は、このワークフローを実行するように構成する必要があります。
デモ実行中の表示
デモ実行中に何をやっているか分かるようにPresentationRobotパッケージを導入しています。
マーケットプレイスからインストールします。
作り方に興味がある方は、こちらを参照してください。
Config等の初期化
バックグラウンドプロセスと共通の設定ファイル(Excel)を呼び出して、Dictionary型の変数に格納します。
トランザクションの取得
Orchestratorのキューの設定は後から行いますが、AIOCRというキューを作成して、バックグラウンドプロセスがキューにアイテムを入れると、このプロセスが動作するようにトリガを設定します。
バックグラウンドプロセスでキューに格納された情報を取得します。
キュートリガで自動起動されるようになっているため、誤ってこのプロセスが手動実行された場合に終了するようにしています。
TransactionItem.SpecificContent("Document").ToStringで取得したファイルパスを使用します。
DX Suite処理の呼び出し
PersistenceのあるMain.xamlにデシリアライズ処理があるとエラーとなるため、DX-Suite処理のみを切り出しています
DX Suite処理の作成
今回使用するAI-OCR DX SuiteのAPIを使用したワークフローがUiPath マーケットプレイスにあります。
こちらを流用します。
Sample1をほぼそのまま流用しています。
AI-OCRからのデータ取得
DX Suite処理を呼び出して引数としてStatusとCsvFileNameを取得します。
Statusがsuccessとなった場合のみ、データ取得と後続するAction Centerへのチェック依頼を実施するようにします
Action Centerへのチェック依頼
AI-OCRは認識率が100%とはならないため、Action Centerを使用して事前チェックする工程を自動化処理の中に組み込みます。
チェック中はロボットがライセンスを使用しないため、他の処理を実行することも可能です。
フォームタスクを作成、タスクを割り当て、フォームタスク完了まで待機というステップを踏みます。
再開後の処理
再開後にチェック済みデータをMicrosoft Formsと同じ形式に整形します。
トランザクションのステータス設定
トライキャッチを使用して、Tryの最後で、トランザクションのステータスを設定アクティビティでステータスをSuccessfulとして、正常に終了させます。
トライキャッチのCatches部にエラーが発生した場合を考慮して、トランザクションのステータスを設定アクティビティを配置します。
ステータスはFailedにします
Action Centerの処理
Action Center用に事前にパッケージをインストールします
・UiPath.Form.Activity
・UiPath.FormActivityLibrary
・UiPath.Persistence.Activity
プロジェクトの設定でこちらを有効にします
・永続性をサポート
Action Centerのフォーム
フォームとUiPath Studioの変数はコレクションで関連付けます

タスク割り当てをUiPath Studioで指定することもできます
TaskUserAssignment.TaskId = TaskObj.Id
TaskUserAssignment.UserNameOrEmail = User(メールアドレスが入った変数を指定)
再開後は、Microsoft Formsの形式にしてデータを保存して同期フォルダに格納しています