Mettre à jour et supprimer des entités à l'aide de l'API Web
Date de publication : janvier 2017
S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Les opérations pour modifier les données sont une partie fondamentale de l'API Web. En plus d'une mise à jour et d'une suppression simples, vous pouvez exécuter des opérations sur les attributs uniques et composer des requêtes upsert qui mettront à jour ou insèreront une entité selon qu'elle existe ou non.
Notes
Les métadonnées qui définissent les entités sont mises à jour de manière différente.Pour plus d'informations :Créer et mettre à jour les définitions d'entité à l’aide de l'API Web
Contenu de la rubrique
Mise à jour de base
Mettre à jour une entité avec les données retournées
Mettre à jour une valeur de propriété unique
Supprimer une valeur de propriété unique
Utilisation de Upsert avec une entité
Suppression de base
Mise à jour de base
Les opérations de mise à jour utilisent le verbe HTTP PATCH. Passez un objet JSON contenant les propriétés à mettre à jour à l'URI qui représente l'entité. Une réponse avec un statut de 204 est renvoyée si la mise à jour est réussie.
Cet exemple met à jour un enregistrement de compte existant avec la valeur accountid de 00000000-0000-0000-0000-000000000001.
Important
En mettant une entité à jour, ajoutez uniquement les propriétés que vous modifiez dans le corps de requête. En mettant simplement à jour les propriétés d'une entité que vous avez précédemment récupérée, et en incluant JSON dans votre requête, chaque propriété est mise à jour même si la valeur est identique. Les propriétés peuvent sembler avoir été mises à jour dans les données d'audit alors qu'elles n'ont pas changé.
Demande
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 { "name": "Updated Sample Account ", "creditonhold": true, "address1_latitude": 47.639583, "description": "This is the updated description of the sample account", "revenue": 6000000, "accountcategorycode": 2 }
Réponse
HTTP/1.1 204 No Content OData-Version: 4.0
Notes
Voir Associer des entités lors de la mise à jour pour des informations sur l'association d'entités lors de la mise à jour.
Mettre à jour une entité avec les données retournées
Notes
Cette fonctionnalité a été ajoutée avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local).
Pour extraire des données d'une entité que vous mettez à jour, vous pouvez composer votre demande PATCH de manière à ce que les données de l'enregistrement créé soient retournées avec le statut 200 (OK). Pour obtenir ce résultat, vous devez utiliser la préférence return=representation dans les en-têtes de demande.
Pour contrôler les propriétés retournées, ajoutez l'option de requête $select à l'URL de l'ensemble d'entités. L'option de requête $expand est ignorée si elle est utilisée.
Cet exemple met à jour une entité Compte et retourne les données demandées dans la réponse.
Requête
PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1 OData-MaxVersion: 4.0 OData-Version: 4.0 Accept: application/json Content-Type: application/json; charset=utf-8 Prefer: return=representation {"name":"Updated Sample Account"}
Réponse
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal Preference-Applied: return=representation OData-Version: 4.0 { "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts/$entity", "@odata.etag": "W/\"536537\"", "accountid": "00000000-0000-0000-0000-000000000001", "accountcategorycode": 1, "description": "This is the description of the sample account", "address1_latitude": 47.63958, "creditonhold": false, "name": "Updated Sample Account", "createdon": "2016-09-28T23:14:00Z", "revenue": 5000000.0000, "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6" }
Mettre à jour une valeur de propriété unique
Lorsque vous souhaitez mettre à jour une seule valeur de propriété unique, utilisez une requête PUT avec le nom de propriété ajouté à l'Uri de l'entité.
L'exemple suivant met à jour la propriété name d'une entité de compte existante avec la valeur accountid de 00000000-0000-0000-0000-000000000001.
Demande
PUT cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0 {"value": "Updated Sample Account Name"}
Réponse
HTTP/1.1 204 No Content OData-Version: 4.0
Supprimer une valeur de propriété unique
Pour supprimer la valeur d'une propriété unique, utilisez une requête DELETE avec le nom de propriété ajouté à l'Uri de l'entité.
L'exemple suivant supprime la valeur de la propriété description d'une entité de compte existante avec la valeur accountid de 00000000-0000-0000-0000-000000000001.
Demande
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Réponse
HTTP/1.1 204 No Content OData-Version: 4.0
Notes
Cela ne peut pas être utilisé avec une propriété de navigation à valeur unique pour dissocier deux entités. Pour une solution alternative, voir Supprimer une référence à une entité.
Utilisation de Upsert avec une entité
Une opération upsert est exactement comme une mise à jour. Elle utilise une requête PATCH et utilise une URI pour faire référence à une entité spécifique. La différence est que si l'entité n'existe pas elle est créée. Si elle existe déjà, elle sera mise à jour. Normalement lorsque vous créez une entité vous laissez le système attribuer un identificateur unique. C'est une pratique recommandée. Mais si vous devez créer un enregistrement avec une valeur spécifique id, une opération upsert vous permet de le faire. Cela peut être utile dans le cas où vous synchronisez les données dans différents systèmes.
Il arrive toutefois que dans certaines situations vous souhaitez utiliser upsert, mais vous voulez éviter une des actions par défaut potentielles : créer ou mettre à jour. Vous pouvez y parvenir en ajoutant des en-têtes If-Match ou If-None-Match. Pour plus d'informations, voir Limiter les opérations upsert.
Suppression de base
Une opération de suppression est très simple. Utilisez le verbe DELETE avec l'URI de l'entité que vous souhaitez supprimer. Ce message d'exemple entraîne la suppression d'une entité de compte avec la valeur de clé primaire accountid égale à 00000000-0000-0000-0000-000000000001.
Demande
DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1 Content-Type: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Réponse
Si l'entité existe, vous recevrez une réponse normale avec le statut 204 pour indiquer que la suppression a réussi. Si l'entité n'est pas détectée, vous recevrez une réponse avec le statut 404.HTTP/1.1 204 No Content OData-Version: 4.0
Voir aussi
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)
Effectuer des opérations à l'aide de l'API Web
Composer des demandes HTTP et gérer les erreurs
Interroger les données à l'aide de l'API Web
Créer une entité à l'aide de l'API Web
Récupérer une entité à l'aide de l'API Web
Associer et dissocier les entités à l'aide de l'API Web
Utiliser des fonctions API Web
Utiliser des actions API Web
Exécuter des opérations par lots à l'aide de l'API Web
Emprunter l'identité d'un autre utilisateur à l'aide de l'API Web
Effectuer les opérations conditionnelles à l'aide de l'API Web
Microsoft Dynamics 365
© 2017 Microsoft. Tous droits réservés. Copyright