MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

Power Automate for desktop から CData Connect Cloud に接続して 複数 SaaS のデータを取得する

CData Connect Cloud に夢中の私です。 今回は Power Platform の中でRPAを担う Power Automate for desktop から、CData Connect Cloud に接続してみます。

初手でハマってしまい、2日くらいウンウンうなっていたので、同じことしようとしている方の参考になれば幸いです。

Power Automate for desktop から SQL 接続

CData Connect Cloud は SQL接続ができるクライアントなら大体繋げられます。Power Automate for desktop にも SQL接続アクションが用意されていますので、早速試してみます。

いつもの要領でサーバー名入れてユーザー名 (Connect Cloudのユーザー名) とPersonal Access tokenを入れて接続テストに成功するものの、いざフロー内でSQL接続を開始しようとするとエラーが出てしまいます。 (DBMSのバージョンが7.0.0より古いので~というエラー)

調べてみても同種のエラーがPAfd関連で報告されていないので、詰みました。。(ここで2日)

ODBC Driverがあるじゃない!

解消手段としては、CData の SQL Server ODBC Driverを使う手があります。以下のブログと同じようなステップで実際 CData Connect Cloud に接続できました。

Connect to SQL Server in Power Automate Desktop via ODBC

そんな話をしていたら、杉本さん に Connect CloudのクライアントにODBC Driverがあることを教えていただきました。

ということで、これを使ってみます。

ODBC Driverのインストールと設定

Connect Cloud のクライアント一覧のページに表示されている"ODBC" の "Download" というリンクをクリックするとドライバーのインストーラーがダウンロードされます。

インストールは特に迷うことなくサクサク進みます。既定の設定から変更する部分はないかなと思います。

インストールが完了したら続いてODBCのデータソース設定です。インストーラーの最後にチェックが入っているので、このまま進んでもよいですが、もし後から設定したい/設定変更したいという場合にはインストール先のフォルダに"ConfigureODBC.exe" という実行ファイルがあるので、これを実行してください。

データソース設定でも特に設定するところはありません。わかりやすいData Source Nameを付けて、Auth Schemeが OAuthであることを確認し、接続テストを行います。

CData Connect Cloudへのログインを行えばこれで設定完了です。 無事 テーブルの一覧が取得できていることがわかります。

Power Automate for desktop から CData Connect Cloud に接続

ここまででデータ接続する準備が整いましたのでフローを作っていきます。今回は単純に CData Connect Cloud で追加済みのAirtable と Kintone のデータを取得してCSVにエクスポートするフローを考えます。

"SQL接続を開く" アクションでは、特にサーバー名など指定する必要はありません。そこらへんはドライバーが担ってくれます。

ここでは 接続文字列に

DSN=CData Connect Cloud; 

を指定するだけです。※"="の後ろにくるのは先ほどドライバーの設定で指定したData Source Nameです

あとは"SQL ステートメントの実行" アクションで、必要なデータを取得します。この時は [Airtable1].[Airtable].[Table 1] のようにフルパス(?) を指定します。

実際実行してみると、確かにCSVファイルにAirtableのデータがエクスポートされていることがわかります。

ここまでAirtableのAPI的な操作を全く意識せずに進んでこれました。 CData Connect Cloudのすごいところはまさにここで、接続先のSaaSのAPI, データ接続のインターフェースを意識することなく、SQLステートメントを実行することで統一的に データを取得できるんですね。

複数 SaaS 接続もこれ一本

一つのフローの中で複数のSaaSのデータをとってこようと思うと結構大変ですよね。でも CData Connect Cloudは接続先が一本化されているので、一度SQL接続を開始してしまえば、複数のSaaSからでも それぞれ1アクションでデータを取得してこれます。 (賢いSQL文書ければ一回で持ってこれるのかもですが)

下図のフローでは、1回SQL接続を開いたらあとは2回 SQLステートメントを実行しています。それぞれ 先ほどの Airtable のデータ取得と Kintone の顧客リスト取得を行っています。

こんな風に、接続先のSaaSが複数に渡ったとしても、まるで1つのDBの複数のテーブルを参照するかのようにデータ取得可能 というのが非常に大きなメリットになります。

おわり

今回は Power Automate for desktop から CData Connect Cloud に接続して 複数の SaaS のデータを取得してみました。

標準の設定ではエラーが出てしまうものの、ODBC Driverが利用できることで、設定特になくデータを取得することができました。

これまで紹介したように、SQLのインターフェースさえあれば大体どんなクライアントからでも複数のSaaSから、それぞれのAPIの違いを意識することなくデータ取得できるというのが CData Connect Cloudの強みかなと思います。

30日トライアルが用意されていますので、ぜひお試しください。(宣伝みたいになってしまった)

www.cdata.com