HomeRPAブログページ活動ブログBizRobo! CAMPUS!!第8回~ファインダー編~に参加しました!

BizRobo!ブログ

こんにちは!

RPA新人開発者の戸波です。
すっかりお久しぶりのブログになってしまいました。
まだまだ暑い日が続いていますが、暑さに負けずに頑張っていきましょう!

  先日、RPAテクノロジーズ株式会社主催のBizRobo!初心者向けセミナー、「BizRobo! CAMPUS!!」のファインダー編に参加しました。
 今回は、BizRobo! CAMPUS!!ファインダー編に参加した感想をお話しします。
 前半は講師の方によるファインダーについての講義と練習問題の解説、後半は参加者がファインダーに関するいくつかのテーマの中から受講者が聞きたいテーマを選択し、最も得票数が多かったテーマについて登壇者の方にお話しいただきました。

 

pyoko8 hanabi 今回のBizRobo! CAMPUS!!の前半は、以下のアジェンダに沿って進んでいきました。

 

BizRobo! CAMPUS!!のアジェンダ


CAMPUS DSファインダー編 カリキュラム 1
(出典:BizRobo! CAMPUS!!のスライド)

 

 ファインダーとは


  ファインダーは、ロボットがページのどこに対して処理を行うのかを特定するために必要になります。
 HTMLのページ内や、スプレッドシートやExcelシートの位置の指定などに使われます。
 ファインダーはウィンドウビューからステップを作成した際に自動的に設定されますが、ページの構成が変更されたときや表示内容が変更があったときにはそれまで取得できていたデータがうまく取得できなくなり、その結果エラーを起こしてしまうことがあります。
 そのため、自分の取得したいデータが取得できるように、ファインダーの位置を確認して修正する必要があります。

 

 今回のBizRobo! CAMPUSでの演習


  講義後半のテーマには「演習問題上級編の解説」が選ばれたため、演習問題上級編の解説がありました。
 今回は、演習問題上級編の解き方を振り返ります。

CAMPUS DSファインダー編 練習問題 1
(出典:BizRobo! CAMPUS!!のスライド)

 

 演習の解答

  この演習問題の解答は以下の通りです。

CAMPUS8 解答

 

 演習のポイント

  この演習問題では、2枚のExcelシートから入力項目を抽出し、BizRobo!の資料請求ページにあるフォームにループで入力します。
 以下のような2枚のシートから項目名と内容をループして取得し、取得したデータを入力します。
 入力時、1枚目のシートの項目はキーボードから打ち込む入力項目、2枚目のシートの項目はプルダウンから選択する選択項目になっています。

Excelシート
Excelシート2

 

 「項目名」は、BizRobo!の資料請求フォームの入力項目と対応しています。

フォーム入力画面

 

 ロボットの前準備編
  ロボットの変数は以下の通りです。
 「演習」というタイプに「項目名」(Short text)と「内容」(Short text)という変数を作成します。
 また、セッションを保存する必要があるため、session(Session)という変数を用意しグローバル変数に設定します。
 セッション変数については、後ほど ④Excelのループが回っても動作するようにする にて説明します。

CAMPUS8 使用変数

 

  BizRobo!の資料請求ページを読み込みます。

アドレスバーにアドレス入力

 

 Excelファイルを読み込みます。

Excelファイルパス入力

 

 しかし、この状態ではBizRobo!の資料請求ページにExcelのページが上書きされます。

URL上書き 1 

 

 ページが上書きされるのを避けるために、Excelファイルを表示するときにロード先を「新しいウィンドウ」に設定します。

新しいウィンドウで開く

 

 BizRobo!の資料請求ページを表示したまま、別のウィンドウでExcelファイルを表示できます。

タブが上書きされない

 

 ①Excelから入力したい項目と値を変数に抽出
  Excelファイルの左上隅の部分を右クリックし、「ループ」>「選択中の行をループ」>「最初の行を除外」を選択します。
 カラム名以外をループできます。

行をループさせる 1

 

 Excelファイルから入力したい項目(姓・名・会社名・メールアドレス・電話番号・部署)を抽出します。

項目抽出

 

②変数値をもとにパターン検索し、名前付きタグを設定

  「カレントウィンドウ設定」で操作するウィンドウをExcelシートからBizRobo!資料請求フォームに変更後、BizRobo!資料請求フォーム上で項目名を示すタグに「項目名」という名前付きタグを設定します。
 姓・名・会社名などのタグはすべて、途中のパスは違っても最後は「dt」となるため、タグパスには「.*.dt」と指定します。

 タグパス設定

 

 タグパターンでは、指定したタグパス内の情報を更に絞り込むために「特定のテキスト」もしくは「HTML」を指定できます。
 タグパターンの指定は、直接テキストを「値」に指定することもできますが、今回はExcelから抽出した姓、名、会社名といった異なるデータを利用するため、「変数」から「演習.項目名」を指定します。

タグパターンを設定

 

