Power Automate Desktop で CData ODBC Driverを使う方法:kintone から CSVファイルを自動生成する

f:id:sugimomoto:20210126110459p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

今回はMicrosoftのRPAサービス「Power Automate Desktop」と「CData ODBC Driver」を組み合わせて様々なクラウドサービス・アプリケーションに接続する方法を紹介したいと思います。

Power Automate Desktop とは?

Power Automate Desktop は MicrosoftのiPaaSであるPower Automate に去年新しく加わった、RPAサービスです。

https://flow.microsoft.com/ja-jp/robotic-process-automation/

f:id:sugimomoto:20210125142457p:plain

以下のようなデスクトップアプリを利用して、RPAのフローを作成し、業務プロセスの改善・自動化を実現できるようになっています。

docs.microsoft.com

f:id:sugimomoto:20210125142505p:plain

RPAとしての基本的な機能の他に、様々なアプリケーションやローカルファイル・サービス等に接続することが可能なアクションが一つの特徴となっています。

その中に、データベースにODBC経由で接続できるアクションが含まれており、CData ODBC Driverと組み合わせることで、CDataが対応している様々なデータソース と接続できるようになります。

docs.microsoft.com

f:id:sugimomoto:20210125142513p:plain

今回の記事ではこのデータベース接続アクションとCData ODBC Driver を使って、Power Automate Desktop から 国産クラウドサービス「kintone」に接続する方法を紹介します。

シナリオ

今回は前述の通り、シンプルな連携方法として、国産クラウドサービスの kintone から CData ODBC Driver経由でアプリのデータを取得し、ローカルのCSVファイルを生成するシナリオで解説します。

f:id:sugimomoto:20210126110459p:plain

最終的に作成するフローは以下のようなイメージとなります。

f:id:sugimomoto:20210125142524p:plain

Power Automate はRPAなので、kintone の UI上からデータを取得して処理するといったことも考えられますが、その場合ページ遷移や項目名の変更、UIのビュー調整・認証方法などを考慮しなくてはいけません。

しかしながら、CData ODBC Driverを利用することで上記API固有のハンドリングを委任し、Power Automate Desktopからシームレスに呼び出すことができるようになります。

また、今回のシナリオではkintoneを例に紹介していますが、CData で提供するSalesforceやMarketo・Amazon MarketplaceなどのODBC Driverも同様に接続が可能です。

www.cdata.com

f:id:sugimomoto:20210125142529p:plain

Power Automate Desktopのはじめ方、トライアル方法については以下の記事が参考になると思います。

qiita.com

手順

CData kintone ODBC Driverのインストール・セットアップ

まず、CData kintone ODBC Driverを対象のマシンにインストール・セットアップします。

CData kintone ODBC Driver は以下のURLから30日間のトライアル版が入手できます。

https://www.cdata.com/jp/drivers/kintone/odbc/

f:id:sugimomoto:20210125142537p:plain

インストーラーを立ち上げると、以下のような画面になるので、ダイアログに従ってセットアップを完了してください。

f:id:sugimomoto:20210125142546p:plain

セットアップ完了後、接続設定画面が立ち上がります。下記の項目にkintoneへの接続情報を設定します。

kintoneの接続情報 設定項目 備考
ユーザID User
パスワード Password
サブドメイン含むサイトURL Url 例:https://xxx.cybozu.com

f:id:sugimomoto:20210125142551p:plain

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

f:id:sugimomoto:20210125142555p:plain

Power Automate Deskotopで新しいフローを作成

続いて、Power Automate Desktopでフローを作成していきます。

Power Automate Desktopを立ち上げて、「新しいフロー」をクリックし

f:id:sugimomoto:20210125142601p:plain

任意のフロー名を入力して、新規のフローを作成します。

f:id:sugimomoto:20210125142605p:plain

以下の画面でフローを構成していきます。

f:id:sugimomoto:20210125142611p:plain

SQL 接続の設定

Power Automate Dektop から、CData ODBC Driver経由でkintoneに接続する場合、前述の通りデータベース接続のアクションを利用します。

データベース接続は「SQL接続を開く」→「SQL ステートメントの実行」→「SQL接続を閉じる」の順で処理を実施します。

そのため、最初に「SQL接続を開く」を配置して、ODBCへの接続設定を行います。

f:id:sugimomoto:20210125142616p:plain

設定画面では以下のように事前に構成したkintoneのDSNを指定する接続文字列を入力します。

「DSN=CData Kintone Source;」

f:id:sugimomoto:20210125142620p:plain

SQL ステートメントの実行

続いてデータを取得するクエリを実行するために「SQL ステートメントの実行」を配置します。

f:id:sugimomoto:20210125142625p:plain

CData ODBC Driver では SQL文で kintoneのアプリデータを取得することができるようになっています。

今回はkintoneで予め提供されているサンプルアプリ「営業支援パック」の「顧客管理」データを取得するように指定しました。

「SELECT * FROM [顧客管理(営業支援パック)]」

f:id:sugimomoto:20210125142630p:plain

なお、接続可能なアプリ名はODBC DSNの「テーブル」タブから参照することができます。ここでアプリ名をコピー・アンド・ペーストすると良いでしょう。

f:id:sugimomoto:20210125142635p:plain

CSVファイルの生成

次にCSVファイルの生成アクションを設定します。アクションから「CSVファイルに書き込みます」を配置し

f:id:sugimomoto:20210125142641p:plain

取得したアプリのデータが格納されている「%QueryResult%」を書き込む変数に指定します。

あとは、生成先のファイルパスを指定すればOKです。

もし列名を含めたい場合は「Advanced」にある「列名を含めます」にチェックを入れましょう。

f:id:sugimomoto:20210125142646p:plain

SQL接続を閉じる

最後に、接続したODBC 接続をクローズします。

「SQL接続を閉じる」をフローに配置し

f:id:sugimomoto:20210125142653p:plain

対象のコネクションを指定して保存すればOKです。

f:id:sugimomoto:20210125142657p:plain

テスト実行

これで以下のようなフローが構成されればOKです。

f:id:sugimomoto:20210125142702p:plain

画面左上の「実行」ボタンをクリックすることで、動作を確認することができます。

f:id:sugimomoto:20210125142708p:plain

正常に実行が完了すると、以下のようなCSVファイルが生成されます。

アプリの日本語カラム名なども問題なく取得できていますね。

f:id:sugimomoto:20210125142715p:plain

Tips

QueryResultの結果を細かく取得したい場合は、以下のようにアクセスすることが可能です。

「%QueryResult[{レコード番号}][{カラム番号またはカラム名}]%」

f:id:sugimomoto:20210125142723p:plain

例えば、3レコード目の「顧客名」の値を取得したい場合は

「%QueryResult[2]['顧客名']%」で取得することが可能です。

おわりに

今回はPower Automate DesktopとCData Driverの連携方法を紹介しましたが、PowerPlatform全体で見ると、他にもCData Driverが連携できるポイントがあります。

ユースケースに合わせて、色々な連携を試してみてください。

https://www.cdata.com/jp/blog/2019-11-19-111420

https://www.cdata.com/jp/blog/2019-02-14-112834

www.cdatablog.jp

トライアル・お問い合わせ

関連コンテンツ