オンプレミスの SQL Server からデータを取得する
Dynamics 365 は Power Platform と呼ばれる PowerApps、Flow、Power BI と連携することで、その価値をさらに高めることができます。Dynamics 365 Customer Engagement Plan のライセンスを利用している場合は、ぜひとも活用したいアプリケーションです。
現在 Dynamics 365 は Common Data Service を使用してデータを管理しているため、Dynamics 365 で蓄積したデータを、同様にCommon Data Service を利用している PowerApps、Flow、Power BI にシームレスに渡すことができます。
引用元: Common Data Service とは何ですか (マイクロソフト)
Common Data Service にデータの統合 アプリケーションの構築には、通常、複数のソースからのデータが含まれますが、これはアプリケーション レベルで行われることもあります。このデータを共通のストアに統合することで、アプリケーション構築の経験が簡単になり、データを維持して操作するための単一のロジック セットが可能になる場合もあります。 Common Data Service は複数のソースから単一のストアにデータを統合し、Dynamics 365 アプリケーションから既に利用可能なデータとともに、PowerApps、Flow および Power BI で使用することができます。
引用元: Common Data Service とは何ですか (マイクロソフト)
この Common Data Service (CDS)を使って、オンプレミスの SQL Server からデータを取得して、Dynamics 365 の新しいエンティティに格納する手順をご紹介します。※CDS とは何かについては上記の技術情報をご参照ください。
事前準備
SQL Server のデータを Dynamics 365 に反映させる前に、いくつか準備をします。
オンプレミスの SQL Server を構築
オンプレミスの SQL Server を Azure の VM を使って構築しました。
手順としては、
- 無料アカウント でAzure ポータルにログインして、VM (Windows 10)環境を1台構築
- リモートデスクトップでアクセスして、 オンプレミスの SQL Server 2017 をインストール
- SQL Server Management Studio (SSMS) をインストールして接続
- サンプルデータ をダウンロードして、SSMS から復元 ※手順は 「SQL Server でサンプルDBを利用する」を参照
を行いました。すべて無料で検証できます。 ※自分のクライアントPCに SQL Server インストールしてやればよかったんですが、いろいろな大人の事情があり、 Azure の VM 構築で対応しました。オンプレミス? という多少の疑問は一度横に置いています(笑)
サンプルデータの「AdventureWorks2017」 から「SalesPerson」というテーブルを CDS の新しいエンティティに格納します。
サンプルデータの「AdventureWorks2017」 から「SalesPerson」というテーブルを CDS の新しいエンティティに格納します。
Dynamics 365 と PowerApps の無償版のセットアップ
もし両方とも環境が用意できていない方は、無償版の利用を開始してください。 ここでは
- Dynamics 365 for Sales の無償版をセットアップ
- 上記1で作成した onmicrosoft.com のアカウントで PowerApps の無償版 をセットアップ
の順番で準備をしました。※手順は割愛します。
オンプレミス データ ゲートウェイのインストール
それでは準備が整ったので早速始めます。まずはオンプレミスの SQL Server 上に オンプレミス データ ゲートウェイ をインストールします。このオンプレミス データ ゲートウェイをインストールすることで、オンプレミス・クラウド間のデータのやり取りが簡単にできるようになります。
オンプレミス データ ゲートウェイは、 、ここからダウンロードできます。
オンプレミス データ ゲートウェイの前提条件
オンプレミス データ ゲートウェイをオンプレ環境にインストールする場合は留意事項があります。
最小:
- .NET 4.5 Framework
- 64 ビット バージョンの Windows 7 または Windows Server 2008 R2 (またはそれ以降)
推奨:
- 8 コア CPU
- 8 GB のメモリ
- 64 ビット バージョンの Windows 2012 R2 (またはそれ以降)
関連する考慮事項: ゲートウェイをドメイン コントローラーにインストールすることはできません。 ゲートウェイは、電源オフ、スリープ状態、インターネット未接続状態になる可能性があるコンピューター (ノート PC など) にインストールしないでください。このような状況では、ゲートウェイは動作できません。 さらに、ワイヤレス ネットワーク経由ではゲートウェイのパフォーマンスが低下する可能性があります。
引用元: キャンバスアプリ用のオンプレミス データ ゲートウェイについて
ダウンロードしたらインストールを開始します。インストール手順は上記の技術情報に記載があるのでご参考ください。
ここでは、データ ゲートウェイの名前を下図のように設定して構成しました。
正常に完了したら、下図のようになりました。PowerApps で準備完了となっています。
PowerApps の「ゲートウェイ」を開くと作成した データ ゲートウェイが表示されていました。
オンプレミス SQL Server からデータを取得
オンプレミス SQL Server 上でオンプレミス データ ゲートウェイの設定が完了したので、PowerApps 側で特定のデータベースを取得してエンティティに格納します。
SQL Server に接続する
PowerApps の画面に移動して、右上より Environment を切り替えます。
左パネルの「データ」を展開して「データ統合」をクリックします。「データ統合プロジェクトを作成」をクリックします。
データソースとして「SQL Server データベース」を選択します。
接続設定で SQL Server のサーバー名と取得したいデータベース名を入力、オンプレミス データ ゲートウェイに先ほど作成したデータ ゲートウェイを選択して、Windows 認証として認証情報を入力します。そして「次へ」をクリックします。
取得するデータ列を選択する
データベースのテーブルを選択します。ここでは「SalesPerson」を選択して「次へ」をクリック。
クエリの編集画面になります。「列の管理」で「列の選択」をクリックして、必要な列のみ取得するようにします。
選択したら「次へ」をクリックします。
新しいエンティティに読み込む
テーブルの情報を新しいエンティティに読み込みます。読み込みの設定で「新しいエンティティに読み込む」にチェックをいれて、エンティティ名と表示名を設定します。
フィールドマッピングでキーフィールドを設定します。ここでは BusinessEntityID という一意のIDフィールドを選択しました。
プライマリ名フィールドに LastName を設定しようとしたらエラーが出ました。複数行テキストは設定できないということなので、LastName のフィールド型を「テキスト」に変更しました。
プライマリ名フィールドを LastName にして、その他のフィールド型も「テキスト」に変更して「次へ」をクリックしました。
※もし複数行テキストがいい場合は、そのままでもOKです。
最後に設定の更新ですが、ここでは「手動で更新」としました。自動的に更新する場合は、更新間隔や開始日を設定します。
「作成」をクリックします。読み込み状態が「完了済み」となればOKです。
データ統合に新しいプロジェクトが作成されています。
エンティティをみると、新規作成したエンティティが一覧に表示されています。
Dynamics 365 のサイトマップ上に表示させてみました。
これでオンプレミス SQL Server から Dynamics 365 へのデータの取り込みは完了です。オンプレミスからの移行も CDS を活用することでスムーズに行えそうです。
今回はここまで。