Upgrade to Pro — share decks privately, control downloads, hide ads and more …

第6回jduc勉強会 dynamics 365 新機能 外部apiと連携できる仮想エンティティの活用方法

第6回jduc勉強会 dynamics 365 新機能 外部apiと連携できる仮想エンティティの活用方法

第6回jduc勉強会 dynamics 365 新機能 外部apiと連携できる仮想エンティティの活用方法

Kazuya Sugimoto

December 13, 2017
Tweet

More Decks by Kazuya Sugimoto

Other Decks in Technology

Transcript

  1. See the World as a Database Speaker 杉本 和也:Kazuya Sugimoto

    • CData Software Japan, LLC Lead Engineer • Microsoft MVP for Business Solution(Dynamics CRM/365) • 青森県出身。会社は仙台。住まいは東京。今日は名古屋。 Blog:Morning Girl http://kageura.hatenadiary.jp/ Twitter:@sugimomoto Facebook:sugimomoto
  2. CData Software, Inc. (http://www.cdata.com/) Started: 1994 (/nsoftware) Location: Chapel Hill,

    NC, USA CData Japan: 2016/6 (JV with Infoteria) (http://www.cdata.co.jp) About CData Software はデータアクセスおよび連携ソリューションのリーディングカンパニーです。弊社はドライバーとデータアクセステク ノロジーの開発に特化し、お客様のオンラインおよびオンプレミスのアプリケーション、データベース、WebAPI へのリアルタイム接続を 実現します。 CData ドライバーは、ODBC、JDBC、ADO.NET、OData、SSIS、BizTalk、Excel などの標準コネクターや標準アプリケーションプ ラットフォームを経由したデータアクセスを提供します。
  3. See the World as a Database Dynamics 365 V9.0 新機能:仮想エンティティ

    Dynamics 365 外部で公開されているWeb API(OData)データを、 Dynamics 365の一つのエンティティかのうように扱うことができる機能 ※既にBlogに詳しい手順が書いてあります。 Dynamics 365 9.0 新機能 仮想エンティティの使い方 その1 概要 http://bit.ly/2j5tUmd Dynamics 365 v9.0 新機能 仮想エンティティの使い方 その2 構成手順 http://bit.ly/2ARjZsL
  4. See the World as a Database 背景:分散管理がどんどん増えている マーケティング 製品・在庫管理 手作業

    DWH BI SFA あらゆるアプリ・ サービスが 「多対多」でつながる マイクロサービス アーキテクチャ
  5. See the World as a Database 各連係アプローチの比較 メリット デメリット ETL・バッチ

    ・データの変換まで踏まえた柔軟な連係が可能 ・大量データの処理向き ・同期に時間がかかる ・開発コストが高い サーバーレス ・開発が安易 ・リアルタイムに近い非同期で連係可能 ・レコード単位の連係が中心 ・失敗時の取り回しがしづらい 仮想エンティティ ・リアルタイムにデータの参照が可能 ・必要な作業は設定レベル ・読み取り専用 ・ODataの準備・開発が必要 どれが優れているという話ではなく、 各々の特性を踏まえて選択 ハイブリッド運用や シフトも必要
  6. See the World as a Database External service Dynamics 365

    Service OData Service A https://****.seriveA.com/ OData Service B https://****.seriveB.com/ 仮想エンティティの構成イメージ Virtual Entity Data Source Record A https://****.odata.com/ Record B https://****.odata.com/ Product Entity External Name: Product Custom Entity Definition Product Table Service Table Customer Table User Table Web API OData Service Product Entity External Name: Service Product Entity External Name: User
  7. See the World as a Database 仮想エンティティ用ODataの要件 ・Dynamics 365 では、すべてのエンティティが

    ID 属性を持つことが必要になります。この ID は一意の識別子と して知られ、値は GUID にする必要があります。 ID フィールドは、EDM.Guid データ型の外部フィールドにのみマッ プできます。 Dynamics 365 では、EDM.Int32 データ型を uniqueidentifer データ型フィールドのマップする ことはできません。 ・NULL 値が許容されるプロパティを使用する OData エンティティは、仮想エンティティにマップされたフィールドに 一致するよう設定する必要があります。 たとえば、Nullable=False の OData エンティティ プロパティは、 Dynamics 365 フィールド要件属性のマップされたフィールドを [必須項目] に設定する必要があります。 ・グリッドにデータをロードするなど複数のクエリを取得する場合、クエリ パラメーターの選択とフィルターを使用して、 外部データ ソースから返されるデータセットのサイズを制御します。 ・システム管理者は、既に有効にされていない場合はプラグイン トレースを有効にしてください。 有効にすると、 OData エンドポイントからのすべてのエラーがプラグイン トレース ログでキャプチャされます。 詳細: [システムの設 定] ダイアログ ボックス - [カスタマイズ] タブ ※引用元: MSDN OData v4 データ プロバイダー ベスト プラクティス https://docs.microsoft.com/ja-jp/dynamics365/customer-engagement/customize/virtual- entity-odata-provider-requirements
  8. See the World as a Database 仮想エンティティの注意点(MSDNから抜粋) ・すべての仮想エンティティは読み取り専用です。 ・既存のエンティティは、仮想エンティティに変換できません。 ・仮想エンティティは監査をサポートしていません。

    ・仮想エンティティ フィールドは、ロールアップまたは計算フィールドでは使用できません。 ・仮想エンティティは組織によって所有され、行レベルの Dynamics 365 セキュリティ概念はサポートされません。 外部データ ソースには独自のセキュリティ モデルを実装することをお勧めします。 ・仮想エンティティでは変更の追跡がサポートされておらず、データ エクスポート サービス などの Dynamics 365 機能を使用して同期することができません。 ※引用元:仮想エンティティを使用する際の考慮事項 https://docs.microsoft.com/ja-jp/dynamics365/customer-engagement/customize/create- edit-virtual-entities#considerations-when-you-use-virtual-entities
  9. See the World as a Database Dynamics 365 仮想エンティティ連係イメージ Azure

    Web Apps (IIS or Tomcat etc...) CData API Sever Azure SQL Database OData Dynamics 365 データベース を参照 Web API標準 プロトコルの ODataに変換 仮想エンティティ で読み取り
  10. See the World as a Database まとめ ・製品マスタなどの連係には嬉しいかもしれない ・ちょっとODataの要件が厳しいかも (GUID必須が結構ハードル高い)

    (Swaggerで連係できるようになれば嬉しいが、リクエストの多様性を考えるとOdata しか対応しなさそう) ・各々の連係メリット・デメリットを踏まえた上で、選択肢の一つとして是非 (ちなみにSalesforceでは以前から存在) ・日本リージョンで動かない?