Partager via


Définitions de colonne

Les tables incluent un ensemble de colonnes qui représentent les données pouvant être incluses dans chaque enregistrement. Les développeurs doivent connaître les différents types de colonnes et savoir les utiliser.

Noms de colonnes

À l’instar des tables, chaque colonne dispose d’un nom unique défini à sa création. Ce nom est présenté de différentes façons :

Nom  Description
SchemaName Généralement une version du nom logique Pascal. Par exemple : AccountNumber
LogicalName Tous les noms en lettres minuscules. Par exemple : accountnumber

Lorsque vous créez une colonne personnalisée, le nom que vous choisissez est ajouté à la valeur de préfixe de personnalisation de l’éditeur de solutions associé à la solution avec laquelle la colonne a été créée.

Vous ne pouvez pas modifier les noms d’une colonne après sa création.

Chaque colonne a désormais deux propriétés qui peuvent afficher des valeurs localisées. Voici les valeurs qui sont utilisées pour faire référence aux colonnes dans une application.

Nom  Description
DisplayName Généralement, il est identique au nom du schéma, mais il peut inclure des espaces. Par exemple : Numéro de compte
Description Une courte phrase décrivant la colonne ou fournissant des instructions à l’utilisateur. Par exemple : Tapez un numéro d’identification pour le compte pour le rechercher et l’identifier dans les vues système.
Dans les applications basées sur un modèle, ces informations s’affichent lorsque les utilisateurs passent le curseur de la souris sur le champ pour cette colonne dans un formulaire.

Voici les valeurs localisables qui sont utilisées pour faire référence aux colonnes dans une application. Ces valeurs peuvent être modifiées à tout moment. Pour ajouter ou modifier les valeurs localisées, consultez Traduire le texte de tables, de formulaires et de colonnes personnalisées dans d’autres langues.

Types de colonnes

La propriété AttributeTypeName décrit le type d’une colonne. Cette propriété contient une valeur de type AttributeTypeDisplayName qui fournit une Étiquette pour chacun des différents types de colonnes qui existent.

Notes

Ne soyez pas confus par la propriété AttributeType. Les valeurs de cette ancienne propriété sont principalement alignées avec AttributeTypeName, hormis le fait que celle-ci affiche les attributs ImageAttributeMetadata et MultiSelectPicklistAttributeMetadata comme Virtual. Reportez-vous à la propriété AttributeTypeName plutôt qu’à la propriété AttributeType.

Dans le tableau suivant :

  • Ces types sont regroupés en catégorie pour comparaison.
  • Pour chaque valeur AttributeTypeDisplayName, la classe issue de l’assembly .NET correspondant AttributeMetadata est incluse quand elle est disponible. Il n’existe pas de relation de type 1:1 entre ces types et l’étiquette AttributeTypeDisplayName.
  • Ces types de colonne qui peuvent être créés en tant que colonnes personnalisées incluent l’étiquette correspondante affichée dans l’interface utilisateur.
