Azure App サービスでDynamics 365 Business Central のIFTTT フローをトリガー

杉本和也
杉本和也
リードエンジニア
この記事では、Logic Apps の標準ウィザードを使用してIFTTT (if-this-then-that) ワークフローを自動化する方法を説明します。



Azure Logic Apps は ノーコードでアプリを構築できるクラウドサービスです。CData API Server と連携することで、ノーコードアプリ開発用のDynamics 365 Business Central のデータへのクラウドベースのアクセスをノーコードで追加できます。本記事では、API Server 経由でAzure Logic Apps からDynamics 365 Business Central 連携を実現する方法を紹介します。

API Server の設定

以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなDynamics 365 Business Central OData サービスを作成していきましょう。

Dynamics 365 Business Central への接続

Azure Logic Apps からDynamics 365 Business Central のデータを操作するには、まずDynamics 365 Business Central への接続を作成・設定します。

  1. API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。 接続を追加
  2. 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Dynamics 365 Business Central」を選択します。
  3. 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
    CData コネクタの追加方法はこちら >>
  4. それでは、Dynamics 365 Business Central への接続設定を行っていきましょう! 接続設定
  5. Dynamics 365 Business Central 接続プロパティの取得・設定方法

    Dynamics 365 Business Central への認証には、User およびAccessKey プロパティが必要です。

    データに接続するには、OrganizationUrl を指定します。OrganizationUrl は、 http://businesscentral.dynamics.com/abc123/ などのBusiness Central アカウントへのエンドポインであるか、Web サービスのルートを参照する必要があります。OrganizationUrl を指定する方法 および利用可能なエンドポイントについての詳細は、Business Central エンドポイント を参照してください。組織内に複数の会社がある場合は、どの会社に接続するかを特定するためにCompany を指定する必要があります。 会社が1つだけの場合は、Company を指定する必要はありません。

    Dynamics 365 Business Central に認証するには、User およびAccessKey 接続プロパティを指定します。Microsoft では、これらをテストおよび開発目的で推奨します。ただし、運用環境での使用は推奨していません。User およびAccessKey の値を取得するには、Dynamics 365 Business Central の「ユーザー」ページに移動して「編集」をクリックします。User Name および Web Service Access Key の値は、User およびPassword 接続文字列プロパティとして入力する値です。User Name はE メールアドレス ではありません。短縮されたユーザー名です。

    Microsoft では、OAuth 認証を使用する本番ユースケースを推奨します。詳細については、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

  6. 接続情報の入力が完了したら、「保存およびテスト」をクリックします。

Dynamics 365 Business Central 接続プロパティの取得・設定方法

Dynamics 365 Business Central への認証には、User およびAccessKey プロパティが必要です。

データに接続するには、OrganizationUrl を指定します。OrganizationUrl は、 http://businesscentral.dynamics.com/abc123/ などのBusiness Central アカウントへのエンドポインであるか、Web サービスのルートを参照する必要があります。OrganizationUrl を指定する方法 および利用可能なエンドポイントについての詳細は、Business Central エンドポイント を参照してください。組織内に複数の会社がある場合は、どの会社に接続するかを特定するためにCompany を指定する必要があります。 会社が1つだけの場合は、Company を指定する必要はありません。

Dynamics 365 Business Central に認証するには、User およびAccessKey 接続プロパティを指定します。Microsoft では、これらをテストおよび開発目的で推奨します。ただし、運用環境での使用は推奨していません。User およびAccessKey の値を取得するには、Dynamics 365 Business Central の「ユーザー」ページに移動して「編集」をクリックします。User Name および Web Service Access Key の値は、User およびPassword 接続文字列プロパティとして入力する値です。User Name はE メールアドレス ではありません。短縮されたユーザー名です。

Microsoft では、OAuth 認証を使用する本番ユースケースを推奨します。詳細については、ヘルプドキュメントの「OAuth 認証の使用」を参照してください。

API Server のユーザー設定

次に、API Server 経由でDynamics 365 Business Central にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。

  1. 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
  2. 次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
  3. その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。

Dynamics 365 Business Central 用のAPI エンドポイントの作成

ユーザーを作成したら、Dynamics 365 Business Central のデータ用のAPI エンドポイントを作成していきます。

  1. まず、「API」ページに移動し、 「 テーブルを追加」をクリックします。
  2. アクセスしたい接続を選択し、次へをクリックします。
  3. 接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。

OData のエンドポイントを取得

以上でDynamics 365 Business Central への接続を設定してユーザーを作成し、API Server でDynamics 365 Business Central データのAPI を追加しました。これで、OData 形式のDynamics 365 Business Central データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。

コネクションとOData エンドポイントを設定したら、Azure Logic Apps からDynamics 365 Business Central のデータに接続できます。

Logic App でDynamics 365 Business Central にアクセス

