Esempio di operazioni di base dell'API Web
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Il gruppo di esempi illustra come eseguire operazioni associative CRUD (Create, Retrieve, Update e Delete) di base dall'API Web di Microsoft Dynamics 365. Questo esempio è implementato come un progetto distinto per le lingue seguenti:
In questo argomento viene descritto un set comune di operazioni implementato da ogni esempio in questo gruppo. In questo argomento vengono descritte le richieste HTTP, le risposte e l'output di testo che ogni esempio di questo gruppo eseguirà senza dettagli specifici della lingua. Vedere le descrizioni specifiche per linguaggio e gli esempi individuali per informazioni su come queste operazioni vengono eseguite.
Dimostra
Questo esempio è suddiviso nelle sezioni seguenti, contenenti operazioni dell'API Web di Dynamics 365 che vengono descritte in maggiore dettaglio negli specifici argomenti concettuali associati.
Sezione codice |
Argomenti concettuali associati |
---|---|
Sezione 1: operazioni di creazione e aggiornamento di base |
Creazione di base |
Sezione 2: creare con associazione |
|
Sezione 3: Creare entità correlate (deep insert) |
|
Sezione 4: Associare e annullare l'associazione di entità esistenti |
|
Parte 5: eliminare entità (pulizia dell'esempio) |
Nota
Per brevità, le intestazioni HTTP meno pertinenti sono state omesse. Gli URL dei record varieranno con l'indirizzo base dell'organizzazione e l'ID del record assegnato dal server Dynamics 365.
Sezione 1: operazioni di creazione e aggiornamento di base
In questa sezione viene creato un singolo contatto che esegue una serie di aggiornamenti nell'istanza specifica. Si noti che l'intestazione di risposta OData-EntityId contiene l'URL di questo record appena creato (istanza di entità), che include parenteticamente l'ID univoco per il record.
Creare un nuovo contatto denominato Peter Cambel.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/contacts HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "firstname": "Peter", "lastname": "Cambel" }
Risposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)
Output della console
Contact 'Peter Cambel' created.
Le proprietà disponibili per ogni tipo sono definite nel documento dei metadati e sono inoltre documentate per ogni tipo nella sezione Web API EntityType Reference. Per altre informazioni generali, vedere Tipi e operazioni API Web.
Aggiornare il contatto con i valori per il reddito annuale ($80,000) e la posizione (Junior Developer).
Richiesta HTTP
PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "annualincome": 80000, "jobtitle": "Junior Developer" }
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Contact 'Peter Cambel' updated with job title and annual income.
Recuperare il contatto con il suo set di proprietà inizializzate esplicitamente.fullname è una proprietà di sola lettura che viene calcolata dalle proprietà firstname e lastname, che erano state inizializzate esplicitamente alla creazione dell'istanza. Invece, la proprietà description non è stata inizializzata esplicitamente, quindi mantiene il relativo valore predefinito, una stringa null.
Si noti che la risposta, oltre ai valori richiesti e le intestazioni tipiche, restituisce automaticamente anche i seguenti tipi di ulteriori informazioni:
L'ID primario per il tipo di entità corrente qui contactid.
Un valore ETag, denotato dalla chiave @odata.etag, che identifica la versione specifica della risorsa richiesta. Per ulteriori informazioni, vedere Eseguire operazioni condizionali tramite l'API Web.
Contesto dei metadati, denotato dalla chiave @odata.context offre un modo per confrontare i risultati della query per determinare se venissero dalla stessa query.
_transactioncurrencyid_value che indica la valuta locale della transazione monetaria.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,annualincome,jobtitle,description HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,annualincome,jobtitle,description)/$entity", "@odata.etag":"W/\"628883\"", "fullname":"Peter Cambel", "annualincome":80000.0000, "jobtitle":"Junior Developer", "description":null, "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03", "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03" }
Output della console
Contact 'Peter Cambel' retrieved: Income: 80000 Job title: Junior Developer Description: .
Importante
È consigliabile utilizzare sempre la selezione e il filtro nelle operazioni di recupero per ottimizzare le prestazioni. Per ulteriori informazioni, vedere Query di dati tramite l'API Web.
Aggiornare l'istanza dell'entità contatto fornendo nuovi valori alle stesse proprietà.
Richiesta HTTP
PATCH http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "jobtitle": "Senior Developer", "annualincome": 95000, "description": "Assignment to-be-determined" }
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Contact 'Peter Cambel' updated: Job title: Senior Developer Annual income: 95000 Description: Assignment to-be-determined
Importante
Inviare solo le proprietà modificate nelle richieste di aggiornamento. Per ulteriori informazioni, vedere Aggiornamento di base.
Impostare in modo esplicito una singola proprietà, il numero di telefono primario. Si tratta di una richiesta PUT e la chiave JSON denominata value viene utilizzata quando si eseguono operazioni sulle singole proprietà.
Richiesta HTTP
PUT http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "value": "555-0105" }
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Contact 'Peter Cambel' phone number updated.
Recuperare la stessa singola proprietà, il numero di telefono primario. Notare ancora l'utilizzo della chiave denominata value.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1 HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(60f77a42-5f0e-e611-80e0-00155da84c03)/telephone1", "value":"555-0105" }
Output della console
Contact's telephone# is: 555-0105.
Crea un contatto simile, ma restituisce anche le informazioni dell'istanza nella stessa operazione. Questa seconda funzionalità è abilitata dall'intestazione Prefer: return=representation. Questa funzionalità è stata introdotta con Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale) e richiede la versione 8.2 o le versioni successive.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1 OData-Version: 4.0 Content-Type: application/json; charset=utf-8 Prefer: return=representation { "firstname": "Peter_Alt", "lastname": "Cambel", "jobtitle": "Junior Developer", "annualincome": 80000, "telephone1": "555-0110" }
Risposta HTTP
HTTP/1.1 201 Created Content-Type: application/json; odata.metadata=minimal Preference-Applied: return=representation OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel" }
Output della console
Contact 'Peter_Alt Cambel' created: Annual income: 80000 Job title: Junior Developer Contact URI: http://cc_WebAPI_ServiceURI/contacts(199250b7-6cbe-e611-80f7-00155da84c08)
Aggiorna questo contatto simile e restituisce anche le informazioni dell'istanza nella stessa operazione. Anche in questo caso, questa seconda funzionalità è abilitata dall'intestazione Prefer: return=representation. Questa funzionalità è stata introdotta con Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale) e richiede la versione 8.2 o le versioni successive.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/contacts?$select=fullname,annualincome,jobtitle,contactid HTTP/1.1 OData-Version: 4.0 Content-Type: application/json; charset=utf-8 Prefer: return=representation { "firstname": "Peter_Alt", "lastname": "Cambel", "jobtitle": "Junior Developer", "annualincome": 80000, "telephone1": "555-0110" }
Risposta HTTP
HTTP/1.1 201 Created Content-Type: application/json; odata.metadata=minimal Preference-Applied: return=representation OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts/$entity","@odata.etag":"W/\"758870\"","_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03","annualincome":80000.0000,"contactid":"199250b7-6cbe-e611-80f7-00155da84c08","jobtitle":"Junior Developer","fullname":"Peter_Alt Cambel" }
Output della console
Contact 'Peter_Alt Cambel' updated: Annual income: 95000 Job title: Senior Developer
Sezione 2: creare con associazione
In questa sezione viene creata una nuova istanza account denominata Contoso, Ltd. e associata a un contatto esistente, Peter Cambel, creato in Sezione 1: operazioni di creazione e aggiornamento di base. Questa creazione e associazione avviene in un'unica operazione POST.
Creare l'account Contoso, Ltd. e impostarne l'attributo contatto primario sul contatto esistente Peter Cambel. L'annotazione @odata.bind indica che un'associazione viene creata, qui associando la proprietà di spostamento a valore singolo primarycontactid a un contatto esistente, Peter Cambel.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Contoso Inc", "telephone1": "555-5555", "primarycontactid@odata.bind": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)" }
Risposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)
Output della console
Account 'Contoso Inc' created.
Recuperare il contatto primario per l'account Contoso, Ltd., di nuovo usando, $expand con la proprietà di spostamento a valore singolo primarycontactid per accedere al record contact EntityType associato.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity", "@odata.etag":"W/\"628886\"", "name":"Contoso Inc", "accountid":"65f77a42-5f0e-e611-80e0-00155da84c03", "primarycontactid":{ "@odata.etag":"W/\"628885\"", "fullname":"Peter Cambel", "jobtitle":"Senior Developer", "annualincome":95000.0000, "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03", "contactid":"60f77a42-5f0e-e611-80e0-00155da84c03" } }
Output della console
Account 'Contoso Inc' has primary contact 'Peter Cambel': Job title: Senior Developer Income: 95000
Sezione 3: Creare entità correlate (deep insert)
In questa sezione viene illustrato come creare un'istanza di entità e istanze di entità correlate, in una singola richiesta POST. Utilizzando questo metodo, tutte le istanze sono appena create; non sono presenti istanze esistenti da associare. Questo approccio ha due vantaggi. È più efficiente, sostituendo più operazioni più semplici di creazione e associazione con un'unica operazione combinata. Inoltre, è atomico, dove o l'intera operazione riesce e tutti gli oggetti correlati vengono creati, o l'operazione non riesce e nessun oggetto viene creato.
In questa sezione viene creato un account, il contatto primario e un set di attività per il contatto in un'unica richiesta.
Creare un account Fourth Coffee e il contatto primario Susie Curtis e tre attività correlate in un'operazione. Notare l'utilizzo della proprietà di spostamento a valore singolo primarycontactid e la proprietà di spostamento con valori di raccolta Contact_Tasks per definire le relazioni, rispettivamente. Le proprietà di spostamento a valore singolo accettano un valore oggetto, mentre le proprietà di spostamento con valori di raccolta accettano un valore matrice.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/accounts HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Fourth Coffee", "primarycontactid": { "firstname": "Susie", "lastname": "Curtis", "jobtitle": "Coffee Master", "annualincome": 48000, "Contact_Tasks": [ { "subject": "Sign invoice", "description": "Invoice #12321", "scheduledend": "2016-04-19T00:00:00-07:00" }, { "subject": "Setup new display", "description": "Theme is - Spring is in the air", "scheduledstart": "2016-04-20T00:00:00-07:00" }, { "subject": "Conduct training", "description": "Train team on making our new blended coffee", "scheduledstart": "2016-06-01T00:00:00-07:00" } ] } }
Risposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)
Output della console
Account 'Fourth Coffee' created.
Recuperare in modo selettivo l'account Fourth Coffee appena creato e il contatto primario. Una espansione viene eseguita sulla proprietà di spostamento a valore singolo primarycontactid.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=primarycontactid($select=fullname,jobtitle,annualincome) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#accounts(name,primarycontactid,primarycontactid(fullname,jobtitle,annualincome))/$entity", "@odata.etag":"W/\"628902\"", "name":"Fourth Coffee", "accountid":"6af77a42-5f0e-e611-80e0-00155da84c03", "primarycontactid":{ "@odata.etag":"W/\"628892\"", "fullname":"Susie Curtis", "jobtitle":"Coffee Master", "annualincome":48000.0000, "_transactioncurrencyid_value":"0d4ed62e-95f7-e511-80d1-00155da84c03", "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03" } }
Output della console
Account 'Fourth Coffee' has primary contact 'Susie Curtis': Job title: Coffee Master Income: 48000
Recuperare in modo selettivo le attività associate al contatto primario recuperato nell'operazione precedente. Una espansione viene eseguita sulla proprietà di spostamento con valori di raccolta Contact_Tasks.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03)?$select=fullname,&$expand=Contact_Tasks($select=subject,description,scheduledstart,scheduledend) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,Contact_Tasks,Contact_Tasks(subject,description,scheduledstart,scheduledend))/$entity", "@odata.etag":"W/\"628892\"", "fullname":"Susie Curtis", "contactid":"6bf77a42-5f0e-e611-80e0-00155da84c03", "Contact_Tasks":[ { "@odata.etag":"W/\"628903\"", "subject":"Sign invoice", "description":"Invoice #12321", "scheduledstart":"2016-04-19T00:00:00Z", "scheduledend":"2016-04-19T00:00:00Z", "activityid":"6cf77a42-5f0e-e611-80e0-00155da84c03" }, { "@odata.etag":"W/\"628905\"", "subject":"Setup new display", "description":"Theme is - Spring is in the air", "scheduledstart":"2016-04-20T00:00:00Z", "scheduledend":"2016-04-20T00:00:00Z", "activityid":"6df77a42-5f0e-e611-80e0-00155da84c03" }, { "@odata.etag":"W/\"628907\"", "subject":"Conduct training", "description":"Train team on making our new blended coffee", "scheduledstart":"2016-06-01T00:00:00Z", "scheduledend":"2016-06-01T00:00:00Z", "activityid":"6ef77a42-5f0e-e611-80e0-00155da84c03" } ] }
Output della console
Contact 'Susie Curtis' has the following assigned tasks: Subject: Sign invoice, Description: Invoice #12321 Start: 4/19/2016 End: 4/19/2016 Subject: Setup new display, Description: Theme is - Spring is in the air Start: 4/20/2016 End: 4/20/2016 Subject: Conduct training Description: Train team on making our new blended coffee, Start: 6/1/2016 End: 6/1/2016
Sezione 4: Associare e annullare l'associazione di entità esistenti
In questa sezione viene illustrato come associare e annullare l'associazione di istanze di entità esistenti. La formazione di un'associazione richiede l'utilizzo di un URI di riferimento e un oggetto di relazione, che vengono quindi inviati in una richiesta POST. L'annullamento dell'associazione richiede l'invio della richiesta DELETE all'URI di riferimento per tale associazione. Innanzitutto viene formata un'associazione uno-a-molti tra un contatto e un account. Quindi viene formata un'associazione molti-a-molti tra un concorrente e una o più opportunità.
Aggiungere Peter Cambel come contatto all'account Fourth Coffee utilizzando la proprietà di spostamento con valori di raccolta contact_customer_accounts. Notare l'uso della chiave speciale @odata.id per specificare il record associato.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "@odata.id": "http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)" }
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Contact 'Peter Cambel' associated to account 'Fourth Coffee'.
Confermare l'operazione precedente recuperando la raccolta di contatti per l'account Fourth Coffee. La risposta contiene la matrice con un singolo elemento, il contatto recentemente assegnato Peter Cambel.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts?$select=fullname,jobtitle HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#contacts(fullname,jobtitle)","value":[ { "@odata.etag":"W/\"632481\"","fullname":"Peter Cambel","jobtitle":"Senior Developer","contactid":"00b6e0e2-b010-e611-80e1-00155da84c03" } ] }
Output della console
Contact list for account 'Fourth Coffee': Name: Peter Cambel, Job title: Senior Developer
Rimuovere l'associazione appena creata tra l'account Fourth Coffee e il contatto Peter Cambel.
Richiesta HTTP
DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)/contact_customer_accounts/$ref?$id=http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.
Creare o un concorrente denominato Adventure Works.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/competitors HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Adventure Works", "strengths": "Strong promoter of private tours for multi-day outdoor adventures" }
Risposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(77f77a42-5f0e-e611-80e0-00155da84c03)
Output della console
Competitor 'Adventure Works' created.
Creare un'opportunità denominata River rafting adventure.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/opportunities HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "River rafting adventure", "description": "Sales team on a river-rafting offsite and team building" }
Risposta HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)
Output della console
Opportunity 'River rafting adventure' created.
Associare la nuova opportunità al nuovo concorrente. Si noti che la stessa sintassi generale viene utilizzata in tale associazione molti-a-molti come è stata utilizzata nella precedente associazione uno-a-molti.
Richiesta HTTP
POST http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "@odata.id": "http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)" }
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.
Recuperare in modo selettivo tutte le opportunità associate al concorrente Adventure Works. Una matrice viene restituita contenente una singola opportunità.
Richiesta HTTP
GET http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03)?$select=name,&$expand=opportunitycompetitors_association($select=name,description) HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 200 OK { "@odata.context":"http://cc_WebAPI_ServiceURI/$metadata#competitors(name,opportunitycompetitors_association,opportunitycompetitors_association(name,description))/$entity", "@odata.etag":"W/\"628913\"", "name":"Adventure Works", "competitorid":"77f77a42-5f0e-e611-80e0-00155da84c03", "opportunitycompetitors_association":[ { "@odata.etag":"W/\"628917\"", "name":"River rafting adventure", "description":"Sales team on a river-rafting offsite and team building", "opportunityid":"7cf77a42-5f0e-e611-80e0-00155da84c03" } ] }
Output della console
Competitor 'Adventure Works' has the following opportunities: Name: River rafting adventure, Description: Sales team on a river-rafting offsite and team building
Annullare l'associazione tra l'opportunità e il concorrente, Notare di nuovo che questa è la stessa sintassi generale usata per rimuovere l'associazione uno-a-molti.
Richiesta HTTP
DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)/opportunitycompetitors_association/$ref?$id=http://[Token-CRM-Org-Name]/Contoso/api/data/v8.1/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 204 No Content
Output della console
Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.
Parte 5: eliminare entità (pulizia dell'esempio)
In questa sezione viene illustrato come eliminare istanze di entità. Il messaggio corrispondente è una semplice richiesta DELETE che utilizza l'URI dell'istanza di entità da eliminare. Se l'entità di destinazione ha una relazione padre-figlio con altre entità, eliminare il padre comporterà, per impostazione predefinita, l'eliminazione a catena automatica delle istanze figlio. Ad esempio, in questo esempio, le attività hanno il contatto come padre. Per ulteriori informazioni, vedere Comportamento della relazione di entità.
Ogni elemento della raccolta di URL delle entità viene eliminato. Il primo è un record di contatto per Peter Cambel.
Richiesta HTTP
DELETE http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Risposta HTTP
HTTP/1.1 204 No Content
Le iterazioni successive nella raccolta eliminano i record rimanenti.
Richiesta HTTP
DELETE http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 . . . DELETE http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 . . . DELETE http://cc_WebAPI_ServiceURI/contacts(6bf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 . . . DELETE http://cc_WebAPI_ServiceURI/competitors(77f77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 . . . DELETE http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03) HTTP/1.1 . . .
Vedere anche
Utilizzare l'API Web di Microsoft Dynamics 365
Creare un'entità utilizzando l'API Web
Recupera un'entità utilizzando l'API Web
Aggiorna ed elimina le entità con l'API Web
Associa e annulla associazione entità con l'API Web
Esempio di operazioni di base dell'API Web (C#)
Esempio di operazioni di base API Web (JavaScript lato client)
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright