Présentation des entités
Les entités permettent de modéliser et gérer les données commerciales dans Dynamics 365 Customer Engagement (on-premises). Par exemple, les entités telles que compte, campagne et incident peuvent servir à tracer et à soutenir les activités de vente, de marketing et de service. Une entité possède un ensemble d’attributs et chaque attribut représente un élément de données d’un type particulier. Par exemple, l’entité de compte possède les attributs Name
, Address
et OwnerId
. Conceptuellement, une entité ressemble à une table de base de données et les attributs d’entité correspondent aux colonnes de la table. La création d’un enregistrement d’entité (ou, plus simplement, un enregistrement) dans Dynamics 365 Customer Engagement (on-premises) est semblable à l’ajout d’une ligne dans une table de base de données. Les entités sont divisées en trois catégories : système, entreprise et personnalisé. En tant que développeur utilisant des données commerciales, vous allez utiliser les entités commerciales et les entités personnalisées. Les entités système sont utilisées par Dynamics 365 Customer Engagement (on-premises) pour gérer tous les processus internes, tels que les workflows et les tâches asynchrones. Vous ne pouvez pas supprimer ou personnaliser les entités système.
Les entités métier font partie de l’installation par défaut de Dynamics 365 Customer Engagement (on-premises) et apparaissent dans l’interface utilisateur de personnalisation. Un compte, un contact et une lettre sont des exemples d’entités commerciales. Après l’installation, vous pouvez ajouter des entités personnalisées à Dynamics 365 Customer Engagement (on-premises) pour répondre aux besoins professionnels spécifiques de l’organisation. Dans une solution Dynamics 365 Customer Engagement (on-premises), vous pouvez définir des entités commerciales et des entités personnalisées, ainsi que des attributs, comme personnalisables ou non personnalisables. Vous pouvez modifier une entité personnalisable en la renommant, en ajoutant de nouveaux attributs ou en modifiant différents paramètres, tels que la détection des doublons ou les paramètres de prise en charge de la file d’attente. Vous ne pouvez pas modifier une entité non personnalisable. Pour plus d’informations sur la personnalisation, les solutions non gérées et gérées et les propriétés gérées, voir Mettre en package et distribuer des extensions avec les solutions Dynamics 365 Customer Engagement (on-premises).
Si vous utilisez le modèle de programmation à liaison anticipée, une entité est représentée par une classe, telle que la classe Account
qui représente l’entité compte. Les attributs d’entité sont représentés par des propriétés de classe. Cette classe est générée par l’outil CrmSvcUtil. Pour plus d’informations, voir Programmation avec liaison anticipée WCF (fortement typée). Autre solution, vous pouvez écrire les programmes qui fonctionnent avec les données d’entité à l’aide d’une approche dynamique. Pour plus d’informations, voir Programmation avec liaison tardive WCF (faiblement typée).
Note
Dans les services web Dynamics 365 Customer Engagement (on-premises), le terme « attribut d’entité » est utilisé de façon interchangeable avec le terme « attribut » et le terme « propriété » (propriété de classe).
Métadonnées de l’entité
Les métadonnées d’une organisation Dynamics 365 Customer Engagement (on-premises) contiennent les définitions des entités, des attributs et des relations entre les entités. Pour plus d’informations, voir Métadonnées et modèles de données dans Dynamics 365 Customer Engagement (on-premises). En tant que développeur, il existe de nombreux cas où il est utile de pouvoir trouver toutes les métadonnées d’une organisation. Il existe un certain nombre de façons dont vous pouvez rechercher et référencer les métadonnées :
Vous pouvez utiliser le navigateur de métadonnées d’entité pour générer les entités et leurs propriétés dans Dynamics 365 Customer Engagement (on-premises). Pour plus de détails, voir Parcourir les métadonnées de votre organisation.
Vous pouvez générer les métadonnées de votre organisation à l’aide de ces exemples :
Exemple : Vider les informations de privilège d’entité dans un fichier
Exemple : Vidage des informations de relation d’entité dans un fichier
Exemple : vider les informations d’un groupe d’options général dans un fichier
Vous pouvez créer les types de relations suivants entre les entités : un-à-plusieurs, plusieurs-à-un, et plusieurs-à-plusieurs. Les enregistrements pour les relations plusieurs-à-plusieurs sont stockés dans une entité d’intersection. Une fois les relations sont définies, utilisez le message AssociateRequest ou la méthode Associate pour créer un lien entre les enregistrements spécifiés et utilisez le message DisassociateRequest ou la méthode Disassociate pour supprimer un lien entre les enregistrements spécifiés.
Dans les relations un-à-plusieurs et plusieurs-à-un, certaines actions sur l’enregistrement de l’entité parente affectent les enregistrements de l’entité enfant. Les actions qui ont un comportement en cascade sont les suivantes : Attribuer, Supprimer, Fusionner, Partager, Annuler le partage et Redéfinir la parenté. Pour plus d’informations, voir Comportement des relations d’entité.
Noms utilisés dans les métadonnées de l’entité
Les entités, les attributs et les relations ont différents noms. Le tableau suivant répertorie les différents noms utilisés dans les métadonnées.
Nom | Description |
---|---|
Nom complet | Nom affiché pour l’utilisateur |
Nom complet de la collection | Version plurielle du nom complet. Ne s’applique qu’aux entités. |
Nom logique | Nom unique de l’entité ou de l’attribut. Ce nom est entièrement en lettres minuscules. |
Nom du schéma | Le nom du schéma est spécifié lors de la création. Il doit être unique. Il est utilisé pour créer le nom logique. Ce nom doit être en casse Pascal. Le nom de schéma est utilisé pour créer la classe de l’entité lors de l’utilisation de la programmation à liaison anticipée. |
Note
Pour une entité personnalisée, un attribut et une relation créée dans le contexte d’une solution, le préfixe de personnalisation des noms logiques et de schéma est défini dans l’attribut Publisher.CustomizationPrefix
. Pour une entité personnalisée créée par programme, définissez le préfixe de personnalisation avec une chaîne contenant entre deux et huit caractères, tous alphanumériques et commençant par une lettre. Elle ne peut pas commencer par « mscrm ». Pour plus d’informations sur la personnalisation des métadonnées d’entité et les conventions de noms, voir Personnaliser des métadonnées d’entité.
Actions sur les enregistrements d’entité
Chaque entité prend en charge plusieurs actions, par exemple créer ou supprimer un enregistrement, ou attribuer un enregistrement à un autre utilisateur ou à une autre équipe. Certaines actions ne sont pas autorisées sur tous les types d’entités ou attributs. Pour chaque attribut, les métadonnées déterminent si une action donnée est prise en charge. Par exemple, les propriétés d’un attribut, comme IsValidForCreate
, IsValidForRead
et IsValidForUpdate
, vous indiquent si vous pouvez créer, récupérer ou mettre à jour l’attribut. Pour plus d’informations : Opérations valides sur les attributs.
Pour exécuter une action, vous pouvez appeler l’une des méthodes de IOrganizationService. Par exemple, pour créer un enregistrement dans Dynamics 365 Customer Engagement (on-premises), vous pouvez utiliser la méthode IOrganizationService .Create ou la méthode IOrganizationService .Execute avec le message correspondant CreateRequest. Vous devez disposer des privilèges et des droits d’accès nécessaires pour effectuer ces actions. Pour plus d’informations, voir Le modèle de sécurité de Dynamics 365 Customer Engagement (on-premises).
Le tableau suivant répertorie les actions qui sont autorisés sur les enregistrements d’entreprise et d’entité personnalisée, ainsi que les méthodes et les messages qui vous permettent d’exécuter ces actions.
Pour | Description | Méthode et/ou message |
---|---|---|
Créer | Crée un enregistrement d’un type d’entité spécifique, entités personnalisées incluses. |
IOrganizationService.Create CreateRequest |
Update | Modifie le contenu d’un enregistrement. |
IOrganizationService.Update UpdateRequest |
Delete | Supprime un enregistrement. |
IOrganizationService.Delete DeleteRequest |
Récupérer | Récupère un enregistrement. |
IOrganizationService.Retrieve RetrieveRequest |
Récupération multiple | Récupère un ensemble d’enregistrements. |
IOrganizationService.RetrieveMultiple RetrieveMultipleRequest |
Attribuer | Modifie la propriété d’un enregistrement. Valide pour les entités dont la propriété est celle de l’utilisateur ou de l’équipe. | AssignRequest |
Partage | Octroie, modifie ou révoque l’accès à un enregistrement d’un autre utilisateur ou d’une autre équipe. Valide pour les entités dont la propriété est celle de l’utilisateur ou de l’équipe. | GrantAccessRequest ModifyAccessRequest RevokeAccessRequest |
Associer | Crée les liens entre un enregistrement et un ensemble d’enregistrements où il existe une relation entre les entités. | AssociateRequest |
Dissocier | Supprime les liens entre un enregistrement et un ensemble d’enregistrements où il existe une relation entre les entités. | DisassociateRequest |
Définir l’état | Définit l’état d’un enregistrement. | SetStateRequest |
Créer
Pour effectuer cette action, l’appelant doit disposer des privilèges de création. Les droits d’accès ne s’appliquent pas à une action de création, mais s’appliquent à l’enregistrement une fois créé.
Pour posséder un enregistrement ou pour récupérer l’enregistrement nouvellement créé, l’utilisateur ou l’équipe doit également disposer des privilèges de lecture et des droits d’accès sur le nouvel enregistrement. Par exemple, si vous avez les privilèges de création pour les comptes, vous pouvez créer un enregistrement de compte et l’attribuer à un autre utilisateur ou à une autre équipe. Toutefois, sauf si vous avez également le privilège de lecture pour les comptes et les droits d’accès sur le nouvel enregistrement, vous ne pouvez pas créer un compte et être le propriétaire de ce nouveau compte.
Mettre à jour
Pour effectuer cette action, l’appelant doit avoir les privilèges de mise à jour et les droits d’accès sur les enregistrements d’entité mis à jour.
Lorsque vous mettez à jour un enregistrement, seuls les attributs dont vous spécifiez les données ou pour lesquels vous spécifiez la valeur null sont mises à jour. Toutes les autres valeurs restent les mêmes. En outre, si vous spécifiez des données pour les attributs non valides pour la mise à jour, elles sont ignorées.
Supprimer
Pour effectuer cette action, l’appelant doit avoir les privilèges de suppression et les droits d’accès sur les enregistrements d’entité en cours de suppression.
Les règles en cascade déterminent si les enregistrements associés sont supprimés en même temps. Pour plus d’informations, voir Comportement des relations d’entité.
En règle générale, vous devez uniquement supprimer les enregistrements que vous avez entrés par erreur. Pour certains types d’enregistrements, vous pouvez, à la place, désactiver ou fermer l’enregistrement. Tous les types d’enregistrements ne peuvent pas être supprimés.
Récupérer
Pour effectuer cette action, l’appelant doit avoir les privilèges de récupération et les droits d’accès sur les enregistrements d’entité récupérés.
Récupération multiple
Pour effectuer cette action, l’appelant doit avoir les privilèges de récupération et les droits d’accès sur les enregistrements d’entité récupérés.
Pour récupérer une collection d’enregistrements basée sur les paramètres de la requête, vous pouvez utiliser une expression de requête ou le langage de requête FetchXML. Les expressions de requête vous permettent de créer une arborescence de requête en utilisant une hiérarchie de classe. Les méthodes qui utilisent une expression de requête retournent une collection d’enregistrements fortement typés. FetchXML vous permet de créer une requête à l’aide du langage XML. FetchXML renvoie une chaîne XML. Par conséquent, une manipulation supplémentaire des données est nécessaire pour utiliser les résultats de la requête. Pour plus d’informations, voir Création de requêtes pour récupérer des données.
Attribuer
Pour les entités appartenant à l’utilisateur ou à l’équipe, vous attribuez un enregistrement à un nouveau propriétaire. Pour plus d’informations, voir Propriété de l’entité. Pour effectuer cette action, l’appelant doit avoir les privilèges d’attribution et les droits d’accès sur les enregistrements d’entité.
Les règles en cascade déterminent si les enregistrements associés sont attribués en même temps à un autre utilisateur. Pour plus d’informations, voir Comportement des relations d’entité.
Lorsqu’un enregistrement est attribué à un utilisateur ou à une autre équipe, le propriétaire précédent a toujours accès à cet enregistrement si l’attribut ShareToPreviousOwnerOnAssign
est défini sur true
. Toutefois, le propriétaire précédent n’aura plus la propriété de l’enregistrement.
Note
Après avoir modifié la propriété d’un enregistrement avec un autre utilisateur, un utilisateur recevra une erreur « Accès refusé » lorsqu’il essaiera d’accéder à cet enregistrement en disposant uniquement d’un privilège d’enregistrement de niveau « utilisateur » pour cet enregistrement.
Partager
Pour les entités appartenant à l’utilisateur ou à l’équipe, vous pouvez partager un enregistrement avec d’autres utilisateurs ou équipes. Pour effectuer cette action, l’appelant doit avoir les privilèges GrantAccess, ModifyAccess et RevokeAccess et les droits d’accès sur les enregistrements d’entité.
Les règles en cascade déterminent si les enregistrements associés sont partagés en même temps. Pour plus d’informations, consultez Comportement des enregistrements d’entité
Le partage est la façon dont les utilisateurs Dynamics 365 Customer Engagement (on-premises) peuvent fournir à d’autres utilisateurs un accès aux informations concernant les clients si nécessaire. Par exemple, un commercial peut décider de partager une opportunité avec un autre commercial pour pouvoir suivre l’avancement d’une vente importante.
Utilisez le message GrantAccessRequest pour partager un enregistrement. Utilisez le message ModifyAccessRequest pour modifier la façon dont un enregistrement est partagé. Utilisez le message RevokeAccessRequest pour supprimer tout partage de l’enregistrement.
Un utilisateur doit disposer de droits de partage pour partager les enregistrements liés au client, tels que les contacts, comptes, opportunités, incidents et commandes, avec n’importe quel autre utilisateur de Dynamics 365 Customer Engagement (on-premises). Lorsqu’un enregistrement est partagé, vous pouvez spécifier les droits à accorder pour l’enregistrement partagé.
La liste suivante décrit les règles de partage des enregistrements :
Toute personne titulaire des privilèges de partage sur un enregistrement peut le partager avec d’autres utilisateurs ou équipes.
Toute personne titulaire des privilèges de partage sur un enregistrement peut définir des droits d’accès pour cet enregistrement. Ces droits d’accès déterminent la façon dont une personne qui partage un enregistrement peut accéder à cet enregistrement.
L’accès sur un enregistrement partagé peut être défini sur n’importe quel droit d’accès, par exemple, en lecture ou écriture.
Les droits d’accès sur un enregistrement partagé peuvent être différents pour chaque utilisateur avec lequel l’enregistrement est partagé.
Un enregistrement ne peut être partagé par le même principal de sécurité qu’une seule fois. Un utilisateur peut partager un enregistrement s’il a des privilèges de partage sur cet enregistrement.
Toute personne titulaire des privilèges de partage sur un enregistrement commercial peut modifier les droits d’accès pour les utilisateurs qui partagent l’enregistrement.
Toute personne titulaire des privilèges de partage sur un enregistrement commercial peut supprimer le partage d’un utilisateur spécifié qui partage l’enregistrement.
Toute personne titulaire des privilèges de partage sur un enregistrement commercial peut supprimer tous les utilisateurs qui partageaient préalablement l’enregistrement.
Associer
Pour effectuer cette action, l’appelant doit avoir les privilèges d’association et les droits d’accès sur les enregistrements mis à jour.
La méthode Associate crée plusieurs associations dans une transaction entre l’enregistrement spécifié et chaque enregistrement de la collection spécifiée pour la relation spécifiée.
Pour un relation de type un-à-plusieurs, cette méthode définit ReferencingAttribute dans l’enregistrement associé à l’ID d’enregistrement spécifié.
Pour un relation de type plusieurs-à-plusieurs, cette méthode crée un enregistrement dans la table d’intersection de la relation, contenant l’ID de l’enregistrement référencé et les enregistrements de référencement. Le nom de la table d’intersection est défini dans la propriété IntersectEntityName de la relation.
Dissocier
Pour effectuer cette action, l’appelant doit avoir les privilèges de dissociation et les droits d’accès sur les enregistrements mis à jour.
La méthode Disassociate inverse l’opération Associate, en mettant à jour les enregistrements référencés et les enregistrements de référencement, et en supprimant l’enregistrement d’intersection le cas échéant. Pour plus d’informations, voir Associer.
Définir l’état
Pour effectuer cette action, l’appelant doit avoir les privilèges SetState et les droits d’accès sur les enregistrements mis à jour. Le message SetStateRequest met à jour les attributs StateCode
et StatusCode
de l’enregistrement d’entité.
Propriété de l’entité
Il existe plusieurs types de propriété d’entité. La plupart des entités, notamment les entités personnalisées, appartiennent soit à l’organisation, soit à un utilisateur ou à une équipe. Certaines entités métier n’ont pas de propriétaire, comme le type de remise (liste de remises), où la propriété est définie par la remise de son entité parente. Le type de propriété est configuré au moment de la création de l’entité (table), et la modification ultérieure du type de propriété n’est pas prise en charge. Le type de propriété définit certaines opérations qui peuvent être effectuées sur un enregistrement. La propriété d’une entité est définie dans la propriété OwnershipType des métadonnées. Le tableau suivant répertorie les propriétés de propriété.
Type de propriété | Description |
---|---|
Propriété de l’organisation | Contient les données impliquant que quelque chose qui appartient à ou peut être affiché par toute l’organisation. Les entités détenues par l’organisation ne peuvent pas être attribuées ni partagées. Par exemple, les produits sont la propriété de l’organisation. Ces entités ont un attribut nommé organizationid . |
Propriété de l’entreprise | Entités qui appartiennent à une division. Ces entités ont un attribut nommé owningbusinessunit . |
Propriété d’un utilisateur ou d’une équipe. | Attribuée à un utilisateur ou à une équipe. Ces entités contiennent des données liées aux clients, tels que les comptes ou les contacts. La sécurité peut être définie en fonction de la division de l’utilisateur ou de l’équipe. Ces entités ont des attributs nommés owningteam et owninguser . |
Aucun(e) | Ces entités ne sont pas détenues par une autre entité. |
Informations supplémentaires sur la propriété d’un utilisateur ou d’une équipe
Vous pouvez utiliser le message AssignRequest pour modifier la propriété d’un enregistrement. Pour plus d’informations, Attribuer. Vous pouvez utiliser le message ReassignObjectsOwnerRequest ou le message ReassignObjectsSystemUserRequest pour exécuter la réaffectation de tous les enregistrements d’un propriétaire.
Note
En limitant la propriété aux utilisateurs ou aux équipes, vous limitez l’accès aux données aux utilisateurs autorisés de l’organisation. Toutefois, vous pouvez développer l’accès aux données aux autres utilisateurs et équipes en partageant l’enregistrement d’entité avec eux. Vous pouvez également attribuer un enregistrement à un autre utilisateur ou à une autre équipe. Configurer la sécurité pour les entités appartenant à l’utilisateur ou à l’équipe vous offre davantage de niveaux d’accès pour les rôles de sécurité que pour les entités détenues par l’organisation. Les rôles de sécurité pour les entités détenues par l’organisation ont deux niveaux d’accès : Aucun et Global. Les entités détenues par l’utilisateur ou par l’équipe ont cinq niveaux d’accès : Général, Profond, Local, Basique et aucun.
État et statut d’enregistrement
La plupart des entités commerciales ont deux propriétés pour suivre l’état d’un enregistrement. Ce sont StateCode
, appelée Statut dans l’application web, et StatusCode
, appelée Raison du statut dans l’application web. Les valeurs des attributs StateCode
et StatusCode
sont liées. L’attribut StateCode
est utilisé en interne pour représenter le statut de l’entité. L’attribut StatusCode
est utilisé pour afficher cette valeur à l’utilisateur final. L’ensemble des codes d’état valides pour une entité n’est pas personnalisable, mais les codes de statut le sont. Pour l’entité incident et les entités personnalisées, vous pouvez définir des critères supplémentaires pour les transitions valides entre les statuts. Pour plus d’informations, voir Personnaliser les métadonnées d’attribut d’entité et Définir les transitions de modèles d’état personnalisés.
Images d’entité
Certaines entités système possèdent des attributs d’image. Vous pouvez ajouter des attributs d’image à des entités personnalisées. Lorsqu’une entité a un attribut d’image, vous pouvez définir la propriété d’PrimaryImageAttribute pour contrôler si l’image apparaît dans l’application. Lorsque l’image apparaît dans l’application, les utilisateurs de l’application web peuvent télécharger des images pour l’enregistrement d’entité. Les entités système suivantes ont des attributs d’image. Celles signalées par un astérisque sont activées par défaut pour s’afficher dans l’application.
- Compte \*
- KbArticle
- Campagne
- Incident
- Concurrent \*
- Connexion
- Contact \*
- Contrat
- TransactionCurrency
- EmailServerProfile
- Objectif
- Facture
- Lead \*
- Boîte aux lettres
- OpportunityProduct
- Bon de commande
- Organisation
- Produit \*
- Éditeur \*
- File d’attente
- Ressource \*
- SalesLiterature
- Secteur de vente
- SystemUser \*
Pour plus d’informations : Attributs de données d’image.
Voir aussi
Entités d’administration et de sécurité
Générer des diagrammes de relations entre entités
Définir les transitions de modèles d’état personnalisés
Modéliser vos données commerciales avec Dynamics 365 Customer Engagement (on-premises)
Métadonnées de relation d’entité
Comportement des relations d’entité
Métadonnées et modèles de données dans Dynamics 365 Customer Engagement (on-premises)
Étendre le modèle de métadonnées pour Dynamics 365 Customer Engagement (on-premises)
Empaqueter et distribuer les extensions avec les solutions Dynamics 365 Customer Engagement (on-premises)
Entités IOrganizationService
Le modèle de sécurité de Dynamics 365 Customer Engagement (on-premises)
Exemple : Définir et récupérer des images d’entité
Exemple : Attribuer un enregistrement à une équipe
Exemple : partager des enregistrements à l’aide des messages GrantAccess, ModifyAccess et RevokeAccess
Exemple : Fusionner deux enregistrements
Exemple : valider l’état d’enregistrement et définir l’état de l’enregistrement
Exemple : Regrouper les enregistrements relatifs à un enregistrement spécifique