Logic App でAPI Server を使用し、Dynamics 365 Business Central の周りにプロセスフローを作成できます。HTTP + Swagger アクションは、Dynamics 365 Business Central に対して実行する操作を定義するためのウィザードを提供します。以下のステップでは、Logic App でDynamics 365 Business Central を取得する方法を説明しています。

テーブルにレコードの作成日を含むカラムがある場合は、以下のステップに従って新しいレコードのカラム値をチェックする関数を作成できます。それ以外の場合は、[Create a Logic App]セクションにスキップし、フィルタに一致するエンティティにメールを送信します。

新しいDynamics 365 Business Central エンティティを確認

特定の新しいDynamics 365 Business Central エンティティを見つけるために、インターバルの開始日時の値を取得する関数を作成できます。

  1. [Azure Portal]で、[New]->[Function App]->[Create]と進みます。
  2. 名前を入力し、サブスクリプション、リソースグループ、App Service プラン、そしてストレージアカウントを選択します。
  3. Function App を選択し、Webhook + API シナリオを選択します。
  4. 言語を選択します。この記事では、JavaScript を使用します。
  5. 以下のコードを追加し、JSON オブジェクトで前の時間を返します。
    module.exports = function (context, data) {
      var d = new Date();
      d.setHours(d.getHours()-1);
      // Response of the function to be used later.
      context.res = {
        body: {
          start: d
        }
      };
      context.done();
    };
    

トリガーにDynamics 365 Business Central を追加

以下のステップに従って、フィルタに一致する結果をDynamics 365 Business Central で検索するトリガーを作成します。上記の関数を作成した場合は、返されたインターバルの開始後に作成されたオブジェクトを検索できます。

  1. Azure Portal で[New]をクリックし、[Web + Mobile]セクションで[Logic App]を選択してリソースグループとApp Service プランを選択します。
  2. これで、Logic App Designer で使用可能なウィザードが使用できます。このウィザードには、Logic App の設定ブレードからアクセスできます。Blank Logic App templateを選択します。
  3. Dynamics 365 Business Central オブジェクトをポーリングするRecurrence アクションを追加します。この記事では、一時間ごとにポーリングします。タイムゾーンを選択します。デフォルトはUTC です。
  4. 関数アクションを追加します。[Add Action]ダイアログのメニューを展開し、リジョンにAzure 関数を表示するオプションを選択します。先に作成したFunction App を選択し、インターバル開始を返す関数を選択します。
  5. からの中括弧のペア({})を入力し、からのペイロードオブジェクトを関数に渡します。
  6. HTTP + Swagger アクションを追加し、API Server のOData エンドポイントを入力します。
    http://MySite:MyPort/api.rsc/@MyAuthtoken/$oas
  7. [Return Accounts]操作を選択します。
  8. 各プロパティの説明を使用して、取得する列やフィルターなどの追加パラメータを指定します。以下はフィルタの一例です。

    Name eq 'MyAccount'

  9. getInterval 関数から返された日時値を使用するには、Accounts テーブルの日時列で[ge]演算子を使用し、ダイアログでBody パラメータを選択します。日時値を囲むには、クォーテーションを使用する必要があることに注意して下さい。

    An OData filter on the results of an Azure Function App, getToday.(Salesforce is shown.)
  10. [Code View]に切り替え、$filter 式を変更してインターバルの開始を含むプロパティを抽出します。'@{body('MyFunc')['MyProp']' 構文を使用します。

    "getAllAccount": {
      "inputs": {
        "method": "get",
          "queries": {
            "$filter":"CreatedDate ge '@{body('getInterval')['start']}'"
          },
          "uri": "https://MySite:MyPort/api.rsc/@MyAuthtoken/Accounts"
      }
    

これで、ワークフローのデータソースおよび宛先としてDynamics 365 Business Central にアクセスできます。

新しレコードをメールで送信

以下のステップに従って、新しいAccounts エンティティを含むレポートをメールで送信します。

  1. [Logic Apps Designer]で[SMTP - Send Email]アクションを追加します。
  2. SMTP サーバーに必要な情報を構成します。
  3. From、To、Subject、Body を構成します。返されたDynamics 365 Business Central 列からパラメータを追加できます。

[Save]をクリックし、[Run]をクリックして過去一時間に作成されたDynamics 365 Business Central レコードに関する電子メール通知を送信します。

Dynamic columns added to template the body of an email.(Salesforce is shown.)

クラウドアプリケーションからDynamics 365 Business Central のデータへのライブ接続

Azure Logic Apps からDynamics 365 Business Central のリアルタイムデータに直接接続できるようになりました。これで、Dynamics 365 Business Central のデータを複製せずにより多くの接続とアプリを作成できます。

クラウドアプリケーションから直接100を超えるSaaS 、ビッグデータ、NoSQL ソースへのリアルタイムデータアクセスを取得するには、API Server を参照してください。

はじめる準備はできましたか?

詳細はこちら、または無料トライアルにお申し込みください:

CData API Server お問い合わせ