Exécuter des opérations de données supplémentaires en utilisant le point de terminaison OData

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

Outre les opérations de données de base, vous pouvez utiliser le point de terminaison REST pour Mise à jour de Microsoft Dynamics CRM 2015 et de Microsoft Dynamics CRM Online 2015 pour exécuter plus d’opérations de données spécialisées.

Contenu de la rubrique

Définition des types complexes sur null

Utilisation de l’insertion profonde

Mise à jour des propriétés individuelles

Association et dissociation d’enregistrements

Définition des types complexes sur null

Pour définir les Types complexes Microsoft Dynamics CRM sur null, vous devez définir explicitement chaque type primitif associé sur null.

Par exemple, pour définir un type EntityReference sur null, vous devez définir les propriétés Id, LogicalName et Name sur null. Il en va de même pour OptionSetValue, Monétaire et BooleanManagedProperty.

Utilisation de l’insertion profonde

L’insertion profonde est une technique qui permet de créer plusieurs enregistrement associés simultanément.

L’exemple suivant montre le code JavaScript qui utilise jQuery pour définir un compte et deux tâches connexes. Pour plus d'informations, voir Utiliser jQuery. Lorsque les tâches sont attribuées à la propriété Account_Tasks représentant les tâches connexes et envoyées en utilisant une demande POST à l’URI /AccountSet, le compte et les deux tâches associées sont créés en une même opération :

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’insertion profonde fonctionne des deux côtés de l’entité-relation. L’exemple précédent a créé des tâches dans le contexte d’un nouvel enregistrement de compte. Vous pouvez inverser ce comportement pour créer un enregistrement de compte dans le contexte de création d’une tâche connexe en envoyant une demande POST à l’URI /TaskSet.

Mise à jour des propriétés individuelles

Vous pouvez mettre à jour les valeurs d’attribut individuelles pour un enregistrement à l’aide d’une demande PUT HTTP utilisant un URI qui cible un attribut spécifique et en passant la nouvelle valeur dans le corps de la requête.

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

L’utilisation de cet URI dans une demande PUT HTTP sous un nouveau nom pour le compte dans le corps mettra à jour la valeur de cette seule propriété.

Association et dissociation d’enregistrements

Il existe deux méthodes pour associer ou dissocier les enregistrements : en mettant à jour les données dans les propriétés de référence de l’entité comme s’il s’agissait d’un autre type de propriété ou via l’URL de la ressource de lien.

Si vous associez ou dissociez les enregistrements du côté multiple d’une entité-relation N à 1, utilisez l’URI $links. Pour les entités-relations N à N et 1 à N, utilisez l’URI sans $links.

L’exemple suivant indique que l’URI renverra un URI aux enregistrements d’opportunité associés à l’enregistrement de compte spécifié dans l’URI :

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

Si vous souhaitez associer un enregistrement d’opportunité existant à ce compte, vous devez utiliser cet URI dans une demande POST HTTP qui inclut un URI pour cette opportunité dans le corps.

Notes

En associant un enregistrement du côté multiple d’une d’entité-relation N à 1, toute valeur existante sera remplacée lorsque la référence ne prend en charge qu’une seule valeur.

De même, pour dissocier une opportunité, vous devez utiliser une demande DELETE HTTP incluant une référence dans une ressource de lien spécifique. L’exemple suivant indique que l’URI représente un enregistrement de compte spécifique associé à un autre compte à l’aide de la propriété de référence d’entité ParentAccountId :

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

Une demande DELETE HTTP sur cet URI supprime l’association.

Notes

Certaines entités-relations sont nécessaires. Vous recevrez un message d’erreur si vous tentez de supprimer les données d’une relation requise.

Voir aussi

Exécuter des opérations de données de base utilisant le point de terminaison OData
Utiliser le point de terminaison OData avec les ressources Web
Utiliser le point de terminaison OData avec les ressources Web Ajax et JScript
Exemple : associer et dissocier des enregistrements à l’aide du point de terminaison OData avec JavaScript

© 2017 Microsoft. Tous droits réservés. Copyright