【UiPath】 GSuite関連アクティビティを使ってみる

## 皆もすなるQiitaといふものを、儂もしてみむとてするなり。

と言う訳で、こん＊＊は！はなっち！です。

【初めに】
従来のお客様先での開発は、Microsoft製品をターゲットにした入出力がメインでした。

先日、とある案件で、「Google Workspaceでメール、ドライブ、スプレッドシートの経験」が求められ、ありゃ経験ないやってんで、失注しました。あぁ悔しい。

この状態を受けて、ただ手を拱いていては成長しないので、自分のGoogle環境で試行錯誤してみました。

今回は、GSuiteアクティビィティを使って、Googleサービスへ接続する方法に関してまとめてみます。
- - - 
## １）「GSuite」アクティビティをインストールする。
UiPath Studioの「パッケージを管理」から、「オフィシャル」をアクティブにして、検索テキストボックスにて、`GSUITE`と入力します。
出てきた「Google Workspace」を選択し、インストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/bc55a0c0-c2c9-a119-c39f-8a344e52a975.png)
アクティビティパネルの「連携」⇒「Google」配下に、（ちょっと未整理のようですが）使用できるアクティビティが並びます。
<img width="300" alt="Ver2.0.1" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/d19fe653-bccc-a5af-3b33-708b0a6e8e93.png">
ちょっと散漫としちゃっていますので、ちょっと古いものですが、Ver1.16.2で行ってみます！
<img width="300" alt="Ver1.16.2" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/b95f0f25-6ae2-8288-2866-f249659c6caa.png">

- - - 
## ２）「GSuite」アクティビティで何ができるの？
先に展開したアクティビティパネルの一覧から見える機能が使えます。
・Apps Script
・Gmail
・シート（SpreadSheetですね）
・ドキュメント
・ドライブ
・予定表/カレンダー
本家Googleでは使えるけど、UiPathからは実現できない！って機能は、今後のお楽しみって事で（Ver2.0.1では、[ドライブ]->[トリガー]に、トリガー系のアクティビティが増えています）。

- - - 
## ３）早速使ってみる
Google の機能を使用するアクティビティを一つ選択して、例えばドライブの中にある「ファイルやフォルダーを探す」を、ドラッグ＆ドロップしてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/48f0fe31-3867-36f7-65ef-1f1cbc07e533.png)
エラーですorz。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/95f41db1-6035-8951-4723-080224f84b34.png)
エラー画面にあるように、Google の機能を使用する場合は、Googleの認証も扱うアクティビティ、「Google ドライブを使用」または、「GSuite アプリケーション スコープ」が必要です。
- 「Google ドライブを使用」 ... ドライブ関係の機能を使う際に必要。
- 「GSuite アプリケーション スコープ」 ... ドライブ関係の機能を使うだけにとどまらず、他の機能を使う際に必要。

Google の機能を使用するには、Google アカウントを、アクティビティに教えてあげるためのアクティビティが必要ですね。
- - - 
## ４）「Google ドライブを使用」
「Google ドライブを使用」を配置して、その中のシーケンスの中に、「ファイルやフォルダーを探す」を配してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/c3326a19-03cd-fa18-27cb-3ce520d884d0.png)
「ファイルやフォルダーを探す」自身のエラーはなくなりましたね？
しかし、次のエラーが発生してしまいました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/65bee2a9-4838-e899-0d89-b1a521dca8bc.png)
Google アカウントを設定しなければなりませんね。
- - - 
## ５）アカウントの設定
「Google ドライブを使用」アクティビティのプロパティを見ると、
<img width="350" alt="Property" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/9e3dcb36-6306-eb43-d046-5032a3ab79a4.png">
アカウントとか、Integration Serviceとか、設定する項目がありますね。
「Google ドライブを使用」アクティビティ本体にもアカウント設定の場所があります。
まずは、「Google ドライブを使用」アクティビティ本体から設定してみましょう。
<img width="400" alt="新しいアカウントを追加" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/c9d768d1-b1d1-a447-f598-a872e72d4888.png">
<img width="400" alt="認証の種類画面" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/3a540f92-a558-6e07-7e5d-93b76b3f7253.png">
<img width="400" alt="Google アカウントの選択" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/bdf98526-1902-a018-ed12-9f018c06dc20.png">
<img width="400" alt="アクセスを求められる" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/5a8b99ef-b4bd-45c5-db86-a2751948dff5.png">
下へスクロールすると、許可する対象リストが出てきますので（この場合は、[Google ドライブのすべてのファイルの表示、編集、作成、削除です。]）、チェックONして、「続行」をクリックします。
<img width="400" alt="認証＆続行" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/1f1fd4b4-65eb-aa1c-5165-dfc071643c1a.png">
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/a0c19043-9cb0-7e80-a67d-c9eba94873b5.png)
こんな画面が出てきたら設定完了。この窓は閉じていただいて大丈夫です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669015/d3ae739a-ab40-1229-54b8-e99c91857f60.png)
こんな画面になって、エラーもなくなりましたね。




#### この方法での注意点は以下の通りです。
・１アクティビティで実現できる！
・ただ、「繰り返し(各行)」アクティビティで一行一行実施しなければならない。
・それを逆手にとって、対象行かどうかを「条件分岐」アクティビティで判断し、そのロジックの中で加工した行を転記出来る。
・流石に文字属性⇔数値属性は難しいけど、EXCEL⇒CSV、CSV⇒EXCELならそう問題は起きにくいでしょう。


## 【まとめ】
・列の並びの変更にはいろんな方法があり、いろんな癖があり、開発者の好みによる事でしょう。
・列の並びの変更後のDataTable域は、変更前のDataTable域の発生源と同じ方式で作成した方が楽。例えばCSVだったら、変更後の列の並びだけのCSVを読み込み、0行のDataTable域を準備する。

- - - 

##おわりに
いかがでした？

今回も読んでいただきありがとうございました！
是非UiPathでのロボ開発の一助になればと思っています。

ありがとうございました！