RPAツール UiPathでCData Kintone ODBC Driverを利用してKintone 顧客リストをCSV出力する方法

# はじめに

本記事ではRPAツールのUiPathを使って、kintoneの顧客リストを取得し、CSVファイルとして出力する方法を解説します。


# UiPathとは

UiPath社が提供している高機能なRPA（Robotic Process Automation）製品群です。

https://www.uipath.com/ja/

UiPath Studioを使うことで、RPAプログラムをフローチャートを描くように開発することが可能です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/70574f7a-1191-b358-f7d1-92bf3d24c306.png)

# 実現イメージ

今回はUiPathからkintone APIに接続しますが、UiPathは単純にkintoneと接続することができません。
UiPathがどのようにkintone API側へリクエストを投げるべきかの判断材料やメタデータの情報が無いためです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/56cf5a4c-00e7-2ec7-8d64-6f11b7904c1b.png)

そこで、CData ODBC kintone Driverを用いて、このボトルネックを解決します。

まず、各ツールからはODBCインタフェースでSQL（Select文）をCData kintone ODBC Driverに向けて発行してもらいます。そのリクエストを受け取った、CData kintone ODBC Driverは、kintoneのWebAPIのエンドポイントに対して、SQL文を解釈し、HTTPリクエスト形式に変換して発行します。

リクエスト後、XMLフォーマットで返ってきたデータセットはCData kintone ODBC DriverがODBCインタフェースのResultsetに変換してツールに返します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/d704bcd1-6235-8774-6a6e-9232d5e64879.png)

これにより、UiPathからアドホックにSQLによるリクエストがあったタイミングで最新のデータをkintoneから取得することが可能です。

# 今回作成するUiPath RPA プロジェクト

以下のようなUiPath RPA プロジェクトを作成します。

「Connect Activity」を利用して、CData ODBC kintone Driverに接続し、顧客リストを取得するSQLを実行。取得したDatatableを「Write CSV Activity」を利用してCSV出力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/56d75bdd-3403-eb94-f50b-12a8828a1e75.png)

kintoneのデータはサンプルとして作成できる以下のリストを対象とします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/6d21af6a-4d5a-9593-fde2-84657a3d12b7.png)

最終的に以下のようなCSVが生成されるイメージです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/42fffc07-f0ec-09ed-2d6c-cb4df03f0e16.png)

# 必要なもの
1. UiPath Studio (本記事ではCommunity版を利用します)
2. kintone アカウント
3. CData ODBC kintone Dirver

## UiPath Stduio のインストール

UiPath Sudioは以下のサイトからトライアル版を取得できます。

[https://www.uipath.com/ja/download-free-automation-software-trial]

インストーラーを入手後、Wizardに従ってUiPath Studioのインストールを進めてください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/fc079e9e-6ac7-b778-9693-b0989cddc068.png)

## CData kintone ODBC Driverのインストール

以下のサイトから評価版ビルドをダウンロードします。

- [CData kintone ODBC Driver](http://www.cdata.com/jp/drivers/kintone/odbc/)

ダウンロードされたインストーラ形式(.exe)のファイルを起動します。
(注)ODBCデータアドミニストレーターを閉じてから実行してください。
(注)途中オンラインでのアクティベーションが実行されるためインターネットアクセス出来る環境で行ってください。

下記のようなインストーラが起動するので、ライセンス契約書を確認した上で、デフォルト設定のままインストールを進めて完了させます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/522ef611-f2ed-170d-1e5f-2e3287dfd3f0.png)

インストールが完了するとデフォルトブラウザが起動して製品ヘルプファイルが起動します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/649fab45-903a-7191-e9dd-1093f507de15.png)

また、ODBCのDSN構成ダイアログが表示されます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/39b2fc8a-1bf8-2023-d543-2df5689bc6c5.png)

（注）ODBCデータソースアドミニストレーターはマシンのビット数（32bit, 64bit）にあった方をご利用ください。

## CData kintone ODBC Driverの接続設定

ODBCのDSN設定

起動した「ODBCのDSN構成」ダイアログ内の下記の項目に、[kintone評価版アカウント取得、および、サンプルアプリケーションの作成方法](https://qiita.com/kuwazzy/items/416b9c884892016bcc9f)で事前に取得した接続情報を設定します。

| kintoneの接続情報 | 設定項目 |
|:-----------------|------------------|
| ユーザID | User |
| パスワード |Password|
| kintoneのサブドメイン含むサイトURL（例：https://\*\*\*\*.cybozu.com）　※https://\*\*\*\*.cybozu.com/k/の「/k」は不要 |Url|

「接続テスト」ボタンをクリックします。下記のようなダイアログが表示されれば成功です。「ODBCのDSN構成」の「OK」ボタンをクリックして保存します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/123181/8f3b7e2b-3381-eeb7-35bf-87fc8992a158.png)

