Utilizzare i messaggi (classi di richiesta e di risposta) con il metodo ExecuteCrmOrganizationRequest

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Oltre all'utilizzo del metodo IOrganizationService.Execute, è ora possibile utilizzare il metodo CrmServiceClient.ExecuteCrmOrganizationRequest per eseguire i messaggi xRM e Dynamics 365. Analogamente al metodo Execute, il metodo ExecuteCrmOrganizationRequest accetta una classe di richiesta di messaggio come parametro e restituisce una classe di risposta di messaggio. Per un elenco dei messaggi che è possibile utilizzare con il metodo CrmServiceClient.ExecuteCrmOrganizationRequest, vedere Messaggi xRM nel servizio dell'organizzazione e Messaggi Dynamics 365 nel servizio dell'organizzazione.

Negli esempi di codice riportati di seguito viene illustrato come eseguire i messaggi utilizzando il metodo ExecuteCrmOrganizationRequest.

Esempio 1: messaggio CreateRequest

Nell'esempio di codice riportato di seguito viene illustrato come eseguire il messaggio CreateRequest utilizzando il metodo CrmServiceClient.ExecuteCrmOrganizationRequest. In questo esempio, si crea un account e successivamente si visualizza l'ID dell'oggetto risposta.

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;
}

Esempio 2: RetrieveMultipleRequest

Nell'esempio di codice riportato di seguito viene illustrato come eseguire il messaggio RetrieveMultipleRequest utilizzando il metodo CrmServiceClient.ExecuteCrmOrganizationRequest. In questo esempio, si esegue una richiesta di recupero multipla per recuperare tutti i contatti nel sistema e visualizzarne i nomi completi.

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;
}

Vedere anche

Utilizzare i messaggi (classi di richiesta e di risposta) con il metodo Execute
Usare i costruttori di CrmServiceClient per connettere a Dynamics 365
Utilizzare strumenti XRM per eseguire azioni in Dynamics 365

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright