UiPathで実践で使えるロボットを作ってみよう

皆さんこんにちは。
GMOアドマーケティングのR.Aです。

以前RPAツール「UiPath」について環境構築・簡単なロボットの作成について紹介しましたが、今回は実際の現場で使用できそうなロボットを作成してみたいと思います。
尚、UiPathについての環境構築については以下をご確認下さい。
RPAツール「UiPath」の環境構築とロボットの作成について

今回作成するロボット

今回は社内でも何回か作成しているbacklogでRPAロボット宛てに依頼があったら処理を行うロボット作成したいと思います。
処理の内容は、任意の文字列を検索し、結果をキャプチャして保存するというロボットになります。

まず、全体の大まかな流れは以下になります。
①backlogにロボットが担当者の課題はあるか確認
②見つかったら情報を取得・パース
③取得した内容を元に検索・検索結果のスクリーンショットを撮影・保存
④スクリーンショットのアップロード・課題の更新

①backlogにロボットが担当者の課題はあるか確認

まず前段階としてbacklogに今回の課題を追加します。
必要事項を記入し、担当者をRPAユーザー(弊社ではRPAロボ)に設定します。

次にUiPathを開きプロジェクトを作成します。
今回はbacklogにAPIアクセスし情報を取得する必要があるので、始めにAPIアクセスが出来るようUiPath.Web.Activitiesをインストールします。
画面上部のManagePackagesをクリックし、キャプチャの手順でインストールします。

上記のインストールが完了するとAPIアクセスが出来るようになります。
続いてロボットの作成にうつります。

まずbacklogへアクセスを行います。ActivitiesパネルからHTTP Requestを選択しDesignerパネルにドロップします。
HTTP Requestの設定はEndPointにリクエスト先が入っている変数にし、結果をResult変数に格納します。

なお、リクエスト先のURLは今回以下のように設定いたしました。
https://プロジェクト名.backlog.jp/api/v2/issues?apiKey=APIキー
&projectId[]=
プロジェクトID&statusId[]=1&issueTypeId[]=種別ID&assigneeId[]=担当者ID(RPAロボ)
API情報(https://developer.nulab.com/ja/docs/backlog/api/2/get-issue/)

②見つかったら情報を取得・パース

リクエストが成功すると該当するチケット情報がResultに追加されますので、扱いやすいようそれぞれの変数に格納していきます。
今回は各パラメータが入っているcustomfieldを取得し、名前が「検索文字」「撮影枚数」だったらそれぞれの変数に格納します。

③取得した内容を元に検索・検索結果のスクリーンショットを撮影・保存

まず、取得した情報で検索を行います。
①Open Browserをドロップし、URLを入力します。これでブラウザを開き、任意のwebサイトを設定いたします。
②Type Intoをドロップし、取得した検索文字を追加します。その後inside browserをクリックし、要素をどこに入れるかを選択します。
③Send Hotkeyをドロップし、keyを「enter」を選択します。同じくどの要素に入力するかも指定します。

次にスクリーンショットを撮影します。
①ActivitiesパネルからTake Screenshotを選択しDesignerパネルにドロップします。
次にindeicate on screenを選択し、どの要素を撮影するのかを選択します。また保存先の変数も設定します。
②同様にSave Imageを追加し、先ほど保存した変数を追加、保存先を記入します。

今回は一枚のみの撮影ですが、複数枚保存する場合はfor Eachで回数分繰り返します。

④スクリーンショットのアップロード・課題の更新

最後にスクリーンショットのアップロードと課題の更新になります。
backlogの仕様ですとファイルを課題に貼り付けるには最初に画像をアップロードし、ファイルIDを取得する必要があります。
API情報(https://developer.nulab.com/ja/docs/backlog/api/2/post-attachment-file/)
①スクリーンショットのパスをHTTP Requestに含め、backlogに送信します。
成功すると画像IDが返ってきますので、変数に保存いたします。

②取得した画像IDとコメント・ステータスIDを同様にHTTP Requestで、backlogに送信します。
API情報(https://developer.nulab.com/ja/docs/backlog/api/2/update-issue/)

以上で作成の方が完了いたしました。
実行するとbacklogから情報を取得し、検索、スクリーンショットの撮影・保存を行い、backlogへ返却されているのが確認出来ました。

1~5枚ぐらいの作業でしたら手作業の方が早いですが、100枚撮影、毎日を行う等の処理だとロボットに任せた方がミスも無く、すばやく作業をお願いする事ができます。
また他の作業に時間が割けるようになり、業務改善にも役立ちます。

ここからさらにリクエストURLをexcel管理にしたり、失敗した場合再度実行する処理や、定時実行では無く課題が追加されたタイミングでロボットを動かすなどいろいろカスタマイズする事が出来ます。また機会があれば書いてみたいなと思います。