交通費検索はRPAではおなじみですね。
Excelに記入された路線一覧を「Yahoo!路線情報」に入力&検索して料金を取得して…の例のアレです。
簡単なサンプルとして挙げられやすい交通費検索ですが、意外と奥が深く、作りこもうとすればいくらでも面白いものができます。
というわけで、交通費検索を改めてしっかり作ってみることにしました。
ここ最近打ち合わせ&設計ばかりで実装から遠のいていたので、完全なリハビリですw
出来上がったロボットはこちら↓
ちょっと凝った交通費検索ロボットを作ってみた pic.twitter.com/4uTAImeXJI
— いろはまる (@irohamaruRabbit) February 17, 2019
Excelに記入された路線From~Toで検索&料金取得、Excel転記…まではよくあるパターンと思います。
今回は、記入されている料金と路線検索結果の料金の差分チェックや、エラーハンドリングを中心に実装していくことにします。主に以下のような機能を実装しました。
1. ロボット実行時、Excelプロセス起動中の場合(=Excelファイルが開かれていた場合)、閉じるよう促すメッセージを表示してロボットの処理を終了する。
↑以前、ロボット処理の冒頭でExcelプロセスを切る処理を入れていたら、保存しようと思っていたExcelファイルを開きっぱなしにしたままロボットを動かしてしまって散々な目にあったのでw
2. ロボット実行中に何らかの例外が発生した場合、ブラウザを閉じる&Excelプロセスを強制終了する。
3. 「設定マスタ」を所定フォルダに配置しておき、ロボットがマスタのパラメータを参照することで挙動を変えられるようにしておく。
4. 路線検索した時刻(=ロボット稼働時刻)により検索結果が影響を受けることを避けるため、時刻のみ設定マスタに持たせておく。
5. Excelファイルの記入内容を事前にチェックし、不正があれば検索前にエラー判定する処理を入れる。(例)FromとToで同じ駅名、など
6. 駅名が不正の場合は経路エラーとして処理する。不正な駅名が記入されたセルを赤色にする。(例)存在しない駅名
7. 駅名の候補が複数存在する場合、候補一覧をExcelの指定セルにドロップダウンリストとして貼り付け&セルを黄色にする。差し戻した後、再度駅名を選択させる。(例)大手町 → 大手町(東京都),大手町(愛媛県)
8. From/Toのいずれかが空欄の場合、経路エラーとして処理する。From/Toの駅名が記入されているセルを赤色にする。
9. 検索ボタン押下後に画面にエラーメッセージが表示された場合、初期表示時の検索画面に戻す。
10. Excelファイルの各路線レコードにおいて料金欄に料金の記載がない場合、検索結果の料金を記載する。記載されている場合、検索結果との差分が発生していないかチェックする。差分がある場合は「(記入料金) / (検索結果の料金)」の形で料金欄に記入する。
11. 各路線レコードのチェック結果は、ファイル名=チェック結果となっているテキストファイルを保存することで、Excelファイルを開かなくても結果が分かるようにする。
12. 10の場合、経路の画面キャプチャを保存する。
13. ロボットが記入したExcelファイル、11,12で保存した各ファイルは、Excelファイルと同名のフォルダ配下に保存する。各路線レコードのいずれか1路線でもエラーが発生している場合は、フォルダ名の頭に「【要確認】」を付与する。
ちなみに…
時間も限られていたので、実装・動作確認は約1日で済ませました(苦笑)
慣れたらそれくらいでできるものだと留意いただければ幸いです。
具体的な実装については、次の記事で書きます。
これ、3回くらいに分けて書くかも…w
0コメント