Utilisation d’une clé secondaire pour référencer un enregistrement

Vous utiliserez des clés alternatives avec des scénarios d’intégration de données pour effectuer des opérations de données lorsque vous ne connaissez pas la valeur de clé primaire d’un enregistrement Dataverse. Vous ne pouvez utiliser des clés alternatives que pour les tables où elles sont définies. La plupart des tables Dataverse n’auront pas de clés alternatives à moins qu’elles n’aient été personnalisées pour les inclure.

Pour comprendre comment définir et identifier des clés secondaires pour une table, voir les articles suivants :

Vous pouvez utiliser des clés alternatives à l’aide de l’API web Dataverse ou du SDK pour .NET.

Lorsque vous utilisez l’API Web, vous référencez un enregistrement spécifique à l’aide d’une URL, puis utilisez les méthodes http POST, PATCH ou DELETE pour effectuer l’opération de données. Vous utilisez également des URL pour définir des valeurs pour les propriétés de navigation à valeur unique à l’aide de la syntaxe @odata.bind, ou en tant que paramètres de fonctions et d’actions.

La table suivante fournit des exemples montrant comment référencer des enregistrements à l’aide d’URL relatives :

Situation Exemple
Avec une clé primaire /accounts(00000000-0000-0000-0000-000000000001) OU
accounts(accountid=00000000-0000-0000-0000-000000000001)
Voir la note suivante sur les types d’entité systemuser et team
Avec une clé secondaire /accounts(accountnumber='ABC123')
Avec des clés secondaires en plusieurs parties /contacts(firstname='Joe',emailaddress1='abc@example.com')
Avec une clé secondaire qui utilise une colonne de recherche /accounts(_primarycontactid_value=00000000-0000-0000-0000-000000000002)
Quand une clé secondaire est définie pour une colonne de recherche, vous devez utiliser le nom de la Propriété de recherche correspondante. Une propriété de recherche suit la convention d’affectation de noms suivante : _<name of single-valued navigation property>_value.

Notes

A cause de comment les types d’entités systemuser et team héritent du type d’entité principal, vous ne pouvez pas utiliser une clé primaire nommée pour référencer ces entités. Les clés primaires de ces deux entités sont ownerid, plutôt que systemuserid ou teamid. Le type d’entité principal ne prend pas en charge les opérations GET. Pour plus d’informations, voir : Héritage de type d’entité

Exceptions lors de l’utilisation de clés secondaires avec l’API web

Vous devez tenir compte des conditions et des exceptions possibles suivantes lorsque vous utilisez des clés secondaires :

  • Si vous spécifiez une colonne définie qui n’est pas définie comme clé unique, une erreur est générée, indiquant qu’il est nécessaire d’utiliser des colonnes principales uniques. Le message d’erreur est : The key in the request URI is not valid for resource 'Microsoft.Dynamics.CRM.<table logical name>'. Ensure that the names and number of key properties match the declared or alternate key properties for the resource 'Microsoft.Dynamics.CRM.<table logical name>'.
  • Les valeurs de clé secondaire avec les caractères suivants /,<,>,*,%,&,:,\\,?,+ ne sont pas prises en charge actuellement.

Plus d’informations : Récupérer un enregistrement utilisant une clé secondaire

Voir aussi

Définition de clés secondaires pour la table
Utiliser le suivi des modifications pour synchroniser les données avec les systèmes externes
Utilisation de Upsert pour insérer ou mettre à jour un enregistrement

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).