Comportement des relations d’entité

Lorsqu’une relation d’entité un-à-plusieurs existe, des comportements en cascade peuvent être configurés pour préserver l’intégrité des données et automatiser les processus d’entreprise. Cette rubrique vise à expliquer certains concepts clés et à décrire la façon de configurer ces comportements en cascade.

Avant d’expliquer comment configurer les comportements d’une relation d’entité, il est utile de prendre en compte la façon dont cela s’applique à votre entreprise. Voici les trois concepts clés :

Préserver l’intégrité des données

Chaque entité peut posséder des règles qui définissent un enregistrement valide. Par exemple, un enregistrement d’opportunité Dynamics 365 Customer Engagement (on-premises) doit inclure une référence à un client potentiel. Les utilisateurs ne peuvent pas créer d’enregistrement d’opportunité sans ajouter de client existant ou sans créer d’enregistrement de client.

Mais que se passe-t-il si le compte ou le contact qui représente le client est supprimé ? Dans ce cas, il est possible de :

  • limiter toute tentative de suppression d’un enregistrement de client ayant une opportunité associée ;

  • mettre en cascade l’action de suppression lorsqu’un enregistrement de client correspondant est supprimé, afin que tous les enregistrements d’opportunité associés soient automatiquement supprimés.

    Dans Dynamics 365 Customer Engagement (on-premises), pour les relations un-à-plusieurs qui associent les opportunités à des clients, tel que Opportunity.opportunity_customer_accounts et Contact.opportunity_customer_contacts, le comportement consiste à mettre en cascade l’action de suppression.

    Lorsque vous organisez vos données afin de les utiliser dans Dynamics 365 Customer Engagement (on-premises), vous devez également décider de la façon dont vous souhaitez préserver leur intégrité.

Automatiser les processus d’entreprise

Vos processus d’entreprise peuvent vous obliger à effectuer des actions sur les enregistrements qui possèdent des enregistrements liés. Par exemple, vous devrez peut-être attribuer un compte à un nouveau vendeur. Si cet enregistrement de compte possède des enregistrements d’opportunité, vous pouvez agir de différentes façons :

  • Ne rien faire. Les opportunités doivent continuer à appartenir aux personnes qui les traitent.

  • Attribuer toutes les opportunités au nouveau vendeur. En tant que nouveau propriétaire de cet enregistrement de compte, le vendeur est désormais responsable de toutes les opportunités associées à ce compte.

  • Attribuer uniquement les opportunités actives au nouveau vendeur. Le propriétaire conserve les enregistrements d’opportunité inactifs, à des fins de reporting.

  • Attribuer uniquement les opportunités détenues par l’ancien propriétaire du compte au nouveau vendeur. Cela permet au nouveau vendeur de remplacer l’ancien propriétaire.

    Il s’agit des options courantes que vous pouvez configurer à l’aide du comportement de relation d’entité dans Dynamics 365 Customer Engagement (on-premises). Si vous avez besoin de différents comportements, envisagez d’acheter une solution contenant le comportement dont vous avez besoin ou de développer un plug-in pour obtenir des options supplémentaires.

Comportement en cascade

Ces options de configuration sont appelées « comportements en cascade », car elles mettent en cascade vers la hiérarchie des entités associées. Par exemple, si la suppression d’un compte entraîne la suppression des opportunités associées, qu’en est-il des activités associées aux opportunités ? Dans Dynamics 365 Customer Engagement (on-premises), le comportement défini dans chaque relation d’entité pour les entités de type d’activité indique qu’elles sont également supprimées.

Toutefois, toutes les entités ne sont pas traitées de cette façon. Par exemple, les commandes et les factures contiennent des données commerciales importantes qui ne doivent pas être supprimées par inadvertance. Le comportement de relation d’entité est configuré pour limiter la suppression des enregistrements de client ou d’opportunité auxquels elles sont associées. Avant de pouvoir supprimer un client ou une opportunité possédant un enregistrement de commande ou de facture associé, vous devez d’abord supprimer la commande ou la facture.