③設定したタグをもとにフォームに値を入力

  シート1枚目の入力項目をループで入力するため、入力欄のinputタグを指定し、Excelシートから抽出した「内容」を入力します。
 ファインダータブで「テキストを入力」アクションのファインダーを設定します。
 inputタグは名前付きタグの後ろにあるため、検索範囲を「名前付きタグの後ろ」に設定します。

inputタグのファインダー設定

 

 アクションタブで入力するテキストを設定します。
 変数「内容」の中身を入力するため、入力するテキストには変数から「演習.内容」を選択します。

入力する変数を設定

 

④Excelのループが回っても動作するようにする

  しかし、このままだとループを回すたびに入力した内容がリセットされます。

セッションなしでループ

 

 入力した内容が、ループを繰り返してもリセットされずに上書きされるようにするには、セッション変数にセッションを保存し、復元します。
 Excelシートから抽出した内容を入力したところでブラウザの状態を保存したいため、「内容を入力」アクションの次に「セッションを保存」アクションを設定します。

セッションを保存 フロー

 

 ここで変数「session」を使います。
 変数「session」は、その時点でのブラウザの状態を保存しておく変数で、タイプはSessionとします。
 また、ループを繰り返しても変数の中身が持ち越されるようにするため、グローバル変数に設定します。

セッション変数

 

 ループ中のウィンドウをBizRobo!資料請求フォームに変更した後に、直前の入力状態に復元させたいため、「セッションを復元」アクションを設定します。

セッションを復元 フロー

 

 しかし、ループの1周目では保存しているセッションデータがないため、「セッションを復元」でエラーとなります。
 今回はエラーとなっても処理させたいため、「セッションを復元」のエラー処理は「無視して続行」を選択します。

無視して続行

 

 ループ1周目でセッションを復元せずともループをして値を入力できます。
 ここまで実行すると、Excelシート1枚目の入力項目はすべて入力できました。

入力項目入力後

 

 ブランチに入力項目のフローをコピー・貼り付けし、Excelシート2枚目の選択項目を入力する処理を作成します。
 適宜ループの範囲や入力アクションを変更します。
 次の項で、変更点も含めて説明します。

 

補足:選択項目をループで入力するときのアクションの変更について

  選択項目をループで入力する際は、入力項目の入力時とほぼ同じアクションを使いますが、設定が異なるところもあります。
 具体的には、以下の3つのアクションについて設定を変更します。

  • Excelのループステップ
  • Excelシートから項目名・内容を抽出するステップ
  • 選択項目入力時のステップ

 Excelをループするステップでは、2枚目のシート内でループをするように設定します。
 設定方法は1枚目のシートで設定した時と同じ手順となるため、①Excelから入力したい項目と値を変数に抽出 を参照してください。
 アクションタブで、ループする範囲の範囲名を「名前付き」とし、適当に名前を付けます。

Excelループ 変更

 

 Excelシートから項目名・内容を抽出するときの「セル値抽出」アクションも、Excelシート2枚目内にファインダーを設定します。

Excelシート 変更

 

 Excelシート1枚目から入力項目を入力するときは「テキスト入力」アクションを利用して変数から値を入力していました。
 しかしExcelシート2枚目では選択項目をフォームに入力するため、アクションを「オプション選択」に変更します。
 選択項目の入力欄は「select」というタグで構成されているため、ファインダータブのタグパスは「.*.select」とします。

オプション選択 ファインダー

 

 また、「オプション選択」のアクションタブで、選択するオプションを変数「演習.内容」に変更します、
 選択項目を入力するときには、項目の選択肢の中から変数「演習.内容」に含まれているものを入力できます。

オプション選択 アクション

 

 感想


  正直なところ、ファインダーについては感覚で設定しているところがありました。
 そのため、そもそものロボット開発でファインダーの設定に苦戦したり、開発時にはうまく設定できていてもWebページの構成が変わってしまった時にエラーになり、ロボットがいつの間にか動作しなくなっていたりしていました。
  また、ファインダーとは少し関係がないのですが、ロボットの前準備編で書いた通り、アドレスバーにファイルのある場所の絶対パスを入力すると、そのファイルを表示できるということを初めて知りました。
 いつもわざわざファイル読み込みアクションから設定していたため、ファイルの絶対パスをコピーペーストしてアドレスバーに貼り付けるだけでファイルを表示できるのは楽だと思いました。
 他の方が手を動かされているのを見ることで、自分が気づいていなかったDSの使い方が学べるのもBizRobo!CAMPUS!!の良いところだと思いました。

 

 次回のBizRobo!CAMPUS!!の予定は未定とのことですが、オフライン開催も検討されているそうです。
これからもいろいろなことを学び、私の視点からブログで発信していきたいと考えておりますので、ぜひお読みいただけますと幸いです。

今回も、最後までお読みいただきありがとうございました!

大阪本社
〒541-0056
大阪市中央区久太郎町2-2-7 山口興産堺筋ビル3階  アクセスマップ
TEL:06-6266-0440   FAX:06-6266-0450