Personnaliser des métadonnées de relation d’entité

Les relations d’entité définissent les manières dont les enregistrements d’entités peuvent être associés aux enregistrements d’autres entités ou de la même entité. La création de nouvelles relations d’entité crée des relations de table dans la base de données. Utilisez les relations d’entité pour définir les associations spécifiques qui sont fréquemment utilisées pour associer des enregistrements pour des rapports ou dans l’interface utilisateur. Lorsqu’une relation existe, vous pouvez associer et dissocier les enregistrements basés sur cette relation à l’aide des méthodes Associate et Disassociate. Pour plus d’informations : Opérations sur les enregistrements d’entité

Pour les relations entre des enregistrements individuels qui sont moins formelles et plus souples, voir Entités de connexion.

Cette rubrique traite de l’utilisation des relations d’entité par programme. Pour plus d’informations sur l’utilisation de la relation d’entité dans l’application, voir Créer et modifier des relations d’entité.

Types de relations d’entité

Dynamics 365 Customer Engagement (on-premises) comporte deux types de relations d’entité. Chacun hérite de la classe RelationshipMetadataBase :

  • Relations 1 à N (un à plusieurs)

  • Relations plusieurs à plusieurs

    Avant de créer de nouvelles relations d’entité par programmation, vérifiez si les entités sont éligibles pour participer aux relations. Certaines contraintes sont appliquées aux relations d’entité qui utilisent les propriétés EntityMetadata suivantes : CanBeInManyToMany, CanBePrimaryEntityInRelationship et CanBeRelatedEntityInRelationship. Ces restrictions sont prises en compte lorsque vous créez manuellement des relations d’entité dans les outils de personnalisation. Il y a des messages que vous pouvez utiliser pour déterminer les relations qu’une entité peut utiliser et quelles autres entités sont valides pour ce type de relation. Pour plus d’informations : Éligibilité des relations d’entité

    Les deux types de relations d’entité permettent aux options d’afficher des liens de navigation entre les enregistrements associés. Pour plus d’informations, voir : Configurer les menus associés

Relations 1 à N (un-à-plusieurs)

Dans une relation d’entité un-à-plusieurs, différents enregistrements d’entités de référencement (associés) peuvent être associés à un seul enregistrement d’entité référencé (principal). Les enregistrements d’entités référencés sont parfois appelés parents et les enregistrements d’entité de référencement sont appelés enfants.

Dans un nœud d’entité figurant sur une page de solution, ce type de relation d’entité s’affiche sous forme d’une Relation un-à-plusieurs (1 à N) ou d’une Relation plusieurs-à-un (N à 1). Ces termes sont utilisés car vous accédez aux relations d’entité via une des entités. L’étiquette reflète le rôle que l’entité active a dans la relation.

Note

Voir API web : créer une relation un-à-plusieurs pour plus d’informations sur l’utilisation de l’API web pour créer une relation 1 à N.

Pour le service d’organisation, vous utilisez une instance de la classe OneToManyRelationshipMetadata avec ce type de relation d’entité. Chaque relation d’entité a un nom de schéma spécifique que vous utilisez pour la récupérer. Pour plus d’informations, voir SchemaName. Chaque relation d’entité de ce type a aussi une entité référencée (Entité principale) avec un attribut référencé, et une entité de référencement (Entité associée) avec un attribut de référencement. L’attribut de référencement peut être affiché sous forme de champ de recherche dans un formulaire d’entité. Pour plus d’informations, consultez

API Web Assembly du Kit de développement logiciel (SDK)
OneToManyRelationshipMetadata EntityType.ReferencedEntity ReferencedEntity
OneToManyRelationshipMetadata EntityType.ReferencedAttribute ReferencedAttribute
OneToManyRelationshipMetadata EntityType.ReferencingEntity ReferencingEntity
OneToManyRelationshipMetadata EntityType.ReferencingAttribute ReferencingAttribute

Vous pouvez demander qu’une entité de référencement ait une référence en définissant l’AttributeRequiredLevelénumération (AttributeRequiredLevel EnumType ou AttributeRequiredLevel énumération) sur ApplicationRequired dans l’attribut de référencement. Pour préserver l’intégrité des données, lorsque vous effectuez cette opération, vous devez également spécifier ce qui doit se produire si l’enregistrement principal est supprimé. Utilisez la propriété OneToManyRelationshipMetadata.CascadeConfiguration pour empêcher la suppression de l’enregistrement principal ou supprimer automatiquement l’enregistrement associé pour empêcher d’avoir un enregistrement orphelin.

Vous pouvez également utiliser la configuration en cascade pour automatiser le comportement lorsque des actions spécifiques sont exécutées sur les enregistrements associés de l’organisation. Pour plus d’informations, voir : Comportement des relations d’entité

Mapper les données aux nouveaux enregistrements

Lorsqu’il existe une relation d’entité un-à-plusieurs, vous pouvez spécifier que les données issues de certains champs de l’entité référencée peuvent être transférées dans n’importe quel nouvel enregistrement associé créé dans le contexte de la relation. Cela peut rationaliser la saisie des données lorsque vous créez de nouveaux enregistrements associés. Pour plus d’informations, voir Mappages d’attributs et d’entités.

Auto-référencement des relations d’entité un-à-plusieurs (1 à N)