Lorsque vous organisez vos données commerciales en créant des entités personnalisées ou que vous utilisez des entités système Dynamics 365 Customer Engagement (on-premises) existantes, réfléchissez au comportement dont vous avez besoin et aux implications pour l’ensemble de la hiérarchie des entités associées.

Relations d’entité parentales

Chaque paire d’entités qui sont éligibles à une relation 1 à N peuvent avoir plusieurs relations 1 à N entre elles. Cependant, une seule de ces relations peut être considérée comme une relation d’entité parentale. Voir Relations d’entités parentales personnalisables pour obtenir une liste de toutes les relations d’entité parentales personnalisables.

Une relation d’entité parentale est une relation d’entité 1 à N dans laquelle l’une des options de mise en cascade (définies dans CascadeType) de la colonne Parental du tableau suivant est true.

Pour Parental Non parental
Supprimer En cascade RemoveLink
Restreindre
Partager En cascade
UserOwned
Active
NoCascade
Annuler le partage En cascade
UserOwned
Active
NoCascade
Attribuer En cascade
UserOwned
Active
NoCascade
Redéfinir la parenté En cascade
UserOwned
Active
NoCascade

Chaque entité de référencement dans une relation 1 à N a un attribut de référencement dans lequel la relation peut être considérée comme parentale.

Par exemple, si vous créez une entité personnalisée et si vous ajoutez une relation d’entité 1 à N à l’entité Compte dans laquelle votre entité personnalisée est l’entité de référencement, vous pouvez configurer les actions afin que cette relation d’entité utilise les options dans la colonne Parental. Si vous ajoutez ensuite une autre relation d’entité 1 à N à votre entité personnalisée en tant qu’entité de référencement, vous pouvez uniquement configurer les actions pour qu’elles utilisent les options de la colonne Non parental.

Généralement, cela signifie que pour chaque paire d’entités, il n’existe qu’une relation parentale. Dans certains cas, l’attribut de référencement sur le référencement peut inclure une référence à plusieurs types d’entité.

Par exemple, l’entité Opportunity contient un attribut de référencement appelé customerid dans lequel une référence à un contact ou à un enregistrement de compte peut être enregistrée. Dans ce cas, il existe deux relations d’entités 1 à N parentales distinctes.

Une entité d’activité, par exemple une tâche, une télécopie, un appel téléphonique, etc., possède un ensemble de relations d’entité parentales similaire pour les entités pouvant être associées à l’aide de l’attribut de référencement regardingobjectid.

Configuration du comportement de relation d’entité

Utilisation de l’API web

Lorsque vous utilisez l’API web, vous pouvez définir une relation un-à-plusieurs avec OneToManyRelationshipMetadata EntityType. Cette définition inclut le nom de l’entité avec intersection à créer ainsi que le mode d’affichage dans l’application à l’aide de AssociatedMenuConfiguration ComplexType, Label ComplexType et LocalizedLabel ComplexType. Pour plus d’informations : Créer une relation un-à-plusieurs

Utilisation du service d’organisation

Lorsque vous utilisez CreateOneToManyRequest ou UpdateRelationshipRequest, vous incluez une instance d’une classe OneToManyRelationshipMetadata dans le corps de la requête. Dans la propriété CascadeConfiguration de cette classe, vous utilisez la classe CascadeConfiguration.

La classe CascadeConfiguration (classe CascadeConfiguration ou CascadeConfiguration ComplexType) contient les propriétés qui représentent les actions qui peuvent être effectuées sur l’entité référencée dans la relation d’entité un-à-plusieurs. Une des valeurs de l’énumération peut être attribuée à chaque propriété CascadeType EnumType.

active Étiquette de l’application Description
Activé Cascade active Effectuer l’action sur tous les enregistrements d’entité de référencement actifs associés à l’enregistrement d’entité référencé.
Cascade Tout en cascade Effectuer l’action sur tous les enregistrements d’entité de référencement associés à l’enregistrement d’entité référencé.
NoCascade Sans mise en cascade Ne rien faire.
RemoveLink Supprimer le lien Supprimer la valeur de l’attribut de référencement pour tous les enregistrements d’entité de référencement associés à l’enregistrement d’entité référencé.
Restreindre Restreindre Empêcher la suppression de l’enregistrement d’entité référencé en présence d’entités de référencement associées.
UserOwned Cascade propriétaire Effectuer l’action sur tous les enregistrements d’entités de référencement détenus par le même utilisateur que l’enregistrement d’entité référencé.

