システムデザイン

UiPathで始めるRPA – データスクレイピングとエクセル出力(1回目)

*本記事は旧TechblogからCOLORSに統合した記事です。

RPAとは

RPA (Robotic Process Automation)は、コンピューター上で行われる業務プロセスを人に代わり自動化する技術です。人間が繰り返し行うクリックやキーボード入力など定常的な業務が自動化できることから、仮想知的労働者(デジタルレイバー)とも呼ばれています


「人間にしかできないとされてきた業務も、ロボットによる代行が可能となる」
2018年、働き方改革もあり、今後労働者人口が減少し人手不足が深刻化する中で、
RPAは大きな注目を集めています。

UiPathとは

UiPathは2005年に創業されたRPAにおける世界的リーディングカンパニーです。ルーマニア発のスタートアップで、創業者であるDaniel DinesはMicrosoftの出身です。 今回は、UiPathでスクレイピングしたデータをエクセル出力まで行うプロジェクトを作成してみます。

全体の目次

・1回目 一覧画面をスクレイピングして、1件ずつ詳細画面へ遷移

・2回目 詳細画面をスクレイピングして、データをエクセル出力

今回は1回目を紹介させて頂きます。

WEB一覧情報を一件ずつエクセル出力

作成するロボット

  1. 一覧画面をスクレイピングして、1件ずつ詳細画面へ遷移
  2. 詳細画面をスクレイピングして、データをエクセル出力
  3. もとの一覧情報にもどり、1 ~ 2 を繰り返し行う


※今回は自身のローカル環境で作成した、簡易的な画面、データでエクセル出力を行います。

<<利用する画面>>
従業員一覧

従業員詳細

エクセル出力イメージ

全てを一回で紹介すると大変長くなるため、全2回で紹介させて頂きます。

・1回目 一覧画面をスクレイピングして、1件ずつ詳細画面へ遷移

・2回目 詳細画面をスクレイピングして、データをエクセル出力

Excelアプリケーションスコープを開く

アクティビティにexcelと入力すると「Excelアプリケーションスコープ」が選択出来るので、メインパレットへドッラッグします。
その後、ワークブックのパスにパスとエクセル名称を指定します。
ファイルを指定しない場合、指定したファイル名が存在しない場合、エクセルが新規作成されます。
今回は emplist + 日付(now.tostring(“yyyyMMdd”) ) + “.xlsx”として、起動時に起動日の日付をつけてエクセル新規作成するようにしました。
なお 上記1. ~ 3. はこの「Excelアプリケーションスコープ」内に記載します。

一覧画面をスクレイピング

従業員一覧 をスクレイピングします。
スクレイピング方法はとても簡単で、UiPath画面 デザインリボンのデータスクレイピングボタンを押下し、一覧画面を選択するだけです。

データスクレイピングボタンを押下すると、
下記の取得ウィザードが表示されるので、次へボタンを押下します。

次へボタンを押下後、一覧画面の表の任意の箇所を選択します。
選択後、下記のようなデータプレビューが表示され、
一覧画面がスクレイピングされている事がわかります。
その後、終了ボタンを押下して下さい。

スクレイピングを行うと以下の様な、シーケンスができ、一覧情報がデータテーブルとして取得できます。
このデータテーブル”ExtractDataTable”を利用して以降の繰り返し処理を行います。

繰り返し(前判定)を実施

アクティビティから「繰り返し(前判定)」 を選択し、メインパレットへドッラッグします。
作成した 「繰り返し(前判定)」 のCondition(前判定) に以下の式を入力

emplistRow <= Convert.ToInt32(ExtractDataTable.Rows.Count.ToString) +1

上記のemplistRowを保持する事で、一件ずつ画面上の”確認”ボタンを繰り返し押下する事が出来ます。方法は以下の通りとなります。
「繰り返し(前判定) 」のBody部に対象画面の “確認”ボタン のクリックイベントを追加。

確認ボタンクリックイベントのプロパティー:ターゲット.セレクターに以下の式を入力します。

"<webctrl aaname='確認' tableRow='" + emplistRow.ToString + "' tag='INPUT' />"

tableRowに先程の”emplistRow”を追加する事で、繰り返し処理が可能となります。
これにより、 従業員詳細 画面へ遷移する事ができます。

まとめ

今回は1回目として、UiPathを使ってWEB一覧を一件ずつ処理する方法を、

紹介させて頂きました。
データテーブルの扱いなどは少し癖があったので、少し苦戦しましたが、
やり方がわかれば、とてもわかり易く、扱い易かったです。
次回は スクレイピングしたデータをエクセル出力する方法を紹介させて頂きます。