Share via


ExecuteCrmOrganizationRequest メソッドでメッセージ (要求クラスと応答クラス) を使用する

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

IOrganizationServiceExecute メソッドのほかに、CrmServiceClient.ExecuteCrmOrganizationRequest メソッドを使用して xRM メッセージと Dynamics 365 メッセージを実行できるようになりました。Execute メソッドと同様に、ExecuteCrmOrganizationRequest メソッドは、メッセージ要求クラスをパラメーターとして取得し、メッセージ応答クラスを返します。CrmServiceClient.ExecuteCrmOrganizationRequest メソッドを使用して実行できるメッセージの一覧については、「組織サービスにおける xRM メッセージ」と「組織サービスにおける Dynamics 365 メッセージ」を参照してください。

次のコード サンプルは、ExecuteCrmOrganizationRequest メソッドを使用してメッセージを実行する方法を示しています。

例 1: CreateRequest メッセージ

次のコード サンプルは、CrmServiceClient.ExecuteCrmOrganizationRequest メソッドを使用して、CreateRequest メッセージを実行する方法を示しています。 この例では、取引先企業を作成してから、応答オブジェクトに ID を表示します。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", "<Domain>"),"<Server>", "<Port>", "<OrgName>");

// Verify that you are connected.
if (crmSvc != null && crmSvc.IsReady)
{
    //Display the CRM version number and org name that you are connected to.
    Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}", 
    crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);

    CreateRequest request = new CreateRequest();
    Entity newAccount = new Entity("account");
    newAccount.Attributes.Add("name", "Sample Test Account");
    request.Target = newAccount;
    CreateResponse response = (CreateResponse)crmSvc.ExecuteCrmOrganizationRequest(request);

    // Display the ID of the newly created account record.
    Console.WriteLine("Account record created with the following ID: {0}", response.id.ToString());
}
else
{
    // Display the last error.
    Console.WriteLine("An error occurred: {0}", crmSvc.LastCrmError);

    // Display the last exception message if any.
    Console.WriteLine(crmSvc.LastCrmException.Message);
    Console.WriteLine(crmSvc.LastCrmException.Source);
    Console.WriteLine(crmSvc.LastCrmException.StackTrace);

    return;
}

例 2: RetrieveMultipleRequest

次のコード サンプルは、CrmServiceClient.ExecuteCrmOrganizationRequest メソッドを使用して、RetrieveMultipleRequest メッセージを実行する方法を示しています。 この例では、複数取得の要求を実行し、システム内のすべての取引先担当者をフェッチし、それらの氏名を表示します。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", "<Domain>"),"<Server>", "<Port>", "<OrgName>");

// Verify that you are connected.
if (crmSvc != null && crmSvc.IsReady)
{
    //Display the CRM version number and org name that you are connected to.
    Console.WriteLine("Connected to CRM! (Version: {0}; Org: {1}", 
    crmSvc.ConnectedOrgVersion, crmSvc.ConnectedOrgUniqueName);

    QueryExpression userSettingsQuery = new QueryExpression("contact");
    userSettingsQuery.ColumnSet.AllColumns = true;
    var retrieveRequest = new RetrieveMultipleRequest()
    {
        Query = userSettingsQuery
    };
    EntityCollection EntCol = (crmSvc.ExecuteCrmOrganizationRequest(retrieveRequest) as RetrieveMultipleResponse).EntityCollection;
    foreach (var a in EntCol.Entities)
    {
        Console.WriteLine("Account name: {0} {1}", a.Attributes["firstname"], a.Attributes["lastname"]);
    }
}
else
{
    // Display the last error.
    Console.WriteLine("An error occurred: {0}", crmSvc.LastCrmError);

    // Display the last exception message if any.
    Console.WriteLine(crmSvc.LastCrmException.Message);
    Console.WriteLine(crmSvc.LastCrmException.Source);
    Console.WriteLine(crmSvc.LastCrmException.StackTrace);

    return;
}

関連項目

Execute メソッドでメッセージ (要求クラスおよび応答クラス) を使用する
CrmServiceClient コンストラクターを使用した Dynamics 365 への接続
XRM を使用して Dynamics 365 でアクションを実行

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権