La classe CascadeConfiguration (classe CascadeConfiguration ou CascadeConfiguration ComplexType) contient les propriétés qui représentent les actions qui peuvent être effectuées sur l’entité référencée dans la relation d’entité un-à-plusieurs.

Pour Description Options valides
Attribuer Le propriétaire de l’enregistrement d’entité référencé est modifié. Active
En cascade
NoCascade
UserOwned
Supprimer L’enregistrement d’entité référencé est supprimé. Remarque : les options de cette action sont limitées. En cascade
RemoveLink
Restreindre
Fusionner L’enregistrement est fusionné avec un autre enregistrement. Remarque : pour les entités référencées qui peuvent être fusionnées, Cascade est la seule option valide. Dans les autres cas, utilisez NoCascade. En cascade
NoCascade
Redéf. parenté Voir À propos de l’action Redéfinir la parenté ci-dessous. Active
En cascade
NoCascade
UserOwned
Partager Lorsque l’enregistrement d’entité référencé est partagé avec un autre utilisateur. Active
En cascade
NoCascade
UserOwned
Annuler le partage Lorsque le partage est supprimé pour l’enregistrement d’entité référencé. Active
En cascade
NoCascade
UserOwned

À propos de l’action Redéfinir la parenté

L’action Redéfinir la parenté est très similaire à l’action de partage, à ceci près qu’elle traite des droits d’accès en lecture hérités au lieu des droits d’accès en lecture explicites.

Note

Pour plus d’informations sur les droits d’accès hérités, voir Utiliser la sécurité basée sur les enregistrements pour contrôler l’accès aux enregistrements, notamment la section Partage et héritage.

L’action Redéfinir la parenté est l’action effectuée lorsque vous modifiez la valeur de l’attribut de référencement dans une relation parentale. Lorsqu’une action Redéfinir la parenté a lieu, l’étendue souhaitée des droits d’accès hérités en lecture pour les entités associées peut changer. Les actions de mise en cascade associées à l’action Redéfinir la parenté correspondent aux modifications des droits d’accès en lecture pour l’enregistrement d’entité et tous les enregistrements d’entités associés à cet enregistrement. Pour plus d’informations sur la façon de configurer une relation d’entité pour qu’elle soit parentale, voir Relations d’entités de parenté.

Par exemple, il existe une relation parentale entre Opportunité et Compte en fonction de l’attribut de référencement CustomerId. Si vous êtes propriétaire d’un compte et qu’il existe une opportunité associée à ce compte, vous héritez des droits d’accès en lecture à cette opportunité et à tous les enregistrements qui y sont associés. Si la valeur de l’attribut de référencement CustomerId de l’opportunité est modifié pour faire référence à un compte différent, le propriétaire de ce compte hérite des droits d’accès en lecture à l’opportunité si la valeur de l’action Redéfinir la parenté est Cascade. Vous pouvez désactiver cet héritage automatique des droits d’accès en lecture si vous définissez l’action Redéfinir la parenté sur NoCascade. Vous pouvez utiliser les options Active ou UserOwned pour spécifier les filtres qui affecteront les enregistrements lorsque les droits d’accès sont modifiés. Pour tous les enregistrements associés à l’opportunité à l’aide d’une relation parentale, l’action Redéfinir la parenté met en cascade ces relations d’entité et les droits d’accès en lecture sont hérités en fonction des filtres définis pour l’action Redéfinir la parenté.

Voir aussi

Relations un-à-plusieurs
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)
Personnaliser les métadonnées d’entité
Personnaliser les métadonnées d’attribut d’entité
Métadonnées de relation d’entité
Mappages d’entités et d’attributs
Prendre en charge plusieurs langues avec des étiquettes
Utiliser la sécurité basée sur les enregistrements pour contrôler l’accès aux enregistrements
Exemple : créer et récupérer des entités-relations