Présentation des attributs d’entité dans Dynamics 365 Customer Engagement (on-premises)
Les entités incluent un ensemble d’attributs qui représentent les données pouvant être incluses dans chaque enregistrement. Les développeurs doivent connaître les différents types d’attributs et savoir les utiliser. Les métadonnées des attributs décrivent les opérations et les comportements valides des différents types d’attributs. Plusieurs types d’attributs peuvent être regroupés par des comportement courants.
L’expérience spécifique des développeurs dépendra du style de leur développement. Plus d’informations : Programmation d’entité (liaison anticipée, liaison tardive et extensions développeur).
Note
Cette rubrique inclut des références à plusieurs propriétés des métadonnées. Pour afficher les métadonnées d’entité pour votre organisation, installez la solution Navigateur de métadonnées décrite dans l’article Accès aux métadonnées de votre organisation. Vous pouvez également accéder à la documentation de référence pour les entités dans Référence d’entité.
Opérations valides sur les attributs
Chaque attribut possède des métadonnées qui décrivent les opérations qu’il prend en charge. Vous devez être connaître les opérations valides pour les attributs que vous utilisez.
Propriété AttributeMetadata | Description |
---|---|
IsValidForCreate | True si cet attribut est valide pour être défini lorsqu’un enregistrement est créé, sinon false. |
IsValidForRead | True si la valeur de cet attribut peut être récupérée, sinon false. |
IsValidForUpdate | True si cet attribut est valide pour être défini lorsqu’un enregistrement est mis à jour, sinon false. |
Types d’attributs
Les attributs sont définis dans les métadonnées et la propriété AttributeMetadata .AttributeTypeName contient la valeur décrivant le type. Les membres AttributeTypeDisplayName statiques fournissent la liste des types possibles.
Note
La propriété AttributeType plus ancienne contient les données qui sont principalement alignées avec AttributeTypeName
, sauf qu’elle affiche les attributs ImageType
comme Virtual
. Utilisez la propriété AttributeTypeName
plutôt que la propriété AttributeType
.
La section suivante regroupe les types d’attributs en catégories pour que vous puissiez les comparer plus facilement :
Attributs de données de catégorisation
Chacun des six attributs de ce groupe hérite d’une classe de base EnumAttributeMetadata commune et utilise un ensemble prédéfini de valeurs valides pour regrouper les enregistrements en catégories.
Définissez les attributs Picklist, Status et State à l’aide d’un OptionSetValue avec une propriété Value
définie sur un entier qui représente une option valide au sein des métadonnées.
Définissez les attributs booléens avec une valeur booléenne, mais sachez qu’il s’agit d’une catégorisation limitée à deux options uniquement.
Les attributs EntityName utilisent une valeur de chaîne contrainte pour être un nom logique d’entité valide dans l’organisation.
Les attributs personnalisés Picklist et Boolean peuvent être définis comme attributs calculés. Pour plus d’informations : Attributs calculés.
Type de métadonnées | Valeur AttributeTypeName | Description |
---|---|---|
PicklistAttributeMetadata | PicklistType | Les valeurs sont définies dans OptionMetadata.Value pour cet attribut défini dans OptionSetMetadata.Options.Dans les outils de personnalisation de l’application, ces attributs sont appelés champs duGroupe d’options. |
MultiSelectPicklistAttributeMetadata | MultiSelectPicklistType | Remarque : des attributs de liste à sélection multiple ont été ajoutés dans Dynamics 365 Customer Engagement (on-premises) Version 9.x. Pour plus d’informations Attributs de liste à sélection multiple. Dans les outils de personnalisation de l’application, ces attributs sont appelés champs du groupe d’options à sélection multiple. |
StatusAttributeMetadata | StatusType | Ces attributs système sont nommés StatusCode . Les valeurs sont définies dans StatusOptionMetadata.Value pour cet attribut défini dans OptionSetMetadata.Options.La propriété StatusOptionMetadata.State de chaque option décrit la valeur valide pour la valeur StateCode correspondante. Avant de définir StatusCode , vous devez vérifier qu’il est valide pour la valeur StateCode actuelle. Utilisez le message SetStateRequest pour définir les valeurs d’attribut StatusCode et StateCode lorsque vous devez modifier le statut de l’enregistrement.Ces attributs peuvent avoir d’autres restrictions selon lesquelles les valeurs peuvent être définies. La propriété StatusOptionMetadata.TransitionData peut contenir des informations relatives aux options autorisées quand la valeur EntityMetadata. La valeur EnforceTransitions est définie sur true. En savoir plus : Définir les transitions de modèles d’état personnalisés. |
StateAttributeMetadata | StateType | Ces attributs système sont nommés StateCode . Les valeurs sont définies dans StateOptionMetadata.Value pour cet attribut défini dans OptionSetMetadata.Options.StateCode n’est pas valide pour la mise à jour Une fois l’enregistrement créé, StateCode peut être défini avec le message SetStateRequest.La propriété StateOptionMetadata.DefaultStatus de chaque option décrit le StatusCode par défaut qui sera utilisé s’il n’est pas défini comme paramètre dans SetStateRequest . |
BooleanAttributeMetadata | BooleanType | Les attributs booléens peuvent être définis directement avec une valeur booléenne, mais comme les autres ils ont aussi une propriété OptionSet avec les propriétés FalseOption et TrueOption correspondant aux options booléennes. Chacune de ces propriétés définit un ensemble d’étiquettes localisées représentant ce que les valeurs true et false signifient pour l’attribut. Dans les outils de personnalisation de l’application, ces attributs sont appelés champs Deux options, car la signification de chaque option peut être n’importe quelle paire d’options mutuellement exclusives, et pas simplement true et false. Par exemple, les options peuvent être Grand et Petit. |
EntityNameAttributeMetadata | EntityNameType | Ces attributs système sont accouplés avec un attribut d’identificateur unique ou de référence valide pour plusieurs types. La valeur de cet attribut est une valeur de chaîne représentant le nom logique d’une entité. Si l’attribut de référence correspondant est EntityReference, la valeur de cet attribut est la même que la valeur de propriété EntityReference.Name . |
Attributs de collection de données
Ces attributs système retournent des collections de valeurs.
Valeur AttributeTypeName | Description |
---|---|
CalendarRulesType | Aucun attribut réel n’utilise CalendarRulesType . Lorsque vous utilisez le style de liaisons anticipée, l’outil de génération de code crée les deux attributs simulés suivants, qui ne sont pas présents dans les métadonnées. Ces attributs représentent réellement une vue des enregistrements des règles du calendrier associée à une relation un-à-plusieurs à l’instance d’entité.- Relation Calendar.CalendarRules : calendar_calendar_rules - Relation Service.CalendarRules : service_calendar_rules |
PartyListType | Les attributs suivants permettent de définir plusieurs EntityReference pour différents types d’activités. ActivityPointer.allparties Appointment.OptionalAttendees Appointment.Organizer Appointment.requiredattendees CampaignActivity.from CampaignActivity.Partners CampaignResponse.Customer CampaignResponse.from CampaignResponse.Partner Email.bcc Email.cc Email.from Email.to Fax.from Fax.to Letter.bcc Letter.cc Letter.from Letter.to PhoneCall.from PhoneCall.to RecurringAppointmentMaster.OptionalAttendees RecurringAppointmentMaster.Organizer RecurringAppointmentMaster.RequiredAttendees ServiceAppointment.Customers ServiceAppointment.Resources SocialActivity.From SocialActivity.Resources SocialActivity.To |
Attribut des données de date et heure.
Attributs avec la valeur AttributeTypeName
de métadonnées de DateTimeType
. Définissez ces attributs avec System.DateTime
.
La propriété DateTimeAttributeMetadata.Format peut être une des valeurs DateTimeFormat suivantes :
DateAndTime
: affiche la date et l’heure.DateOnly
: affiche la date uniquementLes attributs personnalisés Date et Time peuvent être définis comme attributs calculés ou attributs de report. Pour plus d’informations : Attributs calculés et de report.
Attributs des données d’image
Pour les entités prenant en charge les attributs d’image, le SchemaName de l’attribut d’image de l’entité est toujours EntityImage
.
En savoir plus : Attributs d’image, Images d’entité et Exemple : Définir et récupérer des images d’entité.
Attributs de données de quantité
Les attributs de cette catégorie utilisent des données numériques. Chacun de ces attributs possède une propriété de métadonnées MaxValue
et MinValue
pour définir une plage de valeurs valides.
Les attributs personnalisés Decimal, Integer et Money peuvent être définis comme attributs calculés ou attributs de report. Pour plus d’informations : Attributs calculés et de report.
Type de métadonnées | Valeur AttributeTypeName | Description |
---|---|---|
BigIntAttributeMetadata | BigIntType | Les attributs sont réservés à une utilisation interne uniquement. |
DecimalAttributeMetadata | DecimalType | Utilisez les valeurs de type decimal. La propriété de métadonnées Precision définit la précision à utiliser pour l’attribut. |
DoubleAttributeMetadata | DoubleType | Utilisez les valeurs de type double. La propriété de métadonnées Precision définit la précision à utiliser pour l’attribut. |
IntegerAttributeMetadata | IntegerType | Utilisez les valeurs de type int (entier). |
MoneyAttributeMetadata | MoneyType | Utilisez Money qui possède une propriété decimal``Value .Chaque attribut Money possède un attribut de devise monétaire de base calculé par le système correspondant et qui est utilisée pour calculer la valeur de la devise de base de l’organisation lorsque plusieurs devises ont été autorisées pour l’organisation. La propriété IsBaseCurrency identifie si l’attribut Money représente la devise de base. Pour plus d’informations : Entité Transaction Currency (devise). Les attributs Money ont également une propriété de métadonnées PrecisionSource qui peut spécifier le niveau de précision à utiliser. La valeur entière de cette propriété détermine si : - 0 : la précision est déterminée par la propriété des métadonnées Precision. - 1 : la valeur Organization.PricingDecimalPrecision .- 2 : la TransactionCurrency.CurrencyPrecision associée à l’enregistrement actif. |
Attributs des données de référence
Ces attributs sont communément mentionnés comme attributs de recherche et chacun d’eux contient une valeur EntityReference. La différence entre ces attributs concerne les types d’entités auxquels ils peuvent s’associer. La propriété de métadonnées Targets contient un String[]
contient des noms logiques d’entité valides représentant les cibles valides pour la recherche. Les attributs de recherche personnalisés peuvent avoir un seul type dans la propriété Targets
.
Les PartyListType
représentent également un type d’attribut de données de référence, mais comme ils contiennent un ensemble de références, ils sont inclus dans les Attributs de collection de données.
Type de métadonnées | Valeur AttributeTypeName | Description |
---|---|---|
LookupAttributeMetadata | CustomerType | Ces attributs de recherche système peuvent se lier aux enregistrements d’entité Account ou Contact. Contact.ParentCustomerId Contract.BillingCustomerId Contract.CustomerId ContractDetail.CustomerId CustomerOpportunityRole.CustomerId CustomerRelationship.CustomerId CustomerRelationship.PartnerId Entitlement.CustomerId Incident.CustomerId Invoice.CustomerId Lead.CustomerId Opportunity.CustomerId Quote.CustomerId SalesOrder.CustomerId SocialActivity.PostAuthor SocialActivity.PostAuthorAccount SocialProfile.CustomerId |
LookupAttributeMetadata | LookupType | Ces attributs de recherche peuvent être utilisés pour définir des références à un enregistrement du type indiqué par la propriété de métadonnées Targets. Certaines recherches système n’ont pas de valeur définie pour la propriété Targets , mais l’entité attendue doit être visible en fonction de la relation d’entité associée à la recherche. |
LookupAttributeMetadata | OwnerType | Ces recherches système sont toujours nommées OwnerId et chaque entité détenue par l’utilisateur en possède une. Elles peuvent faire référence à des enregistrements SystemUser ou Team. |
Attributs des données de chaîne
Il existe deux types d’attributs qui utilisent les données de chaîne.
Type de métadonnées | Valeur AttributeTypeName | Description |
---|---|---|
StringAttributeMetadata | StringType | Un attribut pour une valeur de chaîne à laquelle une mise en forme peut être appliquée. Pour plus d’informations : Formats StringAttributeMetadata. Les attributs String personnalisés peuvent être définis comme attributs calculés. Pour plus d’informations : Attributs calculés. |
MemoAttributeMetadata | MemoType | Un attribut pour une valeur de chaîne conçu pour les notes. Cet attribut est équivalent aux attributs String avec la valeur de propriété FormatName définie sur TextArea . |
Attributs de données d’identificateur unique
Les attributs avec la valeur AttributeTypeName
de métadonnées égale à UniqueidentifierType
contiennent des valeurs Nullable System.Guid.
Chaque instance d’entité comprend un attribut qui représente l’identificateur unique de l’enregistrement. Cet attribut a un nom de schéma qui suit la convention de dénomination <entity schema name>+ID. Par exemple, l’entité Compte dont le nom de schéma pour l’attribut représentant l’identifiant unique est nommé AccountId
. Cette valeur est aussi directement accessible avec la propriété Entity.Id. Cet attribut est toujours renvoyé lorsque vous récupérez une entité, même si vous ne l’incluez pas dans le ColumnSet d’une requête. Cette valeur est null pour une entité nouvellement instanciée. Même si elle est valide pour spécifier une valeur GUID et définir l’identificateur unique lorsque vous créez un enregistrement, pour des raisons de performances, nous vous recommandons de la laisser comme null et d’autoriser le système à attribuer une valeur quand l’enregistrement est créé. Lorsqu’un enregistrement est enregistré, cette valeur devient en lecture seule.
Les entités peuvent inclure d’autres attributs d’identificateur unique, selon les fonctionnalités de l’entité. Par exemple, les entités activées pour les processus métier contiennent des attributs d’identificateur unique pour ProcessId
et StageId
afin de suivre le processus métier actif associé à l’enregistrement. Certaines relations système peuvent généralement utiliser une valeur d’EntityReference utilisent à la place un identificateur unique. Par exemple les entités Account et Contact ont chacune deux attributs d’identificateur unique (Address1_AddressId
et Address2_AddressId
) qui correspondent aux enregistrements CustomerAddress créés lorsqu’un compte ou un contact est créé.
Attributs virtuels
Les métadonnées d’une entité incluent certains attributs avec la valeur AttributeTypeName
de métadonnées de VirtualType
. Ces attributs ne peuvent pas être utilisés dans le code.
Attributs logiques
Les attributs logiques contiennent des valeurs stockées dans des tables de base de données différentes de celles des autres attributs de l’entité. Dans la plupart des cas, cette implémentation interne n’est pas pertinente pour travailler avec Dynamics 365 Customer Engagement (on-premises). Lorsque vous utilisez des attributs logiques comme source pour un champ calculé, les valeurs de ce champ calculé ne peuvent pas être triées. Utilisez la propriété AttributeMetadata.IsLogical pour détecter si un attribut est un attribut logique.
Les attributs logiques les plus courants sont ceux qui stockent les informations d’adresse dans plusieurs entités spéciales : CompetitorAddress, CustomerAddress, InternalAddress, LeadAddress et PublisherAddress. Il existe huit entités système qui incluent un ensemble complet d’attributs pour les deux adresses utilisant des attributs logiques. Chacun de ces attributs commence par « Address* », comme Address1_City ou Address2_Latitude.
Voir aussi
Présentation des entités dans Dynamics 365 Customer Engagement (on-premises)
Attributs d’image
Attributs calculés et attributs de report
Exemple : Récupérer les transitions d’état valides
Exemple : Définir et récupérer des images d’entité