Dynamics 365 v9.0 新機能 仮想エンティティにCData API Serverを経由して、Azure SQL Databaseのテーブルを表示してみる
以前、Dynamics 365 の仮想エンティティの使い方を紹介しました。
仮想エンティティはODataが必須ですが、ODataのエンドポイントを構成するのはなかなかなコストがかかります。
そこで、Cdata Software で提供しているOData形式のWeb APIを簡単に構築できるAPI Serverを利用して、Azure SQLへさくっと連係させてみました。
以下のような感じです。
API Server の構築方法は以下の記事をどうぞ。
ちなみに、この記事はCData Software User Group Advent Calendar 2017の10日目です。
構築手順
構成方法は、上記Blogのベースを踏まえていれば、結構簡単です。
最初にAzure SQL の連係対象テーブルを構成し
最後に、Dynamics 365仮想エンティティの設定を行う、という流れです。
連係用Azure SQL テーブルの準備
今回は製品情報を格納するProductテーブルを構成して、Dynamics 365と連係させてみました。
以下のような感じで、テーブルを事前に作成しておきます。
ポイントは、PrimaryKeyの設定で、ここにはGUIDを格納するフィールドとして利用します。
最終的に、このGUIDが利用されて、Dnamics 365からODataのレコード指定リクエストが飛びます。
そして、以下のような感じでサンプルデータも突っ込んでおきました。
API ServerでProductテーブルの公開
API Serverも、すでにインストールが完了していれば、特に難しいことはありません。
まず、接続からAzure SQLに対する接続構成を行います。
SQL Serverを選択し
接続設定を保存します。
続いて、リソースから、[リソースの追加]をクリックし
先程構成した、接続情報を選択
先程作成したProductテーブルを選択します。
あとは、基本的には初期設定で大丈夫ですが、
初期状態のリソース名が長いので、Productと変更しました。
これで保存します。
あとは、ユーザーから、APIにアクセスするためのユーザー情報を構成しておきましょう。
後々Authトークンが必要になるので、ここで控えておきます。
あとは、ヘルプから、接続用URLも控えておきましょう。
仮想エンティティの設定
最後にDynamics 365 の仮想エンティティの設定を行っていきます。
まず、仮想エンティティのデータソース設定ですが、以下のように設定値を入力します。
ポイントは認証情報をHeaderに入力するところです。
URL:http://****.azurewebsites.net/api.rsc(末尾が.rscなので注意)
Request Parameters
Request Type:Header
Parameter Name:x-cdata-authtoken
Parameter Value:(※API ServerのユーザーAuthトークンを入力)
データソース設定後、連係用の仮想エンティティを作成します。
ポイントは以前と同様に、仮想エンティティのチェックボックスを入れて、設定したデータ・ソースを選択するところと
ODataリクエストの対象ソースとして指定される、External NameとExternal Collection Nameです。
ちなみに、API Serverは複数形でリクエストを実施しないので、今回の場合はどちらもPdoructを入力して大丈夫です。
あとは、フィールドを作成して、マッピングし、
フォームやビューに配置するだけです。
OdataのDateTimeはもちろん日付と時間ですが、Money型はAPI Serverの構成上、Decimalになるので、Dynamics 365上でもDecimalに指定しました。
公開後、以下のように表示されます!!!
素晴らしい!!!
フォームも大丈夫です。
おわりに
ちなみにAPI ServerはSQL Serverのようなベーシックなデータベースだけでなく、KintoneやSharePointといったSaaSサービスをODataに変換し直すドライバーのような役割も持っています。
なので、次回は、KintoneかSharePointを仮想エンティティとして表示する連係をしてみたいと思います。