チュートリアル: Developer Extensions を使用して Microsoft Dynamics CRM 2015 に接続された Web アプリケーションの構築

 

公開日: 2016年11月

対象: Dynamics CRM 2015

このチュートリアルでは、Microsoft Dynamics CRM 2015 に接続し、基本的な取引先担当者作成トランザクションを実行する単純な Web アプリケーションの作成方法を説明します。

このチュートリアルで生成されるコード例は、Sdk\Walkthroughs\Portal\WebAppWalkthrough フォルダーにあります。

このトピックの内容

事前バインド型の生成

Visual Studio での Web アプリケーション プロジェクトの設定

Web ページの作成 - 取引先担当者グリッド 1

別の Web ページの作成 - 取引先担当者グリッド 2

WCF データ サービスの作成

Web ページの作成 - 取引先担当者フォーム 1

別の Web ページの作成 - 取引先担当者グリッド 3

事前バインド型の生成

  1. CrmSvcUtil.exe ツールを実行して、Microsoft.Xrm.Client.CodeGeneration 拡張機能を使用して、エンティティ クラスとサービス コンテキストを生成します。Microsoft Dynamics 365 のインスタンスを参照する "Xrm.cs" というファイルを作成するコマンド例を次に示します。 このコマンドの実行時に、Microsoft.Xrm.Client.CodeGeneration.dll ファイルは、CrmSvcUtil.exe ファイルと同じディレクトリ、またはシステムのグローバル アセンブリ キャッシュにある必要があります。 次に示す最初のコマンドは設置型組織用であり、2 番目のコマンドは CRM Online 組織用です。 いずれのコマンドも、改行なしで 1 つのコマンド ラインとして実行する必要があります。

        CrmSvcUtil.exe 
        /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" 
        /out:Xrm\Xrm.cs 
        /url:http://Crm/Contoso/XRMServices/2011/Organization.svc 
        /domain:CONTOSO 
        /username:administrator 
        /password:pass@word1 
        /namespace:Xrm 
        /serviceContextName:XrmServiceContext
    
        CrmSvcUtil.exe
        /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"
        /out:Xrm.cs /url:https://<mydomain>.api.crm.dynamics.com/XRMServices/2011/Organization.svc
        /username:<myusername>@<mydomain>.onmicrosoft.com /password:<mypassword> /namespace:Xrm /serviceContextName:XrmServiceContext
    

    ヒント

    CrmSvcUtil ツールは、SDK ダウンロードの Bin フォルダーから使用するか、または Microsoft.CrmSdk.CoreToolsNuGet パッケージをインストールすることによって使用できます。

Visual Studio での Web アプリケーション プロジェクトの設定

  1. Microsoft Visual Studio で新しい ASP.NET Web アプリケーションを作成します。 このサンプルでは "WebAppWalkthrough" をプロジェクト名として使用します。

    Visual Studio での Web アプリケーションの作成

  2. SDK\bin フォルダーから次の参照を追加します。 この手順と次の手順は、Microsoft.CrmSdk.ExtensionsNuGet パッケージをインストールすることによってスキップできます。

    • AntiXSSLibrary.dll

    • Microsoft.Crm.Sdk.Proxy.dll

    • Microsoft.Xrm.Client.dll

    • Microsoft.Xrm.Portal.dll

    • Microsoft.Xrm.Portal.Files.dll

    • Microsoft.Xrm.Sdk.dll

  3. .NET からの次の参照を追加します。

    • System.IdentityModel.dll

    • Microsoft.Data.Entity.dll

    • System.Data.Services.dll

    • System.Data.Services.Client.dll

    • System.Runtime.Caching.dll

    • System.Runtime.Serialization.dll

  4. Visual Studio でプロジェクトを右クリックし、[追加] をクリックして、[既存の項目] をクリックします。

  5. 事前バインド型の生成時に作成した "xrm.cs" ファイルを選択します。

  6. web.config ファイルを編集して <microsoft.xrm.client> セクションを登録します。 次に示すように、構成の configSections ノードにセクションを追加する必要があります。

    <configuration>
      <configSections>
        <section name="microsoft.xrm.client"
          type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
    
  7. 特定の接続文字列とコンテキストで web.config ファイルを編集します。 接続文字列の名前を "Xrm" に設定します。<microsoft.xrm.client> セクションで、"Xrm" という名前のコンテキストを追加し、種類を Web アプリケーション プロジェクトの設定時に手順 1. で指定した名前空間とサービス コンテキスト名に設定します。 次の例では、これは Xrm.XrmServiceContext であり、種類のアセンブリ部分は Web アプリケーションの名前 "WebAppWalkthrough" です。

    <connectionStrings>
      <add name="Xrm" connectionString="Server=http://crm/contoso; Domain=CONTOSO; Username=Administrator; Password=pass@word1" />
    </connectionStrings>
    <microsoft.xrm.client>
      <contexts>
        <add name="Xrm" type="Xrm.XrmServiceContext, WebAppWalkthrough" />
      </contexts>
    </microsoft.xrm.client>
    
  8. web.config ファイルの <controls> セクションに次のコードを追加して、Microsoft.Xrm.Portal コントロールをこの Web アプリケーションに登録します。

    <system.web>
      <pages>
        <controls>
          <add tagPrefix="crm" namespace="Microsoft.Xrm.Portal.Web.UI.WebControls" assembly="Microsoft.Xrm.Portal" />
    