Une relation auto-référentielle apparaît là où l’entité de référencement et l’entité référencée est la même. Par exemple, l’entité de compte a une relation un-à-plusieurs auto-référentielle qui autorise une recherche portant l’étiquette Compte parent. Si le comportement d’une relation d’entité est défini comme Parental, il est impossible à un enregistrement de se référencer lui-même car cela créerait une référence circulaire lorsque des comportements en cascade sont appliqués. Pour plus d’informations, voir : Comportement des relations d’entité

Relations d’entités hiérarchiques 1:N

Avec Dynamics 365 Customer Engagement (on-premises), vous pouvez spécifier une relation d’entité 1:N auto- référentielle comme relation hiérarchique conçue pour une entité. La propriété OneToManyRelationship.IsHierarchical (OneToManyRelationship.IsHierarchical ou OneToManyRelationshipMetadata.IsHierarchical.) marque cette relation comme relation un-à-plusieurs à utiliser pour l’entité.

Toutes les relations d’entité 1:N représentent un type de hiérarchie, mais les relations marquées explicitement avec la propriété IsHierarchical sont les seules relations d’entité prenant en charge les visualisations de hiérarchie de l’application, ainsi que les nouveaux opérateurs de requête pour récupérer les enregistrements associés de manière hiérarchique. Informations complémentaires : Rechercher les données hiérarchiques

Changer le nom des propriétés de navigation de l’API web

Si vous souhaitez appliquer un nom de propriété de navigation de l’API web personnalisé pour les relations un-à-plusieurs, vous pouvez définir des valeurs pour les propriétés OneToManyRelationshipMetadata.ReferencingEntityNavigationPropertyName et OneToManyRelationshipMetadata.ReferencedEntityNavigationPropertyName.

Relations plusieurs-à-plusieurs

Dans une relation d’entité plusieurs-à-plusieurs, différents enregistrements d’entités peuvent être associés à différents autres enregistrements d’entités. Contrairement aux relations 1:N, il n’y a aucun champ de recherche sur les entités et, par conséquent, aucune hiérarchie. Les enregistrement associés avec une relation plusieurs-à-plusieurs (N à N) peuvent être considérés comme des homologues et la relation est réciproque. Une relation plusieurs-à-plusieurs (N à N) peut également être auto-référentiel. Étant donné qu’aucun comportement en cascade n’est impliqué dans les relations plusieurs-à-plusieurs (N à N), vous pouvez autoriser un enregistrement individuel à avoir une référence à lui-même.

Note

Voir Créer une relation plusieurs-à-plusieurs à l’aide de l’API web pour plus d’informations sur l’utilisation de l’API web pour créer une relation N à N.

Vous utilisez une instance de la classe ManyToManyRelationshipMetadata (ManyToManyRelationshipMetadata EntityType ou ManyToManyRelationshipMetadata) lorsque vous travaillez avec ce type de relation d’entité. Chaque relation d’entité a un RelationshipMetadataBase.SchemaName spécifique que vous utilisez pour la récupérer.

La création d’une relation d’entité plusieurs-à-plusieurs (N à N) crée une nouvelle entité d’intersection où la propriété EntityMetadata.IsIntersect a la valeur true. Les enregistrements de cette entité suivent chaque relation plusieurs-à-plusieurs individuelle. Vous ne pouvez pas ajouter d’attributs personnalisés aux entités avec intersection.

Changer le nom des propriétés de navigation de l’API web

Si vous souhaitez appliquer un nom de propriété de navigation de l’API web personnalisé pour les relations plusieurs à plusieurs, vous pouvez définir les valeurs pour les propriétés ManyToManyRelationshipMetadata EntityType.Entity1NavigationPropertyName et ManyToManyRelationshipMetadata EntityType.Entity2NavigationPropertyName properties.

Configurer les menus associés

Les deux types de relations d’entités permettent la configuration de liens de navigation entre les enregistrements associés. Utilisez les propriétés Metadata.AssociatedMenuConfiguration dans chaque type de définition de relation d’entité pour indiquer comment afficher les liens de navigation dans un formulaire d’entité.

Ces valeurs fournissent la configuration par défaut de la relation. Vous pouvez utiliser l’éditeur de formulaires pour remplacer ces options pour chaque formulaire. Informations complémentaires : Modifier la navigation dans un formulaire

Behavior
Comporte les options suivantes :

  • DoNotDisplay

  • UseCollectionName

  • UseLabel

    Group
    Comporte les options suivantes :

  • Détails

  • Marketing

  • Sales

  • Service

    Vous ne pouvez pas ajouter de nouveaux groupes, mais vous pouvez modifier le texte affiché pour ceux-ci à l’aide de l’éditeur de formulaires.

    Étiquette
    Si vous sélectionnez AssociatedMenuBehavior.UseLabel, vous devez entrer une étiquette personnalisée.

    commande
    L’entier fourni pour l’ordre contrôlera la position relative des éléments de navigation dans le groupe. Plus la valeur est faible, plus l’élément s’entend par rapport aux valeurs des autres éléments du groupe.

Voir aussi

Créer et mettre à jour les relations d’entité à l’aide de l’API web
Étendre le modèle de métadonnées pour Dynamics 365 Customer Engagement (on-premises)
Messages de relation d’entité
Éligibilité de la relation d’entité
Comportement des relations d’entité
Créer des relations d’entités
Exemple : créer des relations d’entités
Exemple : vidage des informations de relation d’entité dans un fichier
Mappages d’entités et d’attributs
Extraire des enregistrements pour des relations plusieurs-à-plusieurs à l’aide des entités avec intersection