BizRobo! CAMPUS!!第8回~ファインダー編~に参加しました!
こんにちは!
RPA新人開発者の戸波です。
すっかりお久しぶりのブログになってしまいました。
まだまだ暑い日が続いていますが、暑さに負けずに頑張っていきましょう!
先日、RPAテクノロジーズ株式会社主催のBizRobo!初心者向けセミナー、「BizRobo! CAMPUS!!」のファインダー編に参加しました。
今回は、BizRobo! CAMPUS!!ファインダー編に参加した感想をお話しします。
前半は講師の方によるファインダーについての講義と練習問題の解説、後半は参加者がファインダーに関するいくつかのテーマの中から受講者が聞きたいテーマを選択し、最も得票数が多かったテーマについて登壇者の方にお話しいただきました。
今回のBizRobo! CAMPUS!!の前半は、以下のアジェンダに沿って進んでいきました。
BizRobo! CAMPUS!!のアジェンダ
ファインダーとは
ファインダーは、ロボットがページのどこに対して処理を行うのかを特定するために必要になります。
HTMLのページ内や、スプレッドシートやExcelシートの位置の指定などに使われます。
ファインダーはウィンドウビューからステップを作成した際に自動的に設定されますが、ページの構成が変更されたときや表示内容が変更があったときにはそれまで取得できていたデータがうまく取得できなくなり、その結果エラーを起こしてしまうことがあります。
そのため、自分の取得したいデータが取得できるように、ファインダーの位置を確認して修正する必要があります。
今回のBizRobo! CAMPUSでの演習
講義後半のテーマには「演習問題上級編の解説」が選ばれたため、演習問題上級編の解説がありました。
今回は、演習問題上級編の解き方を振り返ります。
演習の解答
この演習問題の解答は以下の通りです。
演習のポイント
この演習問題では、2枚のExcelシートから入力項目を抽出し、BizRobo!の資料請求ページにあるフォームにループで入力します。
以下のような2枚のシートから項目名と内容をループして取得し、取得したデータを入力します。
入力時、1枚目のシートの項目はキーボードから打ち込む入力項目、2枚目のシートの項目はプルダウンから選択する選択項目になっています。
「項目名」は、BizRobo!の資料請求フォームの入力項目と対応しています。
ロボットの前準備編
ロボットの変数は以下の通りです。
「演習」というタイプに「項目名」(Short text)と「内容」(Short text)という変数を作成します。
また、セッションを保存する必要があるため、session(Session)という変数を用意しグローバル変数に設定します。
セッション変数については、後ほど ④Excelのループが回っても動作するようにする にて説明します。
BizRobo!の資料請求ページを読み込みます。
Excelファイルを読み込みます。
しかし、この状態ではBizRobo!の資料請求ページにExcelのページが上書きされます。
ページが上書きされるのを避けるために、Excelファイルを表示するときにロード先を「新しいウィンドウ」に設定します。
BizRobo!の資料請求ページを表示したまま、別のウィンドウでExcelファイルを表示できます。
①Excelから入力したい項目と値を変数に抽出
Excelファイルの左上隅の部分を右クリックし、「ループ」>「選択中の行をループ」>「最初の行を除外」を選択します。
カラム名以外をループできます。
Excelファイルから入力したい項目(姓・名・会社名・メールアドレス・電話番号・部署)を抽出します。
②変数値をもとにパターン検索し、名前付きタグを設定
「カレントウィンドウ設定」で操作するウィンドウをExcelシートからBizRobo!資料請求フォームに変更後、BizRobo!資料請求フォーム上で項目名を示すタグに「項目名」という名前付きタグを設定します。
姓・名・会社名などのタグはすべて、途中のパスは違っても最後は「dt」となるため、タグパスには「.*.dt」と指定します。
タグパターンでは、指定したタグパス内の情報を更に絞り込むために「特定のテキスト」もしくは「HTML」を指定できます。
タグパターンの指定は、直接テキストを「値」に指定することもできますが、今回はExcelから抽出した姓、名、会社名といった異なるデータを利用するため、「変数」から「演習.項目名」を指定します。
③設定したタグをもとにフォームに値を入力
シート1枚目の入力項目をループで入力するため、入力欄のinputタグを指定し、Excelシートから抽出した「内容」を入力します。
ファインダータブで「テキストを入力」アクションのファインダーを設定します。
inputタグは名前付きタグの後ろにあるため、検索範囲を「名前付きタグの後ろ」に設定します。
アクションタブで入力するテキストを設定します。
変数「内容」の中身を入力するため、入力するテキストには変数から「演習.内容」を選択します。
④Excelのループが回っても動作するようにする
しかし、このままだとループを回すたびに入力した内容がリセットされます。
入力した内容が、ループを繰り返してもリセットされずに上書きされるようにするには、セッション変数にセッションを保存し、復元します。
Excelシートから抽出した内容を入力したところでブラウザの状態を保存したいため、「内容を入力」アクションの次に「セッションを保存」アクションを設定します。
ここで変数「session」を使います。
変数「session」は、その時点でのブラウザの状態を保存しておく変数で、タイプはSessionとします。
また、ループを繰り返しても変数の中身が持ち越されるようにするため、グローバル変数に設定します。
ループ中のウィンドウをBizRobo!資料請求フォームに変更した後に、直前の入力状態に復元させたいため、「セッションを復元」アクションを設定します。
しかし、ループの1周目では保存しているセッションデータがないため、「セッションを復元」でエラーとなります。
今回はエラーとなっても処理させたいため、「セッションを復元」のエラー処理は「無視して続行」を選択します。
ループ1周目でセッションを復元せずともループをして値を入力できます。
ここまで実行すると、Excelシート1枚目の入力項目はすべて入力できました。
ブランチに入力項目のフローをコピー・貼り付けし、Excelシート2枚目の選択項目を入力する処理を作成します。
適宜ループの範囲や入力アクションを変更します。
次の項で、変更点も含めて説明します。
補足:選択項目をループで入力するときのアクションの変更について
選択項目をループで入力する際は、入力項目の入力時とほぼ同じアクションを使いますが、設定が異なるところもあります。
具体的には、以下の3つのアクションについて設定を変更します。
- Excelのループステップ
- Excelシートから項目名・内容を抽出するステップ
- 選択項目入力時のステップ
Excelをループするステップでは、2枚目のシート内でループをするように設定します。
設定方法は1枚目のシートで設定した時と同じ手順となるため、①Excelから入力したい項目と値を変数に抽出 を参照してください。
アクションタブで、ループする範囲の範囲名を「名前付き」とし、適当に名前を付けます。
Excelシートから項目名・内容を抽出するときの「セル値抽出」アクションも、Excelシート2枚目内にファインダーを設定します。
Excelシート1枚目から入力項目を入力するときは「テキスト入力」アクションを利用して変数から値を入力していました。
しかしExcelシート2枚目では選択項目をフォームに入力するため、アクションを「オプション選択」に変更します。
選択項目の入力欄は「select」というタグで構成されているため、ファインダータブのタグパスは「.*.select」とします。
また、「オプション選択」のアクションタブで、選択するオプションを変数「演習.内容」に変更します、
選択項目を入力するときには、項目の選択肢の中から変数「演習.内容」に含まれているものを入力できます。
感想
正直なところ、ファインダーについては感覚で設定しているところがありました。
そのため、そもそものロボット開発でファインダーの設定に苦戦したり、開発時にはうまく設定できていてもWebページの構成が変わってしまった時にエラーになり、ロボットがいつの間にか動作しなくなっていたりしていました。
また、ファインダーとは少し関係がないのですが、ロボットの前準備編で書いた通り、アドレスバーにファイルのある場所の絶対パスを入力すると、そのファイルを表示できるということを初めて知りました。
いつもわざわざファイル読み込みアクションから設定していたため、ファイルの絶対パスをコピーペーストしてアドレスバーに貼り付けるだけでファイルを表示できるのは楽だと思いました。
他の方が手を動かされているのを見ることで、自分が気づいていなかったDSの使い方が学べるのもBizRobo!CAMPUS!!の良いところだと思いました。
次回のBizRobo!CAMPUS!!の予定は未定とのことですが、オフライン開催も検討されているそうです。
これからもいろいろなことを学び、私の視点からブログで発信していきたいと考えておりますので、ぜひお読みいただけますと幸いです。
今回も、最後までお読みいただきありがとうございました!
<RPAの導入につきまして>
本Blogは、お役に立ちましたでしょうか?
RPAは、一般的な業務システムとは異なり、PoCを実施し、導入・運用開始で終わりでははありません。
導入時点からようやくスタートです。
業務効率化、人員最適化等の目標に応じた計画策定や人員配置、自動化ロボットの開発・運用といったPDCAサイクルが必要です。
弊社では、貴社の課題に適した自動化プランのご提案や開発者育成研修も実施し、貴社と並走したサポートをご提供いたします。
お気軽にお問い合わせください。
BizRobo!や弊社サポートについて詳しくはこちら >>> サービス紹介 - BizRobo! (自動化ツール)
■その他のBlog
- RPAブログ開始のご挨拶
- MacにBizRobo!の開発環境を導入してみよう
- Webページの情報を抽出し、CSVファイル出力するロボットを作ってみた
- プログラミングの練習課題をBizRobo!で解いてみた
- BizRobo! CAMPUS!!第11回~DA編~に参加しました!
- 【Robot-Hub】現在公開中のロボット(ほぼツール)たちを紹介します
- AWSでBizRobo!Basicが動く環境を構築してみた
- 【Tips】Connectorを利用したロボットがDSで起動できない
- BizRobo!CAMPUS!!第4回~データベース編~に参加しました!
- BizRobo!CAMPUS!!第3回~エクスプレッションとコンバータ編~に参加しました!