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

え？まだExcelで作成したレポートを定期的にメールで連絡しているんですか？？
ということで、レポート業務の理想形を前回検討しました。
今回は実際に作成していきたいと思います。
UiPath以外は、かなりざっくりな説明です。
インストールなどの簡単な作業は他に情報があるため、本記事では省略します。

## デモ動画

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

https://www.youtube.com/watch?v=Zm3b6sIz4UM

UiPath Friends九州でリアルタイムデモを行います。
※実際に運用していないため、作成したワークフローにはバグや検討漏れ等がある可能性があります。


## 作成するもの

全体像がこちらです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/317d052b-52f4-9210-8480-bef272a5092e.png)

- PCを持っている人にMicrosoft Formでアンケートを行い、アンケート結果はBIツールのレポートで皆が参照できるようにする
- PCを持っていない人は紙でアンケートを行うが、AI-OCRで集計を行い、Action Center機能を用いて目視で最終確認を行う。

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

https://qiita.com/ManabuTech/items/ac7a341b44b79b48cce3


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

- STEP1. スキャナの設定をしよう
- STEP2. Microsoft Formでアンケートを作ろう
- STEP3. AI-OCR（DX Suite）の帳票を作ろう
- STEP4. Power BIのレポートを作ろう
- STEP5. UiPathでMicrosoft Formsのアンケート結果出力処理を作ろう
- STEP6. UiPathでAI-OCRのデータ取得とSharepointの格納処理を作ろう（次回）

https://qiita.com/ManabuTech/items/bec22bf5318d688b6118


### UiPath Studioで作るワークフロー（自動化処理）

UiPathで作るワークフローは3つです。
- ファイルを監視するプロセス
- 紙運用の手動作業を自動化するプロセス（AI-OCRの連携とデータの格納）
- フォームのデータをSharepointに格納するプロセス

Power BIは、Sharepoint上のドキュメントは自動更新できますが、FormsやローカルのExcelファイルは自動で更新できません。
よって、この処理をRPAで作成する必要があります。
また、AI-OCRのアップロードやダウンロードも手動となりますので、RPAで自動化します。

## 使用するもの

今回使用するツールおよびライセンスは以下の通りです。
UiPath Community Cloudのライセンス内で作成できますが、Power BIやDX Suiteは有料プランへの契約が必要です。

- Power BI （Proプラン）
- Microsoft Form
- Microsoft Excel
- AI-OCR DX Suite
- UiPath
    - Orchestrator Action Center
    - UiPath Studio


## STEP1. スキャナの設定をしよう

まず、アンケート用紙をPDFに変換するためのスキャナが必要です。
今回デモ用に使用したスキャナは富士通製のiX100です。

https://scansnap.fujitsu.com/jp/product/ix100/

![Snapshot_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/f489daca-a120-6de6-2e99-3dc3c592679a.png)

どこでも持ち運べてデモには便利です。
スキャン時に自動的にフォルダに格納するように設定さえできれば自動化できるため、何でも構いません。

### ドライバのインストール

まずは、ドライバのインストールを行います。ScanSnapHomeというツールもインストールしておきましょう。

http://scansnap.fujitsu.com/jp/dl/win-ix100.html

### 設定

スキャンしたら特定のフォルダに格納されるようにしましょう
タイプは、PC（ファイル保存のみ）を選択し、保存先に任意のフォルダを指定しましょう。
連携アプリケーションは「起動しません（ファイル保存のみ）」を選択します。
これでスキャンすると「20220307134628.pdf」のように、ファイル名が現在の時刻のPDFファイルがフォルダに保存されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/ef9b3246-dd22-0748-f9a7-21087d58b76e.png)

## STEP2. Microsoft Formでアンケートを作ろう

PCを保有している人はMicrosoft Formsでアンケートに回答してもらいます。

アンケートの作成方法は簡単なため本記事では省略します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/22857b48-2a55-764c-5594-f73cbe89ead6.png)

デモ用のアンケート用紙もWordファイルで作っておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/06b9616c-1735-9cec-b842-ec61e269b195.png)


## STEP3. AI-OCR（DX Suite）の帳票を作ろう

DX Suiteでデモ用のアンケート用紙の帳票を作りましょう。
Intelligent OCRから定義を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/afe54ab8-af55-1e0e-f640-6b26813d21cc.png)

### 読み取り範囲の設定

「読み取り範囲の指定」から範囲を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/2d710257-509d-c7e0-56a7-dba317f6a193.png)

指定した読み取り範囲に対して詳細設定を行います。
ここでポイントはワークフローを「OCR」とすることです。OCRとは別にチェック作業を意味する「エントリー」があります。
これを有効化するとDX Suite側での目視となってしまいます。
今回はAction Centerを用いてチェックを行い、完全自動化するため、ここではエントリーを含めずにOCRと設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/63c2f1ef-acde-5364-3a51-77fa44cb73b9.png)

### データ加工設定

丸やチェックボックス処理はDX Suiteの場合はデータ加工設定が必要です。
データ加工設定でチェックボックス変換を指定して入力列と出力列を指定します。
入力列の情報をパラメータ1で指定した値に変換して出力列に出力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/a58e42b3-7598-d50c-d482-71cc8376b1a6.png)


## STEP4. Power BIのレポートを作ろう

Power BIのレポートをPower BI Desktopで作ります。
Power BI Desktopは無料でインストールすることができます。自動更新する場合はPower BI Serviceへのパブリッシュと自動更新設定が必要となりますが、デモをする分には無料でOKです。

### 取得するデータの設定

データの取得より、Sharepointフォルダーを指定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/fadeb166-0fec-5e86-c4f3-10e7862fb8a5.png)

URLは「https://xxxxxx.sharepoint.com/sites/UiPathFriends」のようにsitesの下を指定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/6a22e66d-a11d-3b87-b982-1e59eafe3970.png)

データの変換をクリックし、Power Queryを開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/ceef35b7-87fc-c134-b79d-bbf0edd1868f.png)

Binary以外は不要なので他の列を削除して、列のヘッダーにあるファイルの結合アイコンからファイルを結合
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/95d7c988-ed5e-36af-9e81-7769a9be03df.png)

Tableを指定して読み込みます。Power Queryを閉じて適用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/aa4a0988-3c4e-a6c4-1f65-9c9eb735a740.png)

### レポート画面の作成

表示させたいグラフを選択してレポートを作成します。
こちらも他に情報がたくさんあるため、本記事では割愛します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/bc3b9b35-e57d-8af7-b8d1-2395cc2ff9b6.png)


## STEP5. UiPathでMicrosoft Formsのアンケート結果出力処理を作ろう

さて、ここからが本番です。UiPathで自動化していきます。

今回はMicrosoft Formsのアンケート結果を出力してSharepointフォルダーに配置する処理を作ります

### Microsoft Formsのアンケート結果出力

やりたいことはシンプルです。
Microsoft Formsのアンケート結果ページにアクセスして、Open in Excelボタンを押すだけです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/153b79bd-374f-60e2-87a8-a5a1765cf59d.png)

UiPathの処理を簡単にかつ安定化させるポイントは2つです
・SharepointフォルダへのアップロードにはSharepointの同期機能を使用する
・フォームのアンケート結果出力はUI操作を行わずにURLで直接操作する

#### Sharepointの同期機能を使用する

Sharepointフォルダーへの配置処理ですが、Unattended Robotで動かそうとした場合、Sharepointのアクティビティでは事前認証しないといけないのですが、管理者が設定をしないといけなくてハードルが高いです。

簡単にSharepointへファイルを格納する方法はSharepointの同期を使用する方法です。
ローカルフォルダと特定のSharepointフォルダを同期させることができるため、UiPath StudioではローカルフォルダにフォームのExcelファイルをダウンロードすれば、自動的にSharepointにアップロードされます。

#### UI操作を行わずにURLで直接操作する

安定性を高めるために大事なことは、なるべくUI操作は使わないようにすることです。
デモであれば、あえてUI操作でおこなう場合もありますが。。。

おすすめの方法はURLを指定してダウンロードする方法です
Google ChromeのDevToolsなどを使用して、アクセスしているURLを解析します。
Google Chromeでページを右クリックで検証と押すと、DevToolsが表示されます。
Networkを押すと、通信したURLを確認できます。
ダウンロードボタンを押してみてください。おそらくDownloadExcelFileという名前のものが表示されたはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/29825c6c-a6cd-6ead-f81c-ba337db6b069.png)

リクエストURLが分かりますので、直接UiPath StudioでアクセスしてUI操作を行わずにダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/710e51f1-dda1-bf21-e1a9-a99fd5fd7926.png)

UiPath Studioで作っていきましょう

パッケージの管理より、UiPath.WebAPI.Activitiesをインストールします。
このパッケージにHTTPアクセスするアクティビティが入っています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/28103dc4-2b74-73b6-07e3-5a5347d7b5a4.png)

HTTP要求アクティビティを配置します。
ウィザードが出てくるので、DevToolsで表示されているURLをエンドポイントに指定します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/e57d7e99-7a48-c08a-dc91-2db666ba91a7.png)

応答タブで設定します。
リソースダウンロードを選択して、同期したローカルフォルダを指定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2577004/b723b224-4e39-9b4f-b493-4d85ac3f1dda.png)

通常ならこの方法で大丈夫ですが、Formsの場合は認証が通らないため、別途認証が必要ということが分かり調査中。
デモではUIで制御します。。。

長くなったので、AI-OCRの処理作成は次回に

https://qiita.com/ManabuTech/items/bec22bf5318d688b6118