RPA UiPathで自動化。メールで受け取った請求書PDFを読み取り、住信SBIネット銀行で振込。

  • URLをコピーしました!

RPAツール、UiPathを使えば、メールで受け取った請求書PDFから請求金額を読み取って、ネットバンクで振込まで自動化できます。

ex101

※パワポで作成
※2019年4月に住信SBIネット銀行がリニューアルしました。詳しい変更点はこちらを記事を参考にしていただければ。
RPAの弱点 サイトリニューアルで作りなおしの巻 | EX-IT

UiPathでメールから請求書PDFから金額を読み取る

RPAツール、UiPathについては、こちらを参考にしていただければ。

UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT

全体図はこのような感じです。
メールを受信して、請求書PDFから金額を読み取り、ネットバンクにログインして振り込んでいます。
今回、振込先の銀行、支店、口座番号は、プログラムに組み込みました。
これらもPDFから読み取ろうと思ったらできます。

2018-06-15_13h42_20

メール受信の設定

まずは、UiPathでメールを受信します。
今回は、Gmailを使いましたので、[Get IMAP mail Messages]アクティビティを使いました。
プロパティ(右側)で次のように設定していきます。
請求書が添付されているメールのみを受信しますので、複数のメールを検索するように設定しましょう。
プロパティのOptions→Topで、「10」とあるのがその設定です。
さらに、Outputで、「Messages」という変数にそのメールを入れます。
(変数の設定は、「Messages」を入力するときにCtrl+Kを押し、「set Name」と出てから入力しましょう。

ex104

その受け取ったメール(今回は10個)を、それぞれチェックし、「もし、メールの件名に「月度 請求書をお送りします」と入っていたら、そのメールの添付ファイルをダウンロードして保存するという処理をします。

それぞれチェックするには、[For Each]アクティビティを使いました。

IFの条件は、

mail.Subject.Contains(“月度 請求書をお送りします”)
です。

Subjectが「件名」、Containsが「含む」を意味します。

2018-06-15_13h43_10

添付ファイルの保存

添付ファイルを保存するのは、[Save Attachments]です。
プロパティで、そのファイルを「PdfFile」という変数に入れておきましょう。

 

 

 

 

 

 

ここで、「PdfFile」「Message」それぞれの変数のVaiable Typeを次のように設定しておきます。
また、ScopeもSequence(プログラム全体)にしておきましょう。

 

2018-06-15_14h01_38

請求金額の読取

ダウンロードしたファイルはこのような名前です。

2018-06-15_11h16_56

このPDFファイルから請求金額を読み取ります。
画像で認識する方法もあるのですが、安定しませんでした。
そこで、PDFをテキストに変換して、そこから読み取る方法にしています。

ex103

[Read PDF text]で、PDFをテキストにできます。
ボックスには、PdfFile(0).ToStringと入れておきましょう。
これは、フォルダ([今回は[Save Attachments]アクティビティで、「Inbox」というフォルダに設定しています)にあるファイルのうち、もっとも新しいものを文字として認識するという意味です。
さらには、プロパティで、「OcrText」という変数をつけます。

2018-06-15_14h02_22

 

ここから、請求金額を抜き出すのは、力技しかできませんでした。
かっこわるいのですが、なんとか。

PDFをテキストにするとこうなります。
(MessageBoxで出力)

請求金額45,630円があるところは、「上記ご請求金額を下記の指定口座へ~」の上です。
こういった特有のパターンを探しましょう。

ex102

そして、[Assaign]アクティビティで、変数「PdfValue」=OcrText.Split(“上”.ToCharArray)(0).Split(“税”.ToCharArray)(1).Split(” “.ToCharArray)(5).Replace(“,”,””)

と設定します。

メール本文(OcrText)を「上」で分割し、そのうち1つ目(0、1、2・・と数えるので(0)と指定)をまず取り出すと、メール冒頭から45630までになり、さらに、それを「税」で分割するして2つ目の、「額計から45630」までになるので、あとは、半角で分割して、その6つ目を取り出すと、「45630」という金額を取り出せるわけです。

 

 

 

 

もっとスマートなやり方が成功したら、追記します。
いっそ、ExcelでつくっているならExcelの請求書で送ってもらったほうが、データを取り出しやすいです。

UiPathでネットバンクから振込

請求金額を取り出せたので、ネットバンクの処理にうつれます。
今回は住信SBIネットバンクを使いました。
法人でも利用料無料、振込手数料ある程度無料(利用実績による)なので、便利です。
ペイジーや口座振替先にできないのが難点ですが。

UiPathでネットバンクにログイン

ログインは、UiPathのWebレコーディングでやりましょう。
「Type Password」にチェックを入れておくと、UiPath内で、その情報が見えないようにすることができます。

2018-06-15_08h50_14

2018-06-15_14h02_36

ログイン後、[振込]をクリックするところもWebレコーディングです。
RPAが「プログラミングを知らなくてもできる!」といわれているのは、このレコーディングが便利だからでもあります。
ただ、この記事でも他の記事でも書いているとおり、多少なりともプログラミングの知識は必要です。
Excelマクロもレコーディング(記録)だけでは、十分にその真価を発揮できず、プログラミングの知識が欠かせません。

それと同じです。

2018-06-15_08h51_27

2018-06-15_14h02_46

 

振込先銀行名、支店名入力

ネットバンクでは、振込先と登録できますが、より安定されるために、毎回入力するのがおすすめです。
毎回入力してもらっても、UiPathは、疲れませんので、お願いしておきましょう。

2018-06-15_08h51_39

銀行名を検索し、

2018-06-15_08h52_13

選択、支店名を検索し、

2018-06-15_08h52_29

選択するという流れをレコーディングします。

2018-06-15_08h52_35

その操作のとおり記録されていくので、確認しましょう。
このプログラムは、自由に書き換えたり並べ替えたり、コメントを入れたりできます。
整理してながら、コメントをつけながらつくっていくのがおすすめです。
その後に改善するときに役立ちます。

2018-06-15_14h02_54

口座番号、請求金額入力

次の画面で、口座番号と請求金額=振込金額を入れていきます。
ex101

口座番号は、直接入力し(Excelから読み取ることもできます)、請求金額は先ほど読み取った変数「PdfValue」と入力します。
こうしておけば、毎月、自動的に金額を変えてくれるわけです。

ex103

 

UiPathは、タスクバーから起動すると楽

今回の流れを動画にしてみました。
(AdobeEffectで加工したら、めちゃくちゃ時間かかりましたが。。。)

この動画のように、UiPathを開かなくてもタスクバーから開く方法があります。
その条件は、UiPathのデータをこのようにフォルダ管理しておくことです。
通常はこうなります。

2018-06-15_08h27_58

フォルダ嫌いな私としては、UiPathでロボットをつくっていくとこうなるので、

2018-06-15_08h27_26

中の「xamlファイル」だけを保存して整理していましたが、タスクバー起動のほうが便利なので、今はしぶしぶフォルダ管理にしています。

2018-06-15_08h27_14

タスクバーから、このようにロボット名(プロジェクト名)をクリックすれば、ロボットが起動するので便利です。
今回の場合、メールが来た→ロボット起動とできます。

2018-06-15_08h33_20

もし、こういったアイコンのときは、クリックしてみましょう。

2018-06-15_08h33_01

このタスクバー起動をやるには、UiRobot.exeを起動させておかなければいけません。
次の場所にあります。
ユーザー→AppData→Local→UiPath→App〇〇(〇〇はバージョンによって変わります。記事執筆現在最新は、18.2.2です)

2018-06-15_08h23_27

さらには、設定で、[通知領域]の[タスクバーに表示するアイコンを選択します]をクリックして、常に外に出しておくと便利です。

2018-06-15_08h23_45

この準備が終わっていれば、UiPathのメニューで[SETUP]→[Publish]をクリックしましょう。

そうすれば、タスクバーから呼び出せるようになります。
一度、[Publish]しておけば、プログラムを変えても反映してくれるので楽です。

2018-06-15_08h28_35

 

 


【編集後記】

【昨日の1日1新】
※詳細は→「1日1新」

ロッテリア イチゴ&オレンジソーダ
概況説明書新バージョン対応ロボット

 

【昨日の娘日記】
保育園の先生によると、昨日、保育園で腕をかまれたそうで。。
おもちゃをとりあったみたいです。
子供同士、しかたないとはいえ、かまんでもいいやろ・・と。

  • URLをコピーしました!