見出し画像

【RPA】年月によってクリックの場所が変わる問題を解消した話

はじめに

こんにちは。つむぐです。
今月ももう終わりますね。5月の給与計算が終わった事業所のOFS(オフィスステーション、以下同じ)への給与登録をしました。そしてそのチェックをしようとして躓き、それを解消したというお話です。

年度更新による給与登録をした弊害・・・

私の所属する勤務先は、OFSを昨年導入しました。2026年に入ってからの給与データは毎月登録していたのですが、2025年分は登録していませんでした。先日、年度更新の集計が終わったので、OFSの給与登録を事業所数の半分程終わらせました。「半分程」というのが今回躓きの原因でした。

年ごとに表示データが増える

OFSでは、給与データを開き、該当の事業所を選択すると、年が行、月が列のテーブルが表示されます。このとき、2026年データしかないと、行データは1行。2025年データもある場合は2行になります。これを私は以下の通り整理していました。

eq()のカッコ内に入る数字の整理

eq()のカッコ内の数字で月を指定します。
最初、番号は手入力でした。
これを、現在の日時の取得を使って入力する方法に変更しました。今までは、2026年しかなかったので問題なかったのですが、今回は2026年5月を取得したい場合「16」のケースと「28」のケースがあります。年度更新の金額を先に登録することも考えましたが、今後、行数違いは発生することを思うと、今の間にメンテナンスしておいた方が良いと判断しました。

Geminiからの提案

Geminiに相談したところ、以下の提案がありました。
・アプローチA(Webベースのセレクター変更)
・アプローチB(データテーブルとして一度読み込む)
最初はおススメされたAで進めてましたが、エラーの連発でうまくいきませんでした。
・CSSでダメならXPathという形式に切り替え
・UI要素取り直し
・日時をテキストに、テキストを数値化に
・新たな変数を作る
等等、試行錯誤してもうまくいかずでした。何度かやり直している中で、結局1周回って同じことしてないか・・・?と感じたので、Geminiに「アプローチB(データテーブルとして一度読み込む)でやってみたい」と伝え、仕切り直し。

「Web ページからデータを抽出する」アクション・ライブWebヘルパーの右クリック

テーブルを取得するために「Web ページからデータを抽出する」アクションを使用します。触ったことがあったので何も考えずに設定したところ、「パラメーター '抽出パラメーター': 空にできません。」というエラー。画面を見てもどこを触ればいいのか分からず。
Geminiに聞くと、「アクションの設定画面を開いた状態で、対象のブラウザ画面をクリックすると、「ライブWebヘルパー」という小さな黒いウィンドウ(または枠線)が表示されます。」とのこと。

ライブWebヘルパー、そんなものがあったのか!

早速やってみて、UI要素と同じようにCtrlを押しながらクリック。無反応…。Geminiの返事をよく読むと、「右クリック」とのこと。ほうほう。
以前も設定したことはあるけど、頻繁に使うアクションじゃないので、すっかり頭から抜け落ちていました。

対象の「年」行と「月」列のWebページのリンクをクリック

テーブルデータは設定を乗り越えるとRPAでのデータ取得はすんなりいきました。
最後の関門です。一番の難関です。
まず、年データは「RowIndexTable」という変数を設定しました。月データは、列の名前なのでアクション設定は不要ということです。
そして、行列それぞれ変数を設定します。
最後に、Webページのリンクをクリックするために、UI要素を設定します。ここでもエラー連発でした。
・文字列⇔数値に
・HTMLを見てみる
・行数や列数を+1するしないを変えてみる
などのすったもんだを経て、下記の内容をエディターに記載したらうまくいきました。

> body > div > section > article > table > tbody > tr:eq(%WebRow%) > td:eq(%WebColumn%) a.month_link

今回変更した箇所の画像

もともと23行目でeq()の数字を月数を指定していました

まとめ

何の仕事もそうですが、ひとつひとつ順番にタスク完了出来たらいちばんいいですよね。実務上は、「ここだけ後でやろう」「これはデータ待ち」「これは確認しないと勧められない」など、なかなか1本道ではたどり着かないもの。手作業が発生するのは、そのイレギュラー対応の時が多いと思います。だからこそ、レギュラー業務(いわゆる定型業務)は自動化しておくことで余白を作ったり、今後想定に対応できるような設計にしておくことが大事だな、と思いました。今日も勉強になりました。

最後まで読んでいただきありがとうございました。
どなたかの参考になりましたら幸いです。

いいなと思ったら応援しよう!