TECH×FUN

技術ブログを目指して、その他雑記

【初心者向け】UiPathで交通費精算ロボを作ってみる①

 

はじめに

初UiPath記事ということで、初心者向けに個人使用向けのYahoo乗換案内を使った交通費精算ロボを、変数操作のポイントも交えながら、作っていきたいと思います。

UiPathでは、Web操作を行うとき、1つ1つの要素を確実にとらえるためのセレクタの概念が欠かせないのですが、今回はもう少し直感的にできるスクレイピング操作をメインとします。

ちなみに、UiPathのインストールは無料なので、こちらを参考にすることでインストール可能です。

uipath.info

全体図はこんな感じです。

MainにフローチャートActivityを入れ子するスタイルとしてます。

f:id:keuwasabi:20190520021704p:plain

処理内容

こんな感じに動きます

 

  1. 対話型ウィンドウで交通費ファイルを選択
  2. Yahoo乗換案内を開く
  3. 交通費ファイルに記載されている出発駅・到着日を入力する。出発時間は10:00固定とする
  4. 検索ボタンを押下し、料金の最安値を取得する
  5. 取得した最安値を交通費ファイルの合計金額欄に追記
  6. 2.~5.を交通費ファイルの最終行まで繰り返す

 

やってみよう

1.対話型ウィンドウで交通費ファイルを選択

本記事では1.の処理の解説+変数操作のポイントで終わります。

メイン操作となる2.~5.を知りたいんじゃって方は次の記事(予定)へお進みください。

RPAのロボは繰り返し処理をすることが求められるため、必要なファイルを決まった場所に置いて、ロボ内で指定をすることが一般的です。

とはいっても、今回はあくまでも個人使用向け

なので、あちこちに交通費ファイルを置いてもOK、名前が変わってもOKな、対話型でファイル選択ができるロボにしちゃいました。

ドヤ顔で人に勧めた時、ファイルパス違うからってコケるのやだし

使うActivityはこの2つ。

メッセージボックス(MessageBox)

メッセージボックスは思いやり

人に勧めるときは、この辺親切にしたほうがウケがいいと思いますw

いろいろ設定するところあるけど、デフォルトはそのままで、テキストに表示させたいメッセージ書いとけばOK。

ファイルを選択(SelectFile)

肝となるのがファイルの選択。

ユーザーが指定したファイルの絶対パス出力に指定した変数に格納されます。

出力には変数FilePathを指定します。(他はデフォルト設定、変数名は任意名でOK)

これでこの後の処理で交通費ファイルのパスを指定したいときは、変数FilePathを指定すればOKです。

このActivityを実行すると、このようなウィンドウが出てきます。

ファイルを保存するときにいつもでてくるおなじみの画面ですね。

ユーザーはこの画面からファイルを選択し、開くを押すことで、次の処理に進みます。

変数操作のポイント

さて、次の処理の解説に行く前に、変数というワードが出てきたので、UiPath操作を捗らせるための変数操作に関するポイントを紹介します。

Ctrl+Kスコープ変数の型というキーワードに心当たりある方は読み飛ばして次の記事(予定)へどうぞ。

まず、UiPathでの変数管理は、フローチャートの下のほうにあるこの画面から行います。

こんな感じにこの画面から変数を追加・編集したりします。

ちなみに変数で日本語を指定するのは非推奨らしいのであしからずです。変数名のセンスを磨きましょう!(使命感)

設定の中でも、特に大事なのがスコープ変数の型


 

スコープにはその変数が有効な範囲を設定します。

この設定がずれてたりすると、引数が認識できずActivityがエラーを返し、ロボがコケてしまいます。

とりあえず、最初のうちは最上位のスコープを指定するのが失敗がなくてよいと思います。

変数の型は、変数の中にいれることができるデータの種類を設定します。

たとえば、String型なら文字列といった具合です。これが合っていないと、ロボがコケたりします。

変数の型については、おいおい解説しますが、とにかく変数の型に合っていないデータをいれると、ロボがコケるということを押さえておけばOK。

じゃあ、確実に変数の型を指定するにはどうすればいいの?そんなときに役立つのがActivity操作からの変数追加!

なんと、Activityのプロパティ画面から変数を追加することで、最適な変数の型をセットすることができます。

このように変数を指定する項目で、Ctrl+Kを押下後に変数名を入力します。すると、変数の新規作成変数名指定、プラスアルファでそのActivityに最適な変数の型も同時にできて一石三鳥ですね。

次の記事(予定)では、メイン処理となる部分を作っていきます!

注意点

なお、ロボをスケジュール実行などで無人実行したい場合は、今回紹介したメッセージボックスファイルを選択などの対話型のActivityを決して使用せず、固定のファイルパスを指定するよう実装してください

対話型はユーザー操作が前提となります。そのため、スケジュール実行にも関わらず、常にユーザーがつきっきりでファイル選択をするという悲しい結果となります。

今回の場合なら1.を丸ごと省いてFilePathに既定値に交通費ファイルの絶対パスを指定すればOKです。