Personnaliser les mappages de table et de colonne

Vous pouvez mapper des colonnes entre des tables ayant une relation. Vous pouvez ainsi définir des valeurs par défaut pour un enregistrement créé dans le contexte d’un autre enregistrement. Utilisez les outils de personnalisation dans l’application de mapper des tables, voir Mapper des colonnes.

Comportement dans l’application

Le mappage dans Microsoft Dataverse rationalise l’entrée de données lors de la création d’enregistrements associés à un autre enregistrement. Lorsqu’une table a une relation avec une autre table, vous pouvez créer les enregistrements d’entités associés dans l’onglet Créer des associations dans le Ruban. Lorsque vous créez un enregistrement de cette manière, les données mappées à partir de l’enregistrement principal sont copiées dans le formulaire du nouvel enregistrement associé. En mappant les colonnes de table, vous pouvez contrôler les données copiées en ajoutant des mappages dans la relation entre les deux tables. Si vous créez un enregistrement autrement qu’à partir de la vue associée de la table principale, les données ne sont pas mappées.

Par exemple, vous pouvez définir un mappage entre les colonnes d’adresse dans les comptes et les colonnes d’adresse dans les contacts. Avec ce mappage, lorsqu’un utilisateur ajoute un contact associé à un compte spécifique, les colonnes d’adresse du contact sont remplis automatiquement.

Vous pouvez mapper une colonne à plusieurs colonnes cibles. Par exemple, vous pouvez mapper des informations d’adresse dans un compte aux adresses de facturation et de livraison dans une commande.

Le mappage est appliqué avant qu’un autre enregistrement associé soit créé. Les utilisateurs peuvent apporter des modifications avant d’enregistrer l’enregistrement. Les modifications ultérieures apportées aux données de l’enregistrement principal ne sont pas appliquées à l’enregistrement associé.

Utilisation des données de mappage de table et de colonne

Utilisation de l’API web

Lorsque vous utilisez l’API web, vous pouvez utiliser InitializeFrom Function pour créer des enregistrements dans le contexte d’enregistrements existants où un mappage existe entre les tables.

La réponse reçue de la demande InitializeFrom comprend les valeurs des colonnes mappées entre la table source et la table cible et le GUID de l’enregistrement parent. Le mappage de colonne entre des tables partageant une relation d’entité est différent pour chaque ensemble de tables et est personnalisable. La réponse de la demande de fonction InitializeFrom peut donc varier pour différentes tables et organisations. Lorsque cette réponse est transmise dans le corps de la demande de création du nouvel enregistrement, ces valeurs de colonne sont répliquées dans le nouvel enregistrement. Les valeurs des colonnes mappées personnalisées sont également définies dans le nouvel enregistrement pendant le processus.

Notes

Pour déterminer si deux tables peuvent être mappées, utilisez la demande suivante de l’API web :
GET [Organization URI]/api/data/v9.0/entitymaps?$select=sourceentityname,targetentityname&$orderby=sourceentityname

Pour plus d’informations, voir Créer un enregistrement à partir d’un autre enregistrement.

Utilisation du SDK pour .NET

À la création d’enregistrements dans le contexte d’un enregistrement existant où un mappage existe entre les tables, vous pouvez utiliser le message InitializeFromRequest pour définir un nouvel enregistrement contenant les valeurs définies dans le mappage. Vous pouvez ensuite utiliser IOrganizationService. Méthode Create pour enregistrer l’enregistrement. De cette manière, tous les mappages que vous définissez sont appliqués.

Les mappages de tables valides sont créés lorsqu’une relation est créée. Utilisez les entités-relations entity_map_attribute_maps pour extraire les mappages de colonne pour la paire de tables spécifiée par le mappage de tables.
Vous pouvez créer ou mettre à jour des enregistrements de mappage de colonnes. La configuration requise suivante doit être respectée pour les mappages de colonnes :

  • Le type AttributeMetadata doit correspondre.
  • La longueur de la colonne cible ne peut pas être plus inférieure à la colonne source.
  • Le format doit correspondre.
  • La colonne cible ne doit pas être utilisée dans un autre mappage.
  • La colonne source doit être visible sur le formulaire.
  • La colonne cible doit être un champ dans lequel un utilisateur peut entrer des données.
  • Il est impossible de mapper des valeurs d’ID d’adresse.
  • Colonnes PartyList, où AttributeMetadata.AttributeType est AttributeTypeCode.PartyList ne peuvent pas être mappés.

Mappage automatique des colonnes entre les tables

Vous pouvez modifier les mappages de colonnes entre la table pour les relations qui prennent en charge le mappage.

Outre la création manuelle de chaque mappage de colonnes, vous pouvez utiliser le message AutoMapEntity (classe AutoMapEntity Action ou AutoMapEntityRequest) pour générer un nouveau jeu de mappages de colonnes. Ce message exécute l’action sous l’option de menu Générer des mappages dans le menu Autres actions dans la barre d’outils (voir Générer automatiquement des mappages de colonnes). Ce message mappe toutes les colonnes entre les deux tables associées où les noms et les types de colonne sont identiques. Ce message est fourni pour améliorer la productivité afin que vous ne deviez pas avoir à ajouter manuellement tous les mappages de colonnes. Par contre, vous pouvez générer un ensemble de mappages probables et réduire la quantité de travail manuel pour ajouter ou supprimer des mappages individuels pour répondre à vos besoins.

Notes

La génération automatique des mappages de cette manière supprime tous les mappages de colonnes précédemment définis et peut inclure des mappages que vous ne souhaitez pas créer.

Récupérer les mappages de colonnes et de table

Un moyen simple de voir les mappages qui ont été créés consiste à utiliser la FetchXML requête suivante. Pour plus d’informations sur l’exécution de cette requête, consultez Interroger des données à l’aide de FetchXml.


<fetch version='1.0' mapping='logical' distinct='false'>
   <entity name='entitymap'>
      <attribute name='sourceentityname'/>
      <attribute name='targetentityname'/>
      <link-entity name='attributemap' alias='attributemap' to='entitymapid' from='entitymapid' link-type='inner'>
         <attribute name='sourceattributename'/>
         <attribute name='targetattributename'/>
      </link-entity>
   </entity>
 </fetch>

Voir aussi

Mapper les colonnes

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é).