#ロボット概要
「設定ファイル.xlsx」で紐づけれた台帳カラム(InputDataColumn)と入力Selectorのアンカー情報(AnchorName)をもとに、文字入力を繰り返しするロボット。
#作成背景
以前参画していたPRA開発プロジェクトでユーザー様より、入力元の台帳(Excel)のカラム名と、入力処理をするサイト画面の項目名を突合せ出来る資料の要望をいただいた。
保守は別の会社に引き継ぐためそういった資料があることは望ましいが、実際に作るとなるとロボットの規模的に大変であり、どうにかこのジレンマを解消できないかと考えていた。
そんなとき、UiPath Friendsで実施された「RPAチャレンジ タイムアタック⁉」で、ブラウザの入力をTypeInto(文字を入力)を複数並べるのではなく1つだけ設置し、アンカー名のDataTableを作成してループ作業で処理する挑戦者に衝撃を受け、
これをアレンジして、台帳とサイトの入力項目の突き合わせ資料 + 外部設定Excelで動くロボットを作れるのではないかと思い作成してみた。
挑戦者様の記事▼
UiPath Friendsのクリスマス交流会で 「RPAチャレンジ タイムアタック⁉」に参戦してきた!!!
RPAチャレンジ タイムアタック⁉▼
RPA Challenge
#具体的なロボットの動き
###今回はUiPath Friendsで実施された「RPAチャレンジ タイムアタック⁉」を例に説明。
下記のような入力項目が一様なSelectorになるサイトへ繰り返し入力し登録する。
同ファイルに格納された「設定ファイル.xlsx」を開き
「InputDataColumn」行に台帳Excelのカラム名を、「AnotherName」行に入力サイトの項目名を入力して紐づけし、Selectorに入力項目のSelector(アンカー部分を{0}に変換)を設定する。
「PROCESS_NAME」行は連続して繰り返す処理の切り分けに利用。
例:
・PROCESS_NAME:RPA_Challenge
・InputDataColumn:苗字
・AncorName:苗字
・Selector:
<html app='msedge.exe' title='Rpa Challenge' /><webctrl tag='LABEL' aaname='{0}' /><nav up='1' /><webctrl tag='INPUT' />
入力元Excel台帳をDataTableに変換し、繰り返しアクティビティを使ってDataRowに変換。
今回作成した「ブラウザ入力部品.xaml」の引数にを下記の様に設定。
####「ブラウザ入力部品.xaml」の動作
「設定ファイル.xlsx」をDataTable型で取得。(今後「dtSetting」と表記)
「dtSetting」のカラム名「PROCESS_NAME」に対して、引数「in_PROCESS_NAME」と一致するものでフィルタリング。
フィルタリングされた「dtSetting」を上らか順番に入力処理を実施。
#おわりに
初めてロボット公開したため説明が下手くそで申し訳ありません。
別途突き合わせファイル作るのメンドクサイな、今回みたいに外部Excelで入力項目を紐づけ出来たら、可視化されてわかりやすいし、ロボットも修正しやすいし、突合せExcelもこのまま(もしくは加工して)提出しやすいので良いよな…と作ってみたものです。
実践でどれだけ使用できるかはわかりませんが、面白がっていただけたら幸いです。
最後に、
今回公開を許可していただいたアイデア元のkinuはねこが好き(@kambekinu)さんありがとうございました!