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