RPAツール、UiPathを使えば、メールで受け取った請求書PDFから請求金額を読み取って、ネットバンクで振込まで自動化できます。
※パワポで作成
※2019年4月に住信SBIネット銀行がリニューアルしました。詳しい変更点はこちらを記事を参考にしていただければ。
RPAの弱点 サイトリニューアルで作りなおしの巻 | EX-IT
UiPathでメールから請求書PDFから金額を読み取る
RPAツール、UiPathについては、こちらを参考にしていただければ。
UiPath×Excel。Excelデータを読み取り、ブラウザで交通費検索。無料で使えるRPAツール。 | EX-IT
全体図はこのような感じです。
メールを受信して、請求書PDFから金額を読み取り、ネットバンクにログインして振り込んでいます。
今回、振込先の銀行、支店、口座番号は、プログラムに組み込みました。
これらもPDFから読み取ろうと思ったらできます。
メール受信の設定
まずは、UiPathでメールを受信します。
今回は、Gmailを使いましたので、[Get IMAP mail Messages]アクティビティを使いました。
プロパティ(右側)で次のように設定していきます。
請求書が添付されているメールのみを受信しますので、複数のメールを検索するように設定しましょう。
プロパティのOptions→Topで、「10」とあるのがその設定です。
さらに、Outputで、「Messages」という変数にそのメールを入れます。
(変数の設定は、「Messages」を入力するときにCtrl+Kを押し、「set Name」と出てから入力しましょう。
その受け取ったメール(今回は10個)を、それぞれチェックし、「もし、メールの件名に「月度 請求書をお送りします」と入っていたら、そのメールの添付ファイルをダウンロードして保存するという処理をします。
それぞれチェックするには、[For Each]アクティビティを使いました。
IFの条件は、
mail.Subject.Contains(“月度 請求書をお送りします”)
です。
Subjectが「件名」、Containsが「含む」を意味します。
添付ファイルの保存
添付ファイルを保存するのは、[Save Attachments]です。
プロパティで、そのファイルを「PdfFile」という変数に入れておきましょう。
ここで、「PdfFile」「Message」それぞれの変数のVaiable Typeを次のように設定しておきます。
また、ScopeもSequence(プログラム全体)にしておきましょう。
請求金額の読取
ダウンロードしたファイルはこのような名前です。
このPDFファイルから請求金額を読み取ります。
画像で認識する方法もあるのですが、安定しませんでした。
そこで、PDFをテキストに変換して、そこから読み取る方法にしています。
[Read PDF text]で、PDFをテキストにできます。
ボックスには、PdfFile(0).ToStringと入れておきましょう。
これは、フォルダ([今回は[Save Attachments]アクティビティで、「Inbox」というフォルダに設定しています)にあるファイルのうち、もっとも新しいものを文字として認識するという意味です。
さらには、プロパティで、「OcrText」という変数をつけます。
ここから、請求金額を抜き出すのは、力技しかできませんでした。
かっこわるいのですが、なんとか。
PDFをテキストにするとこうなります。
(MessageBoxで出力)
請求金額45,630円があるところは、「上記ご請求金額を下記の指定口座へ~」の上です。
こういった特有のパターンを探しましょう。
そして、[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内で、その情報が見えないようにすることができます。
ログイン後、[振込]をクリックするところもWebレコーディングです。
RPAが「プログラミングを知らなくてもできる!」といわれているのは、このレコーディングが便利だからでもあります。
ただ、この記事でも他の記事でも書いているとおり、多少なりともプログラミングの知識は必要です。
Excelマクロもレコーディング(記録)だけでは、十分にその真価を発揮できず、プログラミングの知識が欠かせません。
それと同じです。
振込先銀行名、支店名入力
ネットバンクでは、振込先と登録できますが、より安定されるために、毎回入力するのがおすすめです。
毎回入力してもらっても、UiPathは、疲れませんので、お願いしておきましょう。
銀行名を検索し、
選択、支店名を検索し、
選択するという流れをレコーディングします。
その操作のとおり記録されていくので、確認しましょう。
このプログラムは、自由に書き換えたり並べ替えたり、コメントを入れたりできます。
整理してながら、コメントをつけながらつくっていくのがおすすめです。
その後に改善するときに役立ちます。
口座番号、請求金額入力
口座番号は、直接入力し(Excelから読み取ることもできます)、請求金額は先ほど読み取った変数「PdfValue」と入力します。
こうしておけば、毎月、自動的に金額を変えてくれるわけです。
UiPathは、タスクバーから起動すると楽
今回の流れを動画にしてみました。
(AdobeEffectで加工したら、めちゃくちゃ時間かかりましたが。。。)
この動画のように、UiPathを開かなくてもタスクバーから開く方法があります。
その条件は、UiPathのデータをこのようにフォルダ管理しておくことです。
通常はこうなります。
フォルダ嫌いな私としては、UiPathでロボットをつくっていくとこうなるので、
中の「xamlファイル」だけを保存して整理していましたが、タスクバー起動のほうが便利なので、今はしぶしぶフォルダ管理にしています。
タスクバーから、このようにロボット名(プロジェクト名)をクリックすれば、ロボットが起動するので便利です。
今回の場合、メールが来た→ロボット起動とできます。
もし、こういったアイコンのときは、クリックしてみましょう。
このタスクバー起動をやるには、UiRobot.exeを起動させておかなければいけません。
次の場所にあります。
ユーザー→AppData→Local→UiPath→App〇〇(〇〇はバージョンによって変わります。記事執筆現在最新は、18.2.2です)
さらには、設定で、[通知領域]の[タスクバーに表示するアイコンを選択します]をクリックして、常に外に出しておくと便利です。
この準備が終わっていれば、UiPathのメニューで[SETUP]→[Publish]をクリックしましょう。
そうすれば、タスクバーから呼び出せるようになります。
一度、[Publish]しておけば、プログラムを変えても反映してくれるので楽です。
【昨日の1日1新】
※詳細は→「1日1新」
ロッテリア イチゴ&オレンジソーダ
概況説明書新バージョン対応ロボット
【昨日の娘日記】
保育園の先生によると、昨日、保育園で腕をかまれたそうで。。
おもちゃをとりあったみたいです。
子供同士、しかたないとはいえ、かまんでもいいやろ・・と。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方