Dynamics CRM(365) Online – Excel 連携アプリ(技術解説)

概要

Excel (Office Add-ins) を使用して、Microsoft Dynamics CRM Onlineにアクセスするアプリケーションを作成しました。

Excelを使用して、Dynamics CRMのデータに入力及び、出力ができます。

※このアプリは、初期設定で、Dynamics CRMの「Entity, View, Record, Field」 と Excel 「Cell」の組み合わせを定義します。

 

今回は、複数の技術使用していります。少し難しいので、簡単に解説します。

機能紹介ページ  – Dynamics CRM Excel 連携アプリ

システム概念図

Office Add-ins Dynamics CRM(365)

システム配置 – 概要

 

crm-officeaddins0100

詳細 – 使用しているリソースおよび技術

  1. Microsoft Dynamics CRM(365) Online
    D
    ynamics CRM Online は今後は、SOAPではなく、REST APIが主な開発手法になっていくようです。
    このアプリもREST APIを使用しました。
    REST APIに関数に関して以下のブログが参考になります。

    1. Japan Dynamics CRM Team Blog – SDK
    2. Morning Girl
  2. Azure App Service – Web
    C
    #を使用して、Web SiteをAzureに配置しています。
    crm-officeaddins0130

  3. Azure Active Directory – Application
    Web アプリケーションを作成したあとに、AzureAD と Dynamics CRM Onlineへのアクセスを設定します。
    「Acess CRM Online as organization users」を選びます。
    crm-officeaddins0110
    「Access the directory as the signed-in user」を選びます。
    crm-officeaddins0120
  4. Office Add-ins
    マニフェストファイルに以下をいれないとAzure AD にログイン時にExcelからログイン画面が、ポップアップしてきますので、注意して下さい。

    <AppDomains>
    <AppDomain>https://login.windows.net</AppDomain>
    <AppDomain>https://login.microsoftonline.com</AppDomain>
    </AppDomains>

    crm-officeaddins0140
    Officeアドインの詳しい解説は以下がわかりやすいです。

    1. 初心者備忘録 – Office アドイン
  5. Visual Studio 2015
    C#とJavaScriptを使用しています。統合デバックでOffice Add-ins(オフィスアドイン)のデバックもできます。 crm-officeaddins0150

 

 

Retrieve Entity (Entities) :エンティティ一覧の取得

概要

Dynamics CRM でEntity一覧の取得方法 (RESTfull API)

Entityからデータを取得する場合にCollection Nameが必要になりますのでそれの取得方法と

日本語名称等が必要な場合の取得方法について説明します。

ワンポイント

Dynamics CRMはSQLのテーブルのことをEntityと呼びます。

また、各Entityは Collection Nameにてデータを取得します。

実装

※ex20160320.crm7.dynamics.comは、自分のDynamics CRM URLに入れ替えてください。

  1. 単純に一覧取得
    1. https://ex20160320.crm7.dynamics.com/api/data/v8.0
    2. DynamicsCRMEntity010
  2. 全データ詳細を取得
    1. https://ex20160320.crm7.dynamics.com/api/data/v8.0/EntityDefinitions
    2. DynamicsCRMEntity020
  3. データが多いので項目を選択する。(Entity 名称, EntityCollectionName)
    1. https://ex20160320.crm7.dynamics.com/api/data/v8.0/EntityDefinitions?$select=DisplayCollectionName,LogicalCollectionName
    2. DynamicsCRMEntity030
  4. 更にEntity名で絞込
    1. https://ex20160320.crm7.dynamics.com/api/data/v8.0/EntityDefinitions?$filter=LogicalName eq ‘account’&$select=DisplayCollectionName,LogicalCollectionName
    2. ※シングルクォートがCopy&Pastすると全角になるので注意してください。
    3. DynamicsCRMEntity040

参考:

Dynamics CRM 2016 SDK 新機能: メタデータ Web API その 1: エンティティ

【Dynamics CRM】【Web API】LogicalCollectionNameの取得