Catégorie AttributeTypeDisplayName/
Type AttributeMetadata
Can Create/
Étiquette
Description
Catégorisation BooleanType
BooleanAttributeMetadata
Oui
Deux options
Contient la valeur d’option sélectionnée à partir de Oui/Non qui indiquent généralement une valeur vraie ou fausse.
Pour plus d’informations : Choix
Catégorisation EntityNameType
EntityNameAttributeMetadata
Non Contient une valeur d’option qui correspond à une table dans le système. Réservé exclusivement à un usage interne.
Catégorisation MultiSelectPicklistType
MultiSelectPicklistAttributeMetadata
Oui
Groupe d’options de sélection multiple
Contient plusieurs valeurs d’options sélectionnées où il est possible de sélectionner plusieurs valeurs.
Pour plus d’informations :
Option
Colonnes de choix
Catégorisation PicklistType
PicklistAttributeMetadata
Oui
Groupe d’options
Contient la valeur sélectionnée où une option peut être sélectionnée.
Pour plus d’informations : Choix
Catégorisation StateType
StateAttributeMetadata
Non Contient la valeur d’option qui décrit le statut d’un enregistrement de table.
Pour plus d’informations : Choix
Catégorisation StatusType
StatusAttributeMetadata
Non Contient la valeur d’option qui décrit le statut d’un enregistrement de table.
Pour plus d’informations : Choix
Collection CalendarRulesType Non Contient un ensemble d’enregistrements de table CalendarRules.
Aucune colonne n’utilise ce type. Lorsque vous générez un proxy, l’outil de génération de code crée deux colonnes simulées, qui ne sont pas présents dans la définition. Ces colonnes représentent une vue des enregistrements des règles du calendrier associée à une relation un-à-plusieurs à l’enregistrement de table.
Collection PartyListType Non Contient un ensemble d’enregistrements de table ActivityParty.
Pour plus d’informations : Table ActivityParty
Date et heure DateTimeType
DateTimeAttributeMetadata
Oui
Date et heure
Contient une valeur de date et d’heure.
Toutes les colonnes de date et d’heure prennent en charge toutes les valeurs à partir du 01/01/1753 minuit.
File FileType
FileAttributeMetadata
Oui
Fichier
Contient les données pour prendre en charge l’extraction des données binaires d’image pour un enregistrement de table.
Pour plus d’informations : Utiliser les définitions de colonne de fichier avec du code
Image ImageType
ImageAttributeMetadata
Oui
Image
Contient les données pour prendre en charge l’extraction des données d’image pour un enregistrement de table.
Pour plus d’informations : Images d’entité
Propriété gérée ManagedPropertyType
ManagedPropertyAttributeMetadata
Non Contient les données qui décrivent si le composant de solution stocké dans l’enregistrement de table peut être personnalisé une fois inclus dans une solution gérée.
Pour plus d’informations : Propriétés gérées
Quantité BigIntType
BigIntAttributeMetadata
Oui Contient une valeur BigInt.
Quantité DecimalType
DecimalAttributeMetadata
Oui
Nombre décimal
Contient une valeur Decimal. La propriété Precision définit le niveau de la précision.
Quantité DoubleType
DoubleAttributeMetadata
Oui
Nombre à virgule flottante
Contient une valeur Double. La propriété Precision définit le niveau de la précision.
Quantité IntegerType
IntegerAttributeMetadata
Oui
Nombre entier
Contient une valeur Int
Quantité MoneyType
MoneyAttributeMetadata
Oui
Devise
Contient une valeur Decimal. La propriété PrecisionSource détermine le lieu où le niveau de la précision est défini.
0 : La propriété Precision
1 : La colonne Organization.PricingDecimalPrecision
2 : La colonne TransactionCurrency.CurrencyPrecision de l’enregistrement de la table
Référence CustomerType
LookupAttributeMetadata
Oui
Client
Contient une référence à un enregistrement de la table de contact ou de compte.
Référence LookupType
LookupAttributeMetadata
Oui
Recherche
Contient une référence à un enregistrement de table. Les noms logiques des enregistrements valides sont généralement stockés dans la propriété Targets de la colonne.
Référence OwnerType
LookupAttributeMetadata
Non Contient une référence à un enregistrement de la table d’utilisateur ou d’équipe.
String MemoType
MemoAttributeMetadata
Oui
Plusieurs lignes de texte
Contient une valeur de chaîne destinée à être affichée dans une zone de texte avec plusieurs lignes.
String StringType
StringAttributeMetadata
Oui
Une seule ligne de texte
Contient une valeur de chaîne destinée à être affichée dans une zone de texte avec une seule ligne.
Identificateur unique UniqueidentifierType
UniqueIdentifierAttributeMetadata
Non Contient une valeur d’identificateur GUID.
Virtual VirtualType Non Ces colonnes ne peuvent pas être utilisées dans le code et peuvent généralement être ignorées.

Opérations prises en charge et utilisation de formulaire pour les colonnes

Chaque colonne comprend des propriétés booléennes qui décrivent les types d’opérations auxquels il peut participer et comment il peut être dans un formulaire.

Property Description
IsRequiredForForm Indique si la colonne doit être incluse dans un formulaire
IsValidForCreate Si la valeur de colonne peut être définie dans une opération de création
IsValidForForm Si la colonne peut être incluse comme colonne dans un formulaire
IsValidForRead Si la valeur de colonne peut être récupérée
IsValidForUpdate Si la valeur de colonne peut être définie dans une opération de mise à jour