Web ページの作成 - 取引先担当者グリッド 1

Dynamics 365 システムのすべての取引先担当者を ASP.NET データ グリッドに表示する基本的な Web ページを作成します。

  1. プロジェクトを右クリックし、"WebForm_LinqDataSource.aspx" という新しい Web フォームを追加します。

  2. 新しい aspx ページに次のコードを追加します。

    <!--This example lists all contacts from the Microsoft Dynamics CRM system. -->
    <asp:LinqDataSource ID="Contacts" ContextTypeName="Xrm.XrmServiceContext" TableName="ContactSet" runat="server" />
    <asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="First Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("firstname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Last Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("lastname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City">
                <ItemTemplate>
                    <asp:Label Text='<%#Eval("address1_city") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    
  3. プロジェクトをビルドします。

  4. aspx ページを右クリックし、[ブラウザーで表示] を選択します。 結果は次のように表示されます。

    ブラウザーで表示

別の Web ページの作成 - 取引先担当者グリッド 2

Dynamics 365 ビュー定義に基づいて Dynamics 365 システムの取引先担当者を ASP.NET データ グリッドに表示する Web ページを作成します。

  1. プロジェクトを右クリックし、"WebForm_SavedQueryDataSource.aspx" という新しい Web フォームを追加します。

  2. 新しい aspx ページに次のコードを追加します。

    <crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" />
    <asp:GridView DataSourceID="ActiveContacts" runat="server" />
    
  3. プロジェクトをビルドします。

  4. aspx ページを右クリックし、[ブラウザーで表示] を選択します。 このページでは、ビュー定義 "Active Contacts" を使用してレコードを返し、ASP.NET GridView コントロールにビューの属性を表示します。 結果は次のように表示されます。

    ブラウザーで表示

WCF データ サービスの作成

Microsoft Dynamics 365 の WCF データ サービスを作成します。

  1. プロジェクトを右クリックし、"CrmData.svc" という新しい WCF データ サービスを追加します。

    データ サービスの作成

  2. チュートリアルの最初で作成した XrmServiceContext にある WCF データ サービスをポイントする必要があります。 次のように、CrmData.svc.cs ファイルを編集します。

    namespace WebAppWalkthrough
    {
        public class CrmData : DataService<Xrm.XrmServiceContext>
        {
            // This method is called only once to initialize service-wide policies.
            public static void InitializeService(DataServiceConfiguration config)
            {
                config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
                config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
                config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
            }
        }
    }
    

Web ページの作成 - 取引先担当者フォーム 1

Microsoft Dynamics 365 ビュー定義に基づいて取引先担当者データ入力フォームを表示する Web ページを作成します。

  1. Dynamics 365 で、[設定][カスタマイズ][システムのカスタマイズ] の順に移動します。 "Create Contact Webform" という contact エンティティの新しいビューを作成します。

    Web ページの作成

  2. 生成したフォームにフィールドとして表示する列をビューに追加します。

  3. [保存と公開] をクリックします。

  4. Microsoft Visual Studio で Web プロジェクトを右クリックし、"WebForm_FromSavedQuery.aspx" という新しい Web フォームを追加します。

  5. 新しい aspx ページに次のコードを追加します。

    <asp:ScriptManager runat="server" />
    <crm:CrmDataSource ID="Contacts" runat="server" />
    <crm:CrmEntityFormView DataSourceID="Contacts" EntityName="contact" SavedQueryName="Create Contact Web Form" runat="server" />
    
  6. プロジェクトをビルドします。

  7. aspx ページを右クリックし、[ブラウザーで表示] をクリックします。 結果は次のように表示されます。

    ブラウザーで表示

別の Web ページの作成 - 取引先担当者グリッド 3

分離コードを使用して Microsoft Dynamics 365 データ ソースを ASP.NET GridView コントロールに接続する Web ページを作成します。

  1. プロジェクトを右クリックし、"WebForm_CodeBehindDataSource.aspx" という新しい Web ページを追加します。

  2. 新しい aspx ページに次のコードを追加します。

    <asp:GridView ID="ContactsGridView" AutoGenerateColumns="false" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="First Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("firstname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Last Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("lastname") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("address1_city") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    
  3. 分離コード ファイル WebForm_CodeBehind.aspx.cs を次のように編集します。

    using System;
    using System.Linq;
    using Xrm;
    
    namespace WebAppWalkthrough
    {
        public partial class WebForm_CodeBehind : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                var xrm = new XrmServiceContext("Xrm");
    
                //Use all contacts where the email address ends in @example.com.
                var exampleContacts = xrm.ContactSet
                    .Where(c => c.EMailAddress1.EndsWith("@example.com"));
    
                ContactsGrid_CodeBehind.DataSource = exampleContacts;
                ContactsGrid_CodeBehind.DataBind();
            }
        }
    }
    
  4. プロジェクトをビルドします。

  5. aspx ページを右クリックし、[ブラウザーで表示] をクリックします。 結果は次のように表示されます。

    ブラウザーで表示

関連項目

Microsoft Dynamics CRM 2015 用ポータル開発者ガイド
Dynamics CRM 2015 のポータルのチュートリアル

© 2017 Microsoft. All rights reserved. 著作権