## UiPath Studio プロジェクトの作成と前準備

それでは実際にUiPath Studioを使用してRPAプロジェクトを作成していきます。

UiPathを立ち上げて、スタートページから「Blank」をクリックし、新しいプロジェクトを作成します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/83c556ca-f951-3bc0-07aa-e1869a8e7f0e.png)

プロジェクト名は任意の名称を入力してください。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/a0fd5887-d528-548e-4e83-55bdc7e2a499.png)

CData ODBC kintone Driverの接続を行うためには、Database接続用のActivityが必要になります。
Activities ナビゲーションから「Manage Package」をクリックし

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/1739910c-ea8c-a9b4-89ce-8e2b315e0aaf.png)

「UiPath.Database.Activities」を検索し、インストールします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/82f2f3fc-37b7-3792-5bbf-d58efe830a15.png)

そして、ActivitiesからFlow chartを配置して、下準備は完了です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/fdaa31ad-e8fa-2a03-3c3a-dae750d7d8da.png)

## Connection Activityの作成

続いて、ODBC 接続に使用する「Connect Activity」を配置します。配置後ダブルクリックし、Connectの詳細を表示します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/e0e518c6-a8f2-4609-2530-f3b1a01146cf.png)

Connectの詳細画面にて、「Configure Connection」をクリックし

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/7f1d1861-5dde-89b1-a37b-c33240ff1cd0.png)

「Connection Wizard」を表示します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/88e781bd-af98-a7ec-0888-2ef70fb87c4b.png)

「Microsoft ODBC Data Source」を選択して、「OK」をクリックします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/29e15302-62de-cf47-3caa-3eeac81742d9.png)

「Use user or system data source name」から先程作成したDSNを選択し、「OK」をクリック

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/2d8f404e-5698-543d-75e2-f3abe3ddd295.png)

以下のように接続用DSNが表示されていればOKです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/8db879e9-b65c-7a6c-6f29-5944efcffbf5.png)

更にConnection情報を格納するための変数を作成し、Outputと紐づけます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/68ea9142-b4ef-e070-3f8c-d028866ebcfb.png)

変数の型は「DatabaseConnection」を指定してください。

以上でConnectionのActivity構成は完了です。

## Execute Query Activity の作成

次に先程作成したODBC Connection情報を使って、ODBCからデータを取り出すクエリを実行するためのExecute Query Activityを作成します。

Activities ナビゲーションから「Execute Query」を選択し、Flowchartに配置します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/dbd40fa7-cf4c-3433-d9af-02d32375321c.png)

Propertiesに以下のように値を入力します。

「ExistingDbConnection」　←　先程作成したConneciton変数を入力します。

「Sql」　←　kintoneの対象リストを取得するためのSelect文（例："Select * from 顧客リスト"）を入力します。

「DataTble」　←　DataTable型の変数を作成し、入力します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/58872f3a-21f5-3cdd-6160-1962a989ec69.png)

以上で、DataTableを取得できるExecute Query Activityの作成は完了です。

## Write CSV の作成

最後のActivityとして、取得したDataTableをCSV出力するActivityを配置します。

Activitiesの中から「Write CSV」を選択し、Flowchartに配置します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/b5118d49-a4dd-233a-3abe-321e6ccc0794.png)

「FilePath」に出力するCSVのフォルダパスとファイル名（例："C:\UiPath\Sample.csv"）、DataTableに先程作成したDataTable変数を紐づけます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/64e5a486-1423-928b-a269-a6ad4da06901.png)

## 各Activity の接続と実行

あとは各Activityを紐付ければ、kintone データを出力するRPA プロジェクトの作成は完了です。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/8ca0f9ae-c274-1342-06b1-55fb3775871d.png)

「Run（もしくはF5）」をクリックすると、自動的にkintoneのデータを取得し、CSVが生成されます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/945d7236-379b-99fd-069b-c1efc6f71571.png)

以下のように対象のフォルダ・ファイル名でCSVが出力されました。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/bb541a45-d533-81f2-cc80-13be884ce493.png)

中身もちゃんとkintoneの顧客データになっています。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/56301/5e615ee7-bfe3-ba44-b9d7-4b71b2bacefb.png)

# 終わりに

今回はkintoneのデータ取得を軸として行いましたが、CData ODBC Driver は外にもSalesforceやDynamics 365等様々なクラウドアプリケーションに対応しています。

CData ODBC Box Driverであれば、ファイルのアップロード、Sendgrid Driverであればメールの送付もできるようになりますので、是非いろいろと試してみてください。