Microsoft Flow で、CData Cloud Driver を使って、接続先を大幅に拡大

4月下旬にMicrosoft がPowerApps ツールのパブリックプレビューとMicrosoft Flow のSaaS 提供を発表しました。 Microsoft Flow はIFTTT などの人気のサービスに対するMicrosoft としての回答と言えるもので、非エンジニアが ワークフローを作成してアプリケーション同士を連携させたり、タスクを自動化したりすることを可能にします。

Microsoft Flow でユーザーは、誰かが特定のハッシュタグでツイートした場合に、データベースに入力を行ったり、 SharePoint のリストに新しいアイテムが追加された場合にE メール通知を送る、などのワークフローを作成することができます。

まだプレビューですが、接続可能なデータソースは多くありません。そこで、データ接続テクノロジーのフロントランナーである CData Software を使えば、大幅にMicrosoft Flow が接続できるアプリケーション、データベース、Web API を拡大できます。

Microsoft Flow タスクはSwagger ファイルのWeb API を受け付けることができるので、CData Cloud Driver を使って Microsoft Flow タスクがネイティブにはサポートしていない多くのデータソースと接続することができます。 CData Cloud Driver は、Salesforce、Google、NetSuite、Marketo、QuickBooks などのアプリケーション、オンプレおよびクラウドのDB などの多様なデータソースをODATA、SOAP、REST などのインターフェースでホスト・公開できるサーバーアプリケーションです。CData の60を超えるデータ接続先がMicrosoft Flow から利用できるようになります。

今回は、CData Cloud Driver による、欧米で一般的に使われているクラウド会計ソフトであるQuickBooks Online との 接続の設定方法を説明したうえで、Microsoft Flow との連携をしてみましょう。

QuickBooks Online Cloud Driver の設定方法

まず、CData Cloud Driver for QuickBooks Online をインターネット接続があるマシンにインストールします。インストールが完了したら、Cloud Driver にウェブに接続できるエンドポイントを設定します。この設定の詳細についてはヘルプドキュメントを参照してください。(Windows, Java).

QuickBooks Online Cloud Driver を起動して、アプリケーションにログインしてQuickBooks Online への接続を確立します。QuickBooks Online への接続確立後に、設定画面からQuickBooks テーブルの取得、API にアクセスできるユーザーの設定、サービスおよびOData エンドポイントのURL の設定を行います。以下に設定の手順を示します。

QuickBooks Online への接続:

[SETTING]→[Connection]タブから、接続を設定し、接続のテスト、保存を行います。OAuth でのQuickBooks Online への接続設定についての詳細は オンラインヘルプを参照してください。

  • CompanyId を設定し、OAuth 認証項目(OAuthClientIdOAuthClientSecret)を設定します。
  • "Get OAuthTokens" をクリックして、QuickBooks Online に認証し、OAuthAccessTokenOAuthAccessTokenSecret を取得します。
  • [Test Connection]ボタンで接続のテストが可能です。接続が確立されたら、[Save Changes]をクリックします。

テーブルの選択:

[SETTING]→[Tables]タブからCloud Driver が公開するテーブルを設定します。

  • [Add Tables]をクリックして、表示されるダイアログからテーブルを選択します。
  • テーブルのインポート後、テーブル内のどのカラムにアクセスするかを編集して設定します。
  • [API]ページでOData エンドポイントとサンプルクエリを確認し、API のテストを行うことができます。テーブルに対して有効なコマンドとサンプルクエリを[Resource]セクションから確認します。

アクセスコントロール:

[SETTINGS]→[Security]タブから、データにアクセスできるユーザーとIP アドレスを指定します。

  • User Permissions] セクションで、Microsoft Flow からCloud Driver にAuth トークンを使ってアクセスするユーザーを作成・権限付与します。
  • Trusted IP Addresses] セクションで、アクセスを許容するIP アドレスを設定します。IP アドレス制限をかけない場合には"*" を入力します。
  • Cloud Driver は、Windows、forms-based、Kerberos 認証をサポートしていますが、Microsoft Flow ではAuth トークンを利用します。Windows やJava のヘルプドキュメントのServer Configuration の[User Management]セクションを参照してください。

CORSの許容:

リクエストがMicrosoft Flow からくるため、Cross-Origin Resource Sharing を[SETTING]→[Server]から設定します。

  • [Enable cross-origin resource sharing (CORS)] チェックボックスをクリックします。
  • [Allow all domains without '*']チェックボックスをクリックするか、 Access-Control-Allow-Origin での接続を許容するドメインを指定します。
  • Access-Control-Allow-Methods]に[GET,PUT,POST,OPTIONS]を設定します。
  • Access-Control-Allow-Headers]を[x-ms-client-request-id, authorization, content-type]に設定します。
  • [Save Changes]をクリックします。

URL 中にAuth トークンを含むことを許可する

記事の執筆時点で、Microsoft Flow はSwagger セキュリティ基準をサポートしていません。そのため、Cloud Driver がURL にAuth トークンを 含むことを許可しなければなりません。app_data * ディレクトリ(<installation directory*>/www/app_data) の settings.cfg ファイルを編集して、 [Application] セクションに次のコードを加えます。

allowauthtokeninurl = true

これで、Cloud Driver 側のQuickBooks Online との接続設定が完了です。次にMicrosoft Flow からのQuickBooks Online Driver との接続を行います。

Cloud Driver からのタスクの作成

この記事では、Salesforc に新しいコンタクトが追加されると、QuickBooks Online に顧客が追加されるというフローを組みます。

新しいフローの作成

Microsoft Flows (http://flow.microsoft.com) から、[Create new flow]をクリックします。

Salesforce - When an object is created

  • はじめの(How would you like to start?) コンポーネントで、[Salesforce - When an object is created]を選択します。
  • [Contact]オブジェクトタイプを選択します。
  • すでに接続がある場合には、タスクはすでに接続があると表示します。接続がまだない場合には、新しい接続を作成してください。

Http + Swagger

  • 次のコンポーネントにて、[Add an action]から[Http + Swagger]を選択します。次にCloud Driver に接続を行います。URL をビルドするには、[SWAGGER ENDPOINT URL]フィールドで、2つのデータが必要です。
    https://server address/api.rsc/@authtoken/$swagger
    • Cloud Driver のserver address
    • Cloud Driver にて作成されたユーザーのauthoken
  • Swagger endpoint が定義されると、[Next]をクリックして、利用可能な処理のリストがCloud Driver を通じて表示されます。この処理はCloud Driver においてQuickBooks Online API から選択して公開したテーブルが基となっています。
  • [Create Customers]をクリックします。

createCustomers

処理を選択したら、Salesforce の[When an object is created]タスクからのアウトプットをCloud Driver の[createCustomers]タスクにインプットとしてマッピングを行います。

フローの作成

マッピング完了後に、Flow の名前をつけて、[Create Flow]をクリックします。これで、Salesforce にコンタクトが追加されると、QuickBook Online に新しい顧客が自動的に追加されるフローが完成しました。

無償評価版の案内

Cloud Driver の無償評価版ダウンロード で、お好みのデータソースを使ってMicrosoft Flow でフローを組んでみましょう。

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

関連コンテンツ