UiPath×ゆうちょダイレクト(ネットバンク)。社会保険料の振込を自動化。ログイン~データ入力~メールからワンタイムパスワード読取。

毎月やっている社会保険料の振込。RPAツール、UiPathで自動化しています。

IMG_5429

※ロボットが振り込んでいる間にコーヒー iPhoneX

社会保険料振込の大人の事情

会社をつくると、社会保険に加入しなければいけません。
社会保険とは、健康保険、厚生年金の総称(雇用保険を入れることもありますが、社長自身は入れないので今回は含めません)。
給料(役員報酬)に応じて、保険料が決まり、毎月振り込む必要があります。

「口座から引き落としてるよ」

という方も多いでしょう。

はい、通常は引き落としですむんです。

通常は。

その通常とは、「普通の銀行に口座を持っていること」です。

ネット銀行やゆうちょ銀行では、引き落としができません。

※追記 ゆうちょ銀行からの社会保険料引き落としは、2019年4月からできるようになりました。

 

ネット銀行は嫌がらせとしても、ゆうちょは、できそうなもんですが、できないのです。
ペイジー(ネットから税金、社会保険料を振り込むしくみ)で振り込もうとしても、ネット銀行はほとんどの場合できません。

ゆうちょ銀行は、ペイジーができます。

そして、利用料は無料。
いまどきメガバンクなんて使いたくありません。
高いですし、連動もしにくいですし。
ただ、その代償として、社会保険料を毎月振り込まなければいけないのです。

法人でネットバンクを使うなら、無料のゆうちょ銀行がおすすめ! | EX-IT

ゆうちょ銀行での社会保険料振込の流れ

ゆうちょ銀行では、次のように社会保険料を振り込みます。

ログインIDを入れ、

EX-IT_04

ログインパスワードを入れ、

ex102

なんかお知らせが出てくるので、クリックして、

EX-IT_06

[税金・各種料金の払込み(ペイジー)]を選択し、

ex103

役所(年金事務所)から届いた納付書のデータを入力します。
(通常の社会保険、協会けんぽの場合)
これも、

・毎月紙で来るのが無駄。税金の無駄。
・無駄にカラー。
・メールで来てほしい
・というよりどこかにログインすれば見れるしくみが欲しい
・紙で届くのが毎月20日から25日で、期限は月末というのが嫌
・加入させたく、徴収したいなら、支払方法のスムーズ化は考えるべき

といろいろ文句があります。

まさかこれをもって銀行に行くなんて考えられません。
それこそ時間の無駄ですので。

ペイジーに対応してなかったら払いません。
(とういうわけにはいかないんでしょうが)

 

 

 

 

 

 

 

 

 

 

 

話を戻して、ゆうちょ銀行へ。
収納機関番号(年金事務所は「00500」で固定)

EX-IT_08

納付番号、確認番号(どちらも毎月変動)を入れます。
こういうところで、法人番号(マイナンバー)使えばいいのに・・と思ったりも。

EX-IT_09

金額を確認します。
これ、番号を間違えたらエラーが出るので、支払先と支払金額を絶対に間違えないのがいいところです。
なお、小さい声で言いますが、口座名義とこの情報の紐づけはやっていないので、どの口座(個人口座でも)からもペイジーで払えます。
経理がややこしくなりますが。

ex104

そしてワンタイムパスワード。
ゆうちょの場合は、メールで届きますので、まだましです。
他の方法だと自動化ができません。

これからの時代、これまでも、自動化できるというのを基準にサービスを選ぶべきでしょう。

ゆうちょは、いい意味で認証がゆるいので好きです。

仮に認証が厳しくてもこの部分だけ人間がやるという切り分けもできます。
(住信SBIではそうしています)

ex105

メールで届いたワンタイムパスワードを、入れて、実行すれば振込完了です。

ex107

この流れをRPAツール、UiPathで自動化していきます。

UiPathで振込自動化&ワンタイムパスワード対応

UiPathは、無料(小規模なら)で使えるRPAツール。
初期設定や詳細はこちらの記事を参考にしていただければ。

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

毎回変わるものを最初に設定

最初に毎回変わり、入力しなければいけないものを設定します。
納付番号は「nouhu」

確認番号は、「kakunin」

という箱に入れておくわけです。

プログラムを直接変えてもいいのですが、こうしておいたほうが、変更が楽になります。

(この毎回変わるものを「変数」といいます)

UiPathでは、変数を設定するのは[Assign]というアクティビティです。

アクティビティは、UiPathの左側のメニューからドラッグするだけ。
プログラミング言語を書かなくていいので楽です。

[Assign]は、左側のボックスに変数、右側のボックスにその中身を書きます。

左側で、Ctrl+Kを押し、変数を「nouhu」と入れましょう(変数名は任意です)。

右側には、””で囲んで、納付番号を入れます。
UiPathでは、文字は、すべて””で囲むというルールです。
こういったルールをプログラミングツール、RPAツールごとに設定されていますので、人間が合わせましょう。
(そのルールは人間がつくっているわけですが)

EX-IT_11

「nouhu」と「kakunin」を設定しました。

EX-IT_12

ブラウザでゆうちょ銀行にアクセス

下準備は終わり、ブラウザでゆうちょ銀行にアクセスします。

ブラウザは、[Open browser]で開き、URLを””で囲んで入力しましょう。

EX-IT_13

Webレコーディング

次にWebレコーディング、ネット上の操作を記録する機能を使います。
UiPathのメニューから[Recording]→[Web]を選び、

EX-IT_14

実際の画面で入力する部分をクリックし、

ex112

こういったボックスが出てきたら、データを入力していきましょう。

ここでは、ゆうちょ銀行のログインIDを入れています。

EX-IT_25

記録したら、レコーディングメニューの[Save&EXIT]を押し、UiPathに戻ります。
一気に全部記録しようとせずに、ちょっとずつ記録していくのポイントです。
そうしないときちんと記録されているかわかりません。

記録したら実行[F5]でロボットを動かし、意図した操作ができていたら、次に進みましょう。

余分な操作を記録してしまったときは、Deleteキーで削除したり、ドラッグで場所を移動させたりできます。

ex111

納付番号と確認番号は、

EX-IT_09

さきほど設定した、変数を入れておきましょう。

EX-IT_16

メールが来るのを待つ

そしてワンタイムパスワードです。
メールがすぐに来るわけではありませんので、少し待ちましょう。

ex105

[Delay]アクティビティを使って、右側で30秒に設定します。
1分だと確実で、10秒だと短すぎるので30秒にしました。
この秒をコントロールする感があるRPAツールは好きです。
「メールが来たら」ということができたらいいのですが、UiPathでは今のところ見当たらず。
(別のRPAツール、WinAutomationではあります)

EX-IT_18

メール受信の設定

メール受信は、[Get IMAP mail messages]でやります。
これは使っているメールによって変わるものです。
Outlookは専用のアクティビティがあります。

私の場合、Gmailでやりました。

前提として、Gmailの設定(歯車アイコン→メール転送と POP/IMAP)で、次のように設定しておきましょう。

EX-IT_26

UiPath設定は画像のとおりです。
・MailFolder→  “inbox”
・Port→ “993”
・server →“imap.gmail.com”
・Email→ 自分のGmailアドレス
・Password→ 自分のGmailパスワード
・Top→ 取得したいメールの数(ここでは5)
・MailMessages→ Messages(変数)
ex120

取得したいメールの数は、ここでは5にしています。
1でもいいのですが、他のメールがもし来てしまうと、ワンタイムパスワードのメールを認識できません。

5くらいだったら大丈夫だろうという考え方です。

MailMessages→ Messages(変数)

は、変数ですので、Ctrl+Kで登録しましょう。
そして、下のVariablesをクリックし、Scopeを全体(社保振込)にしておく必要があります。
Scopeとは、その変数を使う範囲で、全体で使うときには設定を変えなければいけません。

EX-IT_28

メールの読み取り

そして、[Get IMAP mail messages]で受信した5件のメールから、ワンタイムパスワードのメールを読み取ります。
[For Each]を使って、それぞれのメールでワンタイムパスワードのメールどうかの判定をするわけです。

[For Each]のプロパティでは、[Typeargument](データの種類)を「System.Net.Mail.MailMessage]にします。
どういったデータをもとに処理するかを指定するわけです。

 

EX-IT_29

もし表示されていなければ、「Browse for Types]で検索しましょう。

EX-IT_21

メールの件名で抽出し、ワンタイムパスワードのみ読み込む

そして、ワンタイムパスワードのメールかどうかの判定は、Excelでもおなじみの[IF]。
条件は、

「mail.Subject.Contains(”ワンタイム”)」=メールの件名に”ワンタイム”が含まれているかどうか

です。

さらには、その本文からパスワードを抜き出します。

EX-IT_30

かっこよく抜き出さればよかったのですが、力技でやりました。

ex109

mail.Body.Split(“】”.ToCharArray)(1).split(“お送りしました”.ToCharArray)(0).Trim

を変数Passwordに入れています。

メールには【ワンタイムパスワード】というキーワードがあるので、まず、メールの本文(Body)を】でわけ(split)、わけたうちの2つ目ToCharArray)(1)を取り出しています。

ーーーーーーーーーーーーー

このたびは、ゆうちょダイレクトをご利用いただき、誠にありがとうございます。
お客さまからご請求いただきました税金・各種料金の払込みのための
ワンタイムパスワードをお送りします。
お取扱日時 平成30年05月31日  09時36分
受付番号 531093135049
取扱番号 S805314636499
【ワンタイムパスワード】 767313
お送りしましたワンタイムパスワードは、一定時間経過後、無効となりますので
お早めに税金・各種料金の払込みの画面でお手続きください。(以下略)
ーーーーーーーーーーーー
というメールを

ーーーーーーーーーーーー

このたびは、ゆうちょダイレクトをご利用いただき、誠にありがとうございます。
お客さまからご請求いただきました税金・各種料金の払込みのための
ワンタイムパスワードをお送りします。
お取扱日時 平成30年05月31日  09時36分
受付番号 531093135049
取扱番号 S805314636499
【ワンタイムパスワード

ーーーーーーーーーーーー

と

ーーーーーーーーーーーー

767313
お送りしましたワンタイムパスワードは、一定時間経過後、無効となりますので
お早めに税金・各種料金の払込みの画面でお手続きください。(以下略)
ーーーーーーーーーーーー

にわけるわけです。
プログラミングの世界では、こういうものをわけて、0、1、2と数えるので、ToCharArray)(1)は2つ目の

ーーーーーーーーーーーー

767313
お送りしましたワンタイムパスワードは、一定時間経過後、無効となりますので
お早めに税金・各種料金の払込みの画面でお手続きください。(以下略)
ーーーーーーーーーーーー

になります。

さらにこれを、splitで、「お送りしました」を区切りにわけました。

ーーーーーーーーーーーー

767313

ーーーーーーーーーーーー

と

ーーーーーーーーーーーー

ワンタイムパスワードは、一定時間経過後、無効となりますので
お早めに税金・各種料金の払込みの画面でお手続きください。(以下略)
ーーーーーーーーーーーー

です。

そのうちの”.ToCharArray)(0)、1つ目を取り出すと、

ーーーーーーーーーーーー

767313

ーーーーーーーーーーーー

となります。

これで完成と思いきや、これだと空白も含めて認識してしまっています。
767313

ではなく、

767313

なのです。
この感覚は、Excelやマクロをやる場合も大事で、無駄に空白が入っていると腹立つようになりましょう。

この空白を取り除くために、.Trimを使っています。
かっこいいやり方は研究中ですが、まあ、こういった考え方もあると思っていただければ。

ワンタイムパスワードの入力

ふう、ようやくワンタイムパスワードがとれ、入力できます。

Passwordという変数に入っていますので、

入力欄に、Password.ToString(パスワードを文字列Stringにする)と入れれば完成となります。

EX-IT_23

動画も撮ってみました。
最後の[実行する]をクリックする前までの動画です。
実際は実行まで自動で終わらせています。


【編集後記】
昨日は、秘密のRPA研究会。
集まって話し合うと、いろいろと気づきがあり、勉強になります。

土曜日は、初開催のRPA入門セミナー(満員御礼)。
楽しみです。

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

新橋の会議室
RPA研究会
Microsoftのチャットサポート

【昨日の娘日記】
最近嫌なことがあると、声を出すだけではなく、首を横にふります。
保育園の帰りに、ベビーカーに近づくときも。
帰りはベビーカーに乗りたくなくだっこしてほしいようで。
膝の上に乗っていて、そうっと下ろそうとするときも。