Si vous essayez de définir une valeur dans une opération de type créer ou mettre à jour pour une colonne qui n’est pas valide pour cette opération, la valeur est ignorée. Si vous essayez de récupérer une colonne qui n’est pas valide pour lecture, une valeur de type null est renvoyée.

Niveau de besoin en colonnes

La propriété RequiredLevel est une propriété booléenne gérée qui décrit si une valeur de colonne est requise.

Cette propriété peut avoir les valeurs suivantes définies :

Nom Value Étiquette d’interface utilisateur Description
None 0 Facultatif Aucune exigence n’est spécifiée.
SystemRequired 1 Système requis Dataverse exige de la colonne une valeur.
ApplicationRequired 2 Contrainte obligatoire L’application exige que la colonne ait une valeur.
Recommended 3 Contrainte recommandée Il est recommandé que la colonne ait une valeur.

Dataverse applique uniquement l’option SystemRequired pour les colonnes créées par le système. Les colonnes personnalisés ne peuvent pas être définies pour utiliser l’option SystemRequired. Dataverse ne renvoie pas d’erreur lorsqu’une colonne avec ApplicationRequired appliqué n’a pas de valeur.

Les applications pilotées par modèle appliquent l’option ApplicationRequired et utilisent une autre présentation pour l’option Recommended. Les créateurs des clients personnalisés peuvent utiliser ces informations pour exiger des options de présentation ou de validation identiques.

Puisque RequiredLevel est une propriété gérée, en tant qu’éditeur d’une solution gérée, vous pouvez décider si les consommateurs de votre solution sont en mesure de changer ces paramètres sur les colonnes de votre solution.

Pour plus d’informations : Propriétés gérées

Colonnes Formule, Cumulatives et Calculées

Les colonnes Formule, Cumulatives et Calculées sont essentielles, car elles dispensent l’utilisateur de devoir exécuter manuellement des calculs ; l’utilisateur peut ainsi se concentrer sur son travail. Les administrateurs systèmes peuvent définir une colonne pour contenir la valeur de la plupart des calculs courants sans avoir à collaborer avec un développeur. Les développeurs peuvent aussi utiliser les fonctionnalités de la plateforme pour effectuer ces calculs plutôt qu’au sein de leur propre code.

Pour plus d’informations :

Format de colonne

Les valeurs de format de colonne contrôlent comment il s’affiche dans les applications basées sur un modèle. Le développeur d’applications personnalisées peut utiliser ces informations pour créer des expériences similaires.

Formats d’entier

Utilisez la propriété Formatavec des colonnes de type entier pour afficher des expériences utilisateur secondaires pour ce type.

Option Description
None Affiche une zone de texte pour modifier une valeur numéraire
Duration Affiche une liste déroulante qui contient des intervalles de temps. Un utilisateur peut sélectionner une valeur dans la liste ou taper une valeur entière qui représente le nombre de minutes.
TimeZone Affiche une liste déroulante qui contient la liste des fuseaux horaires.
Language Affiche une liste déroulante qui contient la liste des langues qui ont été activées pour l’organisation. Si aucune autre langue n’a été activée, la langue de base est la seule option. La valeur enregistrée est la valeur LCID pour la langue.

Formats de chaîne

Utilisez la propriété FormatName avec des colonnes de chaîne pour définir les valeurs de la classe StringFormatName pour contrôler la façon dont la colonne de chaîne est formaté.

Nom  Description
Email La colonne de formulaire valide la valeur de texte comme adresse e-mail et crée un lien de messagerie dans la colonne.
PhoneNumber La colonne de formulaire contient un lien pour lancer des appels téléphoniques via Skype.
PhoneticGuide Réservé exclusivement à un usage interne.
Text Le formulaire affiche une zone de texte.
TextArea Le formulaire affiche une colonne de zone de texte.
TickerSymbol Le formulaire affiche un lien qui s’ouvre pour afficher un devis pour le symbole boursier.
URL Le formulaire affiche un lien pour ouvrir l’URL.
VersionNumber Réservé exclusivement à un usage interne.

Formats date et heure

La propriété DateTimeBehavior contrôle le comportement des colonnes date et heure. Il existe trois options :

Option Brève description
UserLocal Stocke la valeur de date et d’heure comme valeur UTC dans le système.
DateOnly Stocke dans le système la valeur de date finale avec la valeur d’heure, par exemple, minuit (00:00:00).
TimeZoneIndependent Stocke les valeurs de date et d’heure réelles dans le système quel que soit le fuseau horaire de l’utilisateur.

L’utilisation de la propriété Format permet de contrôler comment la valeur va s’afficher dans une application basée sur un modèle, peu importe le DateTimeBehavior.

Option Description
DateAndTime Affiche la date et l’heure
DateOnly N’affiche que la date.

Pour plus d’informations : Comportement et format de la colonne de date et d’heure

Colonnes de numérotation automatique

Vous pouvez ajouter une colonne de numérotation automatique pour n’importe quelle table. Pour le moment, vous pouvez ajouter la colonne par programme. Il n’existe aucune interface utilisateur pour ajouter ce type de colonne. Pour plus d’informations : Créer des colonnes numérotation automatique

Option

Ces colonnes qui affichent un ensemble d’options peuvent faire référence à un ensemble d’options définies par la colonne ou peuvent faire référence à un ensemble d’options distinct qui peuvent être partagées par une ou plusieurs colonnes. Cela est utile lorsque les valeurs dans une colonne s’appliquent également à d’autres colonnes. En référençant un ensemble d’options commun, les options peuvent être conservées dans un seul et même emplacement. Ces choix qui peuvent être partagés sont un choix global. Ceux définis dans la colonne un choix local.

Extraire les données d’options

Le SDK pour .NET propose des classes de demande que vous pouvez utiliser pour extraire les options utilisées par une colonne.

Utiliser le SDK pour .NET pour récupérer les options

Chacune des colonnes avec des options proviennent de EnumAttributeMetadata et inclut une propriété OptionSet. Cette propriété contient l’OptionSetMetadata qui inclut des options dans la propriété Options.

Avec le SDK pour .NET, vous pouvez utiliser les classes de requête suivantes pour récupérer des informations sur l’option :

Classe de demande Description
RetrieveAllOptionSetsRequest Récupère des données sur les options de type global
RetrieveAttributeRequest Récupère des données sur une colonne, y compris n’importe quel choix
RetrieveMetadataChangesRequest Récupère les métadonnées selon une requête qui peut inclure un choix
Pour plus d’informations : Interroger les définitions de schéma
RetrieveOptionSetRequest Récupère des données sur les options de type global.

Pour plus d’informations :

Utilisez l’API web pour récupérer les valeurs d’option

L’API web propose un style RESTful permettant d’interroger les valeurs des options. Vous pouvez récupérer le choix local ou global en récupérant la colonne dans une table. L’exemple suivant renvoie OptionSetMetadata pour les choix inclus dans Account.AccountCategoryCode.

GET <organization url>/api/data/v9.2/EntityDefinitions(LogicalName='account')/Attributes(LogicalName='accountcategorycode')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?$select=LogicalName&$expand=OptionSet

Avec l’API web, vous pouvez également utiliser la fonction RetrieveMetadataChanges.

Pour plus d’informations : Interroger les définitions de table à l’aide de l’API web > récupération des attributs

Mappage de colonne

Quand vous créez un enregistrement de table dans le contexte d’un enregistrement de table existant, vous pouvez transférer automatiquement certaines valeurs depuis l’enregistrement de table existant en tant que valeurs par défaut pour le nouvel enregistrement de table. Cela rationalise l’entrée des données pour les individus utilisant les applications basées sur un modèle. Les utilisateurs d’application voient les valeurs mappées et peuvent les modifier avant d’enregistrer l’entité.

Pour les développeurs créant des clients personnalisés, le même comportement peut être obtenu en utilisant le message InitializeFrom (kit de développement logiciel (SDK) classe InitializeFromRequest du service d’organisation ou la fonction InitializeFrom) de l’API web pour obtenir les données d’entité avec les valeurs définies par défaut.

Pour plus d’informations :

Colonnes logiques

Les colonnes logiques contiennent des valeurs stockées dans des tables de base de données différentes de celles des autres colonnes de la table. Dans la plupart des cas, cette implémentation interne n’est d’aucune utilité dans l’utilisation de Dataverse. Lorsque vous utilisez des colonnes 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.

Voir aussi

Tables Dataverse

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