Condividi tramite


Eseguire operazioni sui dati aggiuntive utilizzando l'endpoint OData

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Oltre alle operazioni sui dati di base, è possibile utilizzare l'endpoint REST per permettere a Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 di eseguire operazioni sui dati più specializzate.

In questo argomento

Impostazione dei tipi complessi su null

Utilizzo dell'inserimento deep

Aggiornamento delle singole proprietà

Associazione e annullamento dell'associazione di record

Impostazione dei tipi complessi su null

Per impostare Tipi complessi di Microsoft Dynamics CRM su null, è necessario definire esplicitamente ogni tipo primitivo contenuto su null.

Ad esempio, per impostare un tipo EntityReference su null, è necessario impostare le proprietà Id, LogicalName e Name su null. Lo stesso vale per OptionSetValue, Money e BooleanManagedProperty.

Utilizzo dell'inserimento deep

L'inserimento deep è una tecnica in cui è possibile creare più nuovi record correlati con la stessa operazione.

Il seguente esempio illustra il codice JavaScript che utilizza jQuery per definire un account e due attività correlate. Per ulteriori informazioni, vedere Utilizzare jQuery. Quando le attività vengono assegnate alla proprietà Account_Tasks per rappresentare attività correlate e vengono inviate tramite una richiesta POST all'URI /AccountSet, l'account e le due attività correlate vengono create in un'unica operazione:

var account = new Object();
account.Name = "Sample Account";

var task1 = new Object();
task1.Subject = "Sample Task 1";

var task2 = new Object();
task2.Subject = "Sample Task 2";

var tasks = new Array();
tasks.push(task1);
tasks.push(task2);

account.Account_Tasks = tasks;

var jsonAccount = window.JSON.stringify(account);

$.ajax({ type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: ODataPath + "/AccountSet",
    data: jsonAccount,
    beforeSend: function (XMLHttpRequest) {
        //Specifying this header ensures that the results will be returned as JSON.
        XMLHttpRequest.setRequestHeader("Accept", "application/json");
    },
    success: function (data, textStatus, XmlHttpRequest) {},
    error: function (XMLHttpRequest, textStatus, errorThrown) {}
});

L'inserimento deep funziona da entrambi i lati di una relazione di entità. Nell'esempio precedente sono state create nuove attività nel contesto di un nuovo record di account. È possibile invertire questa operazione per creare un nuovo record di account nel contesto della creazione di una nuova attività correlata inviando una richiesta POST all'URI /TaskSet.

Aggiornamento delle singole proprietà

È possibile aggiornare i singoli valori di attributo per un record tramite una richiesta HTTP PUT mediante un URI che indirizza un attributo specifico e passando il nuovo valore nel corpo della richiesta.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name

Tramite questo URI nella richiesta HTTP PUT con un nuovo nome per l'account nel corpo verrà aggiornato solo il valore della proprietà.

Associazione e annullamento dell'associazione di record

Vi sono due modi per associare o annullare l'associazione di record: tramite l'aggiornamento dei dati nelle proprietà di riferimento dell'entità come per qualsiasi altro tipo di proprietà o tramite l'URL della risorsa collegamento.

Quando si associa o si annulla l'associazione di record per il lato molti di una relazione di entità N:1, utilizzare l'URI $links. Per le relazioni di entità N:N e 1:N utilizzare l'URI senza $links.

Il seguente esempio illustra che l'URI restituirà un URI per tutti i record di opportunità associati al record di account specificato nell'URI:

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts

Se si desidera associare un record di opportunità con questo account, è necessario utilizzare l'URI in una richiesta HTTP POST che include l'URI per l'opportunità nel corpo.

Nota

Nell'associare un record per il lato molti di una relazione di entità N:1, qualsiasi valore esistente verrà sovrascritto quando il riferimento supporta solo un valore.

Analogamente, per annullare l'associazione di un'opportunità, è necessario specificare una richiesta HTTP DELETE che include un riferimento a una risorsa collegamento specifica. Il seguente esempio illustra che l'URI rappresenta un record di account specifico associato a un altro account tramite la proprietà di riferimento dell'entità ParentAccountId :

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')

Una richiesta HTTP DELETE per questo URI rimuove l'associazione.

Nota

Alcune relazioni di entità sono necessarie. Verrà visualizzato un errore se si tenta di eliminare i dati di una relazione obbligatoria.

Vedere anche

Eseguire operazioni sui dati di base utilizzando l'endpoint OData
Utilizzare l'endpoint OData con risorse Web
Utilizzare l'endpoint OData con risorse Web Ajax e JScript
Esempio: associare e annullare l'associazione dei record utilizzando l'endpoint OData con JavaScript

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright