連載コラム
『RPA活用事例』
第4回 期限切れ注意喚起メールの送信
2020.7.20
業務背景
今回取り上げるお題は「提出期限が迫っているのに未提出な人にリマインドメールを投げる」という業務です。年末調整等の庶務系の書類を収集する時にありがちな業務ですね。
ロボットの概要
今回の処理も前回と同様、リストを1件目から最後まで繰り返すのが業務の軸になります。その繰り返しの中で未提出の人を探し出してメールを投げるというのが一連の処理です。
前回同様、開くファイルを宣言するのはもちろんですが、同時に何列目にどんな情報が入っているかを宣言しておきます。
ここでは
1列目=name=提出者名
2列目=date=提出期日
3列目=mail=提出者のメールアドレス
が入っているのを表しています。
CSVファイルに入っている情報は以下の通りです。
※ecoLLabo RPAの基本機能ではCSVファイルを読み込むことになりますので、当業務例ではExcelを最初にCSV形式で保存し直しています。
以上で準備が終わりましたので、メインの処理に入ります。
メインの処理を作るカギが「変数の使用」です。
今回の処理の期日について考えてみましょう。社内で扱う様々な書類の提出期日が毎年同じということは少ないのではないでしょうか。例えば年末調整の書類の期日が2019年度は12月10日、2020年度は12月20日という場合です。ここでポイントとなるのは期日が同じ日付ではなく、“変化する”ということです。
このような場面に変数が登場します。
変数とは、洋服を入れる収納棚のようなものだと考えて下さい。収納棚には自分の好きな洋服を入れることができますよね。
今回の例でいうと、収納棚の中に自分の好きな期日を入れます。2019年度12月10日を入れたければ20191210を入れます。
期日を入れる収納棚には名前をつけましょう。これが変数名に当たります。今回の例ではdeadlineとします。変数名は自身がどのようなものを入れたか分かるような名前にしておくと良いです。今回の例では期日を入れるのでdeadlineという変数名にしています。
収納棚は洋服を入れる前は何も入っていませんよね。deadlineという名前の収納棚の中に最初に20191210を入れたとします。20191210は変数deadlineに最初に代入した値という意味で、変数の初期値と呼び、この作業を変数の初期化と呼びます。
2019年度の期日が12月10日だとすれば、変数deadlineの初期値には20191210を設定すれば良いということになります。
2020年度の期限が12月20日に変更となった場合を考えてみましょう。変数の初期値には20201220を設定すれば良いということですね。
変数deadlineを使い、処理を組み立てると以下のようになります。
この処理のポイントは期日チェックです。
期日チェックではCSVファイルの提出期日の情報すなわちdateと変数deadlineの値を比べます。
前回同様、繰り返しの終了条件は「Excelファイルが最終行に達するまで」です。繰り返しはEXCELファイルが2行あるので、2回行われます。1回目の繰り返しでは、date:20191230とdeadline:20191210を比べ、山田太郎さんに催促メールを送信するか否か判定します。この場合、期日を過ぎていないのでスクリプトは呼びだされず、催促メールは送られません。
2回目の繰り返しではdate:20191205とdeadline:20191210を比べ、山田花子さんに催促メールを送信するか否か判定します。この場合、期日を過ぎているのでスクリプトが呼び出され、催促メールが送られます。
まとめ
今回の例では変数の初期値のみ書き換えれば、一度構築したロボットは期日が年度毎に変更されても使用することができますよね。
業務の中で変化するものは変数に入れることでロボットの修正は最小限で済み、保守性も向上します。業務の中で一度、「これは業務上、値が変化するのではないか。」「これは業務上、常に同じ値ではないか。」と問いかけてみてください。すると、自ずと変数にすべきものが見えてくるはずです。