Exemple d'opérations de base de l'API Web
Date de publication : janvier 2017
S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Ce groupe des exemples montre comment exécuter des opérations de création, d'extraction, de mise à jour et de suppression et des opérations associatives de base à l'aide de l'API Web Microsoft Dynamics 365. Cet exemple est mis en œuvre comme un projet distinct pour les langues suivantes :
Cette rubrique décrit un ensemble commun d'opérations mises en œuvre par chaque exemple de ce groupe. Cette rubrique décrit les demandes et les réponses HTTP et la sortie texte que chaque exemple de ce groupe effectuera sans détails spécifiques à la langue. Affichez les descriptions spécifiques à la langue et les exemples individuels pour plus d'informations sur la façon dont ces opérations sont effectuées.
Montre ce qui suit
Cet exemple est composé des principales sections suivantes, qui contiennent les opérations de données de requête de l'API Web Dynamics 365 qui sont décrites plus en détail dans les rubriques conceptuelles associées spécifiées.
Section Code |
Rubriques conceptuelles associées |
---|---|
Section 1 : Opérations de création et de mise à jour de base |
Création de base |
Section 2 : Créer avec association |
|
Section 3 : Créer des entités associées (insertion profonde) |
|
Section 4 : Associer et dissocier des entités existantes |
|
Section 5 : Supprimer des entités (exemple de nettoyage) |
Notes
Par souci de concision, des en-têtes HTTP moins pertinents ont été omis. Les URL des enregistrements peuvent varier de l'adresse de base de l'organisation et de l'ID d'enregistrement attribué par votre serveur Dynamics 365.
Section 1 : Opérations de création et de mise à jour de base
Cette section crée un contact unique puis effectue une série de mises à jour sur cette instance. Notez que l'en-tête de réponse OData-EntityId contient l'URL de cet enregistrement créé récemment (instance d'entité), qui comprend entre parenthèses l'ID unique de cet enregistrement.
Créez un contact, appelé Peter Cambel.
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/contacts(60f77a42-5f0e-e611-80e0-00155da84c03)
Sortie de la console
Contact 'Peter Cambel' created.
Les propriétés disponibles pour chaque type sont définies dans le document des métadonnées et sont également documentées pour chaque type dans la section Web API EntityType Reference. Pour plus d’informations générales, voir Types d'API Web et opérations.
Mettez le contact à jour avec les valeurs de chiffre d'affaires annuel ($80,000) et la fonction (Junior Developer).
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Contact 'Peter Cambel' updated with job title and annual income.
Récupérez le contact avec son ensemble de propriétés explicitement initialisées. Le fullname est une propriété en lecture seule qui est calculée avec les propriétés firstname et lastname, qui ont été explicitement initialisées lorsque l'instance a été créée. En revanche, la propriété description n'a pas été explicitement lancée, elle conserve sa valeur par défaut, une chaîne null.
Notez que la réponse, en plus des valeurs demandées et des en-têtes courants, renvoie également automatiquement les types suivants d'informations supplémentaires :
ID principal pour le type d'entité actuel, ici contactid.
Une valeur de l'ETAG, dénotée par la clé de @odata.etag, qui identifie la version spécifique de la ressource demandée. Pour plus d'informations, voir Effectuer les opérations conditionnelles à l'aide de l'API Web.
Le contexte des métadonnées, dénoté par la clé @odata.context, permet de comparer les résultats des requêtes afin de déterminer s'ils provenaient de la même requête.
_transactioncurrencyid_value qui indique la devise locale de la transaction monétaire.
Demande 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
Réponse 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" }
Sortie de la console
Contact 'Peter Cambel' retrieved: Income: 80000 Job title: Junior Developer Description: .
Important
Vous devez toujours utiliser la sélection et le filtrage dans les opérations de récupération pour optimiser les performances. Pour plus d'informations, voir Interroger les données à l'aide de l'API Web.
Mettez à jour l'instance de l'entité Contact en fournissant de nouvelles valeurs à ces mêmes propriétés.
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Contact 'Peter Cambel' updated: Job title: Senior Developer Annual income: 95000 Description: Assignment to-be-determined
Important
Envoyez uniquement les propriétés modifiées dans les demandes de mise à jour. Pour plus d'informations, voir Mise à jour de base.
Définissez explicitement une propriété unique, le numéro de téléphone principal. Notez qu'il s'agit d'une demande PUT et que la clé JSON appelée value est utilisée lors de l'exécution d'opérations sur différentes propriétés.
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Contact 'Peter Cambel' phone number updated.
Récupérez la même propriété unique, le numéro de téléphone principal. Notez de nouveau l'utilisation d'une clé nommée value.
Demande 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
Réponse 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" }
Sortie de la console
Contact's telephone# is: 555-0105.
Créez un contact similaire mais retournez également les informations sur l'instance dans la même opération. Cette dernière fonctionnalité est activée par l'en-tête Prefer: return=representation. Cette fonctionnalité a été introduite avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local) et requiert la version 8.2 ou plus.
Demande 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" }
Réponse 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" }
Sortie de la 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)
Mettez à jour ce contact similaire et retournez également les informations sur l'instance dans la même opération. Ici aussi, cette fonctionnalité est activée par l'en-tête Prefer: return=representation. Cette fonctionnalité a été introduite avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local) et requiert la version 8.2 ou plus.
Demande 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" }
Réponse 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" }
Sortie de la console
Contact 'Peter_Alt Cambel' updated: Annual income: 95000 Job title: Senior Developer
Section 2 : Créer avec association
Cette section crée une nouvelle instance de compte nommée Contoso, Ltd. et l'associe à un contact existant, Peter Cambel, qui a été créé dans Section 1 : Opérations de création et de mise à jour de base. Cette création et cette association sont effectuées en une seule opération POST.
Créez le compte Contoso, Ltd. et définissez son attribut de contact principal sur le contact existant Peter Cambel. L'annotation @odata.bind indique qu'une association est créée, associant ici la propriété de navigation à valeur unique primarycontactid à un contact existant, Peter Cambel.
Demande 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)" }
Réponse HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(65f77a42-5f0e-e611-80e0-00155da84c03)
Sortie de la console
Account 'Contoso Inc' created.
Récupérez le contact principal du compte Contoso, Ltd., de nouveau à l'aide de $expand avec la propriété de navigation à valeur unique primarycontactid pour accéder à l'enregistrement contact EntityType associé.
Demande 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
Réponse 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" } }
Sortie de la console
Account 'Contoso Inc' has primary contact 'Peter Cambel': Job title: Senior Developer Income: 95000
Section 3 : Créer des entités associées (insertion profonde)
Cette section montre comment créer une instance d'entité et des instances d'entité associées, une demande POST unique. Avec cette méthode, toutes les instances sont créées ; il n'y a aucune instance existante à associer. Cette approche a deux avantages. Elle est plus efficace, en remplaçant plusieurs opérations de création et d'association plus simples par une opération combinée. En outre, elle est atomique, car soit l'opération entière aboutit et tous les objets associés sont créés, soit l'opération échoue et aucun n'est créé.
Cette section crée un compte, son contact principal, et un ensemble de tâches pour ce contact en une requête.
Créez le compte Fourth Coffee et son contact principal Susie Curtis et ses trois tâches associées en une opération. Notez l'utilisation de la propriété à valeur unique primarycontactid et la propriété de navigation à valeur de collection Contact_Tasks pour définir cette relation, respectivement. Les propriétés de navigation à valeur unique prennent la valeur d'un objet, alors que les propriétés de navigation à valeur de collection prennent la valeur d'un tableau.
Demande 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" } ] } }
Réponse HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(6af77a42-5f0e-e611-80e0-00155da84c03)
Sortie de la console
Account 'Fourth Coffee' created.
Récupérez de manière sélective le compte nouvellement créé Fourth Coffee et son contact principal. Une extension est exécutée sur la propriété de navigation à valeur unique primarycontactid.
Demande 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
Réponse 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" } }
Sortie de la console
Account 'Fourth Coffee' has primary contact 'Susie Curtis': Job title: Coffee Master Income: 48000
Extrayez de manière sélective les tâches associées au contact principal récupéré dans l'opération précédente. Une extension est exécutée sur la propriété de navigation à valeur de collection Contact_Tasks.
Demande 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
Réponse 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" } ] }
Sortie de la 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
Section 4 : Associer et dissocier des entités existantes
Cette section vous montre comment associer ou dissocier des instances d'entité existantes. Former une association nécessite l'utilisation d'une URI de référence et d'un objet de relation, qui sont ensuite envoyés dans une demande POST. Dissocier nécessite d'envoyer une demande DELETE à l'URI de référence pour cette association. Une association un-à-plusieurs est d'abord formée entre un contact et un compte. Puis une association plusieurs à plusieurs est formée entre un concurrent et une ou plusieurs opportunités.
Ajoutez Peter Cambel en tant que contact du compte Fourth Coffee à l'aide de la propriété de navigation à valeur de collection contact_customer_accounts. Notez l'utilisation d'une clé spéciale @odata.id pour spécifier l'enregistrement associé.
Demande 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)" }
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Contact 'Peter Cambel' associated to account 'Fourth Coffee'.
Confirmez l'opération précédente en récupérant la collection de contacts pour le compte Fourth Coffee. La réponse contient le tableau avec un élément unique, le contact récemment affecté Peter Cambel.
Demande 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
Réponse 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" } ] }
Sortie de la console
Contact list for account 'Fourth Coffee': Name: Peter Cambel, Job title: Senior Developer
Supprimez l'association qui vient d'être créée entre le compte Fourth Coffee et le contact Peter Cambel.
Demande 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
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Contact 'Peter Cambel' dissociated from account 'Fourth Coffee'.
Créez un concurrent appelé Adventure Works.
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/accounts(77f77a42-5f0e-e611-80e0-00155da84c03)
Sortie de la console
Competitor 'Adventure Works' created.
Créez une opportunité appelée River rafting adventure.
Demande 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" }
Réponse HTTP
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: http://cc_WebAPI_ServiceURI/opportunities(7cf77a42-5f0e-e611-80e0-00155da84c03)
Sortie de la console
Opportunity 'River rafting adventure' created.
Associez cette nouvelle opportunité à ce nouveau concurrent. Notez que la syntaxe générale utilisée dans cette association plusieurs à plusieurs est la même que celle qui a été utilisée dans l'association un-à-plusieurs précédente.
Demande 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)" }
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Opportunity 'River rafting adventure' associated with competitor 'Adventure Works'.
Extrayez sélectivement toutes les opportunités associées au concurrent Adventure Works. Un tableau est renvoyé contenant une seule opportunité.
Demande 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
Réponse 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" } ] }
Sortie de la console
Competitor 'Adventure Works' has the following opportunities: Name: River rafting adventure, Description: Sales team on a river-rafting offsite and team building
Dissociez l'opportunité du concurrent. Notez à nouveau, qu'il s'agit de la même syntaxe générale que pour supprimer une association un-à-plusieurs.
Demande 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
Réponse HTTP
HTTP/1.1 204 No Content
Sortie de la console
Opportunity 'River rafting adventure' disassociated from competitor 'Adventure Works'.
Section 5 : Supprimer des entités (exemple de nettoyage)
Cette section vous montre comment supprimer des instances d'entité. Le message correspondant est une application DELETE simple qui utilise l'URI de l'instance d'entité à supprimer. Si l'entité cible a une relation parent-enfant avec d'autres entités, alors la suppression du parent, par défaut, provoquera automatiquement la suppression en cascade des instances enfants. Par exemple, dans cet exemple, les tâches ont le contact comme parent. Pour plus d'informations, voir Comportement des relations d’entité.
Chaque élément de la collection d'URL d'entités est supprimé. Le premier est un enregistrement de contact pour Peter Cambel.
Demande 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
Réponse HTTP
HTTP/1.1 204 No Content
Les itérations suivantes dans la collection suppriment les enregistrements restants.
Demande 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 . . .
Voir aussi
Utilisez l'API Web Microsoft Dynamics 365
Créer une entité à l'aide de l'API Web
Récupérer une entité à l'aide de l'API Web
Mettre à jour et supprimer des entités à l'aide de l'API Web
Associer et dissocier les entités à l'aide de l'API Web
Exemple d'opérations de base de l'API Web (C#)
Exemple d'opérations de base de l'API Web (Javascript côté client)
Microsoft Dynamics 365
© 2017 Microsoft. Tous droits réservés. Copyright