【UiPath】交通費検索ロボットをブラッシュアップしてみる(その2)

前回の続きです。


今回やること

‐ 検索オプション(料金が安い順、など)を外部ファイルから設定できるようにする

‐ エラーハンドリング


検索オプション(料金が安い順、など)を外部ファイルから設定できるようにする

設定マスタからロボットが使うパラメータを取得して使いまわす方法をとります。


実装イメージ

image.png

設定マスタファイルの置き場所は、デスクトップ直下の指定フォルダ配下とします。

設定マスタの場所を設定マスタに持たせると、そもそも設定マスタがどこにあるのかロボットが分からなくなってしまうので注意してください(笑)

設定マスタの各情報はDictionaryにセットします。

よって、設定マスタからパラメータを引っ張りたい場合は、設定マスタ(key)で取得します。

keyは「項目名」です。

image.png

Dictionaryにセットする方法ですが、

1. データテーブルに一度セットする

2. データテーブルをDictionaryに変換するコードを実行する


で実現しています。

以下のコードをInvoke Codeに記述し、引数(入力)に1.のデータテーブル、引数(出力)にDictionary型の変数を入れてあげればOKです。

image.png

dict = New Dictionary(Of String, String)

For Each row As DataRow In Tbl.Rows
dict.Add(row.Item(0).ToString, row.Item(1).ToString)
Next

ついでに「駅選択マスタ」もDictionaryにセットします。

後述しますが、全国に複数存在する駅名を記入した場合の動作で、「この駅名はこの都道府県の駅とみなす」を設定するマスタです。

(例)駅名:赤坂 都道府県:東京都 ⇒ 「赤坂」駅は東京都の赤坂駅とみなす

image.png


エラーハンドリング全般(の一部)

設定マスタを読み込んだ後は、03_交通費精算書フォルダに配置された各交通費精算書ファイルをロボットが1つずつ確認し処理をしていきます。

処理前に、04_交通費検索結果フォルダ直下に、処理対象の交通費精算書ファイル(拡張子を除く)と同名のフォルダを作っておきます。

以後、そのフォルダに結果を配置していくことにします。

交通費精算書に記載された各レコードをデータテーブルに格納し、Yahoo!路線検索にアクセスします。

image.png


出発地と目的地が同じ

検索前にエラーと分かるので、検索前にチェックしてしまいましょう。

From/To両方のセルを赤色に塗る処理を入れます。

image.png


存在しない駅名が入力されている

こちらは検索後のエラーメッセージにて判別するしかなさそうです。

image.png

検索後、エラーメッセージのセレクタを取得して、要素が存在するかどうかを判定します。

使うアクティビティはWaitUiElementAppearです。

image.png

image.png

image.png

要素が存在する場合(=エラーメッセージが表示されている場合)、エラーメッセージの中に「出発地」「目的地」が含まれるか判定します。

含まれている場合は、それぞれ対応するセルを赤く塗ります。

image.png

内容薄いですが。。。次回へ続く~