Cloud Software Group, Inc. EBX®
Documentation > Guide utilisateur > Modèles de données > Implémentation des modèles de données
Mode navigation Documentation > Guide utilisateur > Modèles de données > Implémentation des modèles de données

# Propriétés des éléments du modèle de données

Après avoir créé un élément, il est possible de définir des propriétés supplémentaires pour compléter sa définition.

##### Voir aussi

- Contrôles sur les éléments du modèle de données

## Propriétés basiques des éléments

### Propriétés basiques communes

Les propriétés basiques suivantes sont disponibles pour plusieurs types d'éléments :

Information | Informations supplémentaires non internationalisées associées à l'élément.
Nombre minimum de valeurs | Nombre minimum de valeurs pour cet élément. Les clés primaires ne pouvant être multi-valuées, cette propriété doit être égale à "1" ou être "non définie". Pour les éléments de type "Noeud de sélection", le nombre minimum est automatiquement défini à "0".
Nombre maximum de valeurs | Nombre maximum de valeurs pour cet élément. Si cette propriété est supérieure à "1", l'élément est considéré comme multi-valué. Les clés primaires ne pouvant être multi-valuées, cette propriété doit être égale à "1" ou être "non définie". Pour une table, le nombre maximum d'éléments est défini à "unbounded" par défaut lors de sa création. Pour les éléments de type "Noeud de sélection", le nombre maximum d'éléments est défini à "0" par défaut lors de la définition des propriétés du noeud de sélection.
Règles de validation | Cette propriété est disponible pour les champs situés dans une table, sauf pour les champs de type `Mot de passe`, les types réutilisables, les champs des types complexes réutilisables et les noeuds de sélection. Cette propriété est utilisée pour définir des règles de validation riches et complexes à l'aide d'un éditeur de prédicats XPath 1.0. Voir éditeur de prédicats. Une règle de validation peut être utile lorsque la validation de la valeur dépend de critères complexes ou des valeurs d'autres champs. Il est aussi possible d'indiquer qu'une règle de validation définit des conditions sous lesquelles la valeur d'un champ est obligatoire. La valeur du champ est obligatoire si les critères de la règle ne sont pas respectés. Voir Contraintes sur valeurs "null" pour plus d'informations. En utilisant l'assistant associé, il est possible de définir des libellés localisés pour la règle de validation, ainsi qu'un message localisé avec la sévérité qui s'affichera si le critère n'est pas satisfait. Il est possible d'indiquer si la règle doit toujours être valide ou non lorsqu'un utilisateur soumet un formulaire. Cette option est uniquement disponible sur les règles de validation définies par un champ et lorsque la sévérité du message est définie à "erreur". Si les erreurs de validation ne sont pas autorisées, alors toutes les saisies qui rendraient la règle invalide seront rejetées et les données seront non modifiées. Si les erreurs de validation sont autorisées alors toutes les saisies qui rendraient la règle invalide seront acceptées et les données seront modifiées. Si cette propriété n'est pas spécifiée, alors la règle bloquera uniquement les erreurs lors de la soumission d'un formulaire. Si une règle de validation est définie sur un champ de type table, alors cette règle sera considérée comme une "contrainte sur table" et sera exécutée sur chaque enregistrement de la table. Voir Contraintes sur table pour plus d'informations.

### Propriétés basiques des champs

Les propriétés basiques suivantes sont spécifiques aux champs simples :

Valeur par défaut | Définit une valeur par défaut pour ce champ. Cette valeur sera insérée automatiquement dans le champ de saisie du formulaire de création des nouveaux enregistrements. Le type de la valeur par défaut doit être compatible avec le type du champ courant. Voir Valeur par défaut pour plus d'informations.
Message d'erreur de conversion | Messages d'erreur internationalisés affichés aux utilisateurs lors de la saisie d'une valeur qui n'est pas compatible avec le type du champ courant.
Règle de calcul | Cette propriété est disponible pour les champs des tables, excepté pour les types réutilisables. Définit une règle de calcul pour la valeur du champ avec l'aide d'un éditeur de prédicats XPath 1.0. Voir Editeur de prédicats pour plus d'informations. Une règle de calcul peut être utile lorsqu'une valeur dépend d'autres valeurs dans le même enregistrement, mais qu'un calcul programmatique n'est pas nécessaire. Les limitations suivantes existent pour les règles de calcul : Les règles de calcul s'utilisent uniquement avec les champs simples d'une table. Les règles de calcul ne peuvent pas être définies sur des champs du type `OResource` ou `Password`. Les règles de calcul ne peuvent pas être définies sur les noeuds de sélection ni les champs clés primaires. Les règles de calcul ne peuvent pas être définies en accédant à l'élément depuis le rapport de validation.

## Propriétés avancées des éléments

### Propriétés avancées communes

Les propriétés avancées suivantes sont disponibles pour plusieurs types d'éléments :

Affichage par défaut et outils > Visibilité | Cette section permet d'indiquer si cet élément doit être affiché dans la vue par défaut d'un jeu de données, dans l'outil de recherche textuelle d'un jeu de données, ou dans l'opération "select" d'un service de données. Ces propriétés sont ignorées si elles sont définies sur un élément qui n'est pas dans une table. Vue dirigée par le modèle Indique si l'élément courant doit être affiché ou non dans la vue par défaut d'un jeu de données, la vue tabulaire par défaut d'une table et le formulaire par défaut associé aux enregistrements d'une table. La vue par défaut d'un jeu de données, la vue tabulaire par défaut d'une table, et le formulaire par défaut associé aux enregistrements d'une table respectent la structure du jeu de données ou de la table définie dans le modèle de données. Lorsque la propriété "Caché" est sélectionnnée, l'élément courant ne sera pas affiché dans la vue par défaut d'un jeu de données si l'élément courant est une table. Lorsque la propriété "Caché" est sélectionnnée, l'élément courant ne sera pas affiché dans la vue tabulaire par défaut et le formulaire par défaut associé aux enregistrements d'une table si l'élément courant est dans une table. L'élément courant sera cependant affiché dans l'assistant de création de vues tabulaires et hiérarchiques. Il sera donc possible de créer une vue personnalisée qui affichera l'élément courant. Si cette propriété n'est pas renseignée, alors l'élément courant sera affiché par défaut. Cette propriété est ignorée si elle est définie sur un champ qui n'est ni une table, ni dans une table. Toutes les vues Lorsque la propriété 'Caché dans les vues' est sélectionnée, l'élément courant ne sera pas affiché dans les vues par défaut, tabulaires (vue par défaut incluse) ou hiérarchiques, d'une table d'un jeu de données. L'élément courant ne sera pas affiché dans l'assistant de création de vues tabulaires et hiérarchiques. Il ne sera donc pas possible de créer une vue personnalisée qui affichera l'élément courant. Cette propriété concerne uniquement les vues. L'élément courant sera donc affiché dans le formulaire d'un enregistrement si la propriété 'Caché dans les vues' est sélectionnée. Cette propriété est ignorée si elle est définie sur un champ hors d'une table. Recherche structurée Lorsque la propriété "Caché dans la recherche structurée" est sélectionnée, l'élément courant ne sera pas affiché uniquement dans l'outil de recherche typée d'un jeu de données. Cet élément sera tout de même pris en compte dans l'outil de recherche rapide. Si ces propriétés concernant les recherches ne sont pas renseignées, alors l'élément courant sera affiché par défaut dans l'outil de recherche typée d'un jeu de données. Cette propriété est ignorée si elle est définie sur un champ hors d'une table. Recherche rapide Lorsque la propriété "Exclu de la recherche rapide" est sélectionnée, l'élément courant ne sera pas pris en compte uniquement dans l'outil de recherche rapide d'une table. Cet élément sera tout de même pris en compte dans l'outil de recherche structurée. Si ces propriétés concernant les recherches ne sont pas renseignées, alors l'élément courant sera par défaut pris en compte dans la recherche rapide. Cette propriété est ignorée si elle est définie sur un champ hors d'une table. Services de données Lorsque la propriété "Exclu dans les Data Services" est sélectionnnée, l'élément courant ne sera pas inclus lors de l'opération "select" d'un data service. Cette propriété est ignorée si elle est définie sur un champ hors d'une table. Voir Default view dans le Guide du développeur.
Affichage par défaut et outils > Widget | Définit le widget à utiliser. Un widget est un composant de saisie qui est affiché dans les formulaires contenus dans les jeux de données associés. Si aucun widget n'est défini, alors un widget par défaut sera affiché dans les jeux de données associés. Ce widget par défaut est défini à partir du type et des propriétés de l'élément courant. Il est possible d'utiliser un widget natif ou un widget personnalisé. Un widget personnalisé est défini en utilisant une API Java. Cette API Java permet de développer des composants de saisie riche pour des champs ou des groupes. Les widgets natifs et personnalisés ne peuvent pas être définis sur une table et une association. Il est interdit de définir en même temps un widget personnalisé et un UI bean. Sur un champ de type clé étrangère, il est interdit de définir en même temps un widget personnalisé et un sélecteur de combo box. Voir `UIWidgetFactory` pour plus d'informations.
Affichage par défaut et outils > Sélecteur combo box | Définit le nom de la vue publiée utilisée dans le menu de sélection de la clé étrangère. Un bouton de sélection sera affiché en bas à droite de la liste déroulante du menu de sélection. Lors de la définition d'une clé étrangère, cette fonctionnalité permet d'accéder à une vue de sélection avancée en cliquant sur le bouton 'Sélecteur' qui ouvre la vue de sélection avancée, permettant ainsi d'utiliser les options de tri et de recherche. Si aucune vue publiée n'a été définie, la vue de sélection avancée sera désactivée. Si le chemin de la table référencée est absolu, alors seules les vues publiées correspondant à cette table seront affichées. Si le chemin de la table référencée est relatif, alors toutes les vues associées au modèle de données contenant la table cible seront affichées. Cette propriété ne peut pas être utilisée si un widget personnalisé est défini. Voir Defining a view for the combo box selector of a foreign key dans le Guide du développeur.
UI bean | ##### Attention Depuis la version 5.8.0 de TIBCO EBX®, il est recommandé d'utiliser les widgets personnalisés à la place des UI beans. Les widgets personnalisés proposent plus de fonctionnalités que les UI beans. Plus d'évolutions seront apportées aux UI Beans. Voir widget pour plus d'informations. Cette propriété est disponible pour tous les types d'éléments, excepté les tables. Spécifie une classe Java permettant de personnaliser l'interface utilisateur associée à cet élément dans un jeu de données. Un UI bean peut afficher l'élément différemment et/ou modifier sa valeur en étendant la classe `UIBeanEditor` dans l'API Java.
Transformation à l'export | Cette propriété est disponible pour les champs et pour les groupes qui sont des noeuds terminaux. Spécifie une classe Java définissant des opérations de transformation à effectuer lors de la création d'une archive à partir d'un jeu de données associé. La transformation à effectuer porte sur la valeur de l'élément courant. Voir `NodeDataTransformer` pour plus d'informations.
Propriétés d'accès | Définit le mode d'accès pour l'élément courant, à savoir : s'il peut être écrit et/ou lu. "Lecture & Ecriture" correspond au mode `RW` dans le XSD du modèle de données. "Lecture seule" correspond au mode `R-` dans le XSD du modèle de données. "Elément hors d'un jeu de données" correspond au mode `CC` dans le XSD du modèle de données. "Noeud non terminal" correspond au mode `--` dans le XSD du modèle de données. Voir Access properties dans le Guide du développeur.
Catégorie du noeud | Définit les catégories permettant de restreindre la visualisation des données. Un noeud de catégorie "Hidden" est caché par défaut dans un jeu de données. Restriction : la définition de catégorie ne s'applique pas aux noeuds d'enregistrement de tables, à l'exception de la catégorie "Hidden". Voir Categories dans le Guide du développeur.
Mode de comparaison | Définit un mode de comparaison pour l'élément. Ce mode permet de restreindre la comparaison des données associées à l'élément. "Défaut" implique que l'élément est pris en compte lors de la comparaison de données. "Ignoré" implique qu'aucune modification ne sera détectée lors de la comparaison de deux entités modifiées (jeux de données ou enregistrements). Lors de la fusion de données, les valeurs des éléments ignorés dans des jeux de données ou enregistrements modifiés ne sont pas fusionnées. Les valeurs contenues dans de nouveaux jeux de données ou enregistrements sont fusionnées. Lors de l'import d'une archive, les valeurs des éléments ignorés dans des jeux de données ou enregistrements modifiés ne sont pas importées. Les valeurs contenues dans de nouveaux jeux de données ou enregistrements sont importées. Voir Comparison mode dans le Guide du développeur.
Règle d'application des dernières modifications | Indique si cet élément doit être inclus ou non dans le service permettant d'appliquer à d'autres enregistrements de la même table les dernières modifications effectuées. "Défaut" indique que la dernière modification effectuée sur cet élément peut être appliquée à d'autres enregistrements. "Ignoré" indique que la dernière modification effectuée sur cet élément ne peut pas être appliquée à d'autres enregistrements. Cet élément ne sera pas visible dans le service permettant d'appliquer les dernières modifications. Voir Apply last modifications policy dans le Guide du développeur.

### Propriétés avancées des champs

Les propriétés avancées suivantes sont spécifiques aux champs.

#### Contrôle de saisie sur valeur nulle

Implémente la propriété `osd:checkNullInput`. Cette propriété est utilisée pour activer et vérifier une contrainte sur valeur `null` lors de la saisie utilisateur.

Par défaut, pour permettre une saisie temporairement incomplète, la validation des éléments obligatoires est effectuée, non pas lors de la saisie utilisateur, mais pendant la validation du jeu de données. Si un élément obligatoire doit être vérifié immédiatement lors de la saisie utilisateur, cette propriété doit avoir la valeur "oui".

##### Note

Une valeur est considérée comme obligatoire si le "Nombre minimum de valeurs" est égal ou supérieur à "1". Pour les éléments terminaux, les valeurs obligatoires sont seulement vérifiées dans les jeux de données activés. Pour les éléments non terminaux, les valeurs sont vérifiées indépendamment de l'état d'activation du jeu de données.

Voir Constraints, triggers and functions dans le Guide utilisateur.

#### Supprimer espaces

Supprimer espaces

Implémente la propriété osd:trim. Cette propriété permet d'indiquer si les espaces avant ou après une valeur doivent être supprimés lors de la saisie utilisateur. Si cette propriété n'est pas définie, alors les espaces avant ou après une valeur seront supprimés par défaut lors de la saisie utilisateur.

Voir Whitespace handling upon user input dans le Guide utilisateur.

#### UI bean

Voir Propriétés avancées communes.

#### Fonction (valeur calculée)

Cette propriété est disponible pour les champs qui ne sont pas des clés primaires. Elle spécifie une classe Java permettant de calculer la valeur de ce champ programmatiquement. Peut être utile si la valeur de ce champ dépend d'autres valeurs dans le référentiel, ou si le calcul de la valeur doit récupérer des données depuis un système externe.

Une fonction peut être créée en implémentant l'interface `ValueFunction`.

#### Désactiver validation

Indique si les contraintes définies sur le champ doivent être désactivées. Cette propriété peut uniquement être définie sur des champs calculés. Si "oui", les contraintes simples, avancées et de cardinalité ne seront pas exécutées lors de la validation des jeux de données associés au modèle de données.

#### Transformation à l'export

Voir Propriétés avancées communes.

#### Propriétés d'accès

Voir Propriétés avancées communes.

#### Auto-incrément

Cette propriété est disponible uniquement pour les champs de type "entier" contenus dans une table. Si elle est activée, la valeur du champ est calculée automatiquement lors de la création d'un nouvel enregistrement. Peut être utile pour les clés primaires, car l'auto-incrément génère un identifiant unique pour chaque enregistrement. Deux attributs peuvent être spécifiés :

Valeur de démarrage | Valeur initiale de l'auto-incrément. Si aucune valeur n'est définie, la valeur par défaut est "1".
Pas de l'incrément | La valeur ajoutée à la valeur précédente de l'auto-incrément. Si aucune valeur n'est définie, la valeur par défaut est "1".
Désactiver les contrôles de l'auto-incrément | Indique s'il faut désactiver le contrôle de la valeur d'un champ auto-incrémenté par rapport à la valeur maximale trouvée dans la table en cours de mise à jour.

Les valeurs auto-incrémentées ont le comportement suivant :

- Le calcul et l'allocation de la valeur de ce champ sont effectués dès qu'un nouvel enregistrement est inséré et que la valeur du champ est indéfinie.

- Aucune allocation ne peut être réalisée si l'insertion programmatique spécifie déjà une valeur différente de `null`. Par conséquent, cette allocation n'est pas effectuée à l'insertion d'un enregistrement en mode occultation ou réécriture.

- Si une archive importée spécifie cette valeur, alors elle est préservée.

- Une valeur nouvellement allouée est, autant que possible, unique au sein du référentiel.

  Plus précisément, le caractère unique de l'allocation s'étend à tous les jeux de données basés sur le modèle de données, et également à tous les espaces de données. Ce dernier cas de figure permet de fusionner un espace de données à son parent avec une garantie raisonnable d'absence de conflit lorsque la valeur auto-incrémentée fait partie des enregistrements d'une clé primaire.

  Ce principe a une limitation très spécifique : quand une opération majeure de mise à jour spécifiant des valeurs est réalisée en simultané d'une opération allouant une valeur au même champ, il est possible que cette dernière opération alloue une valeur qui sera fixée par la première opération (il n'y a pas de verrouillage entre plusieurs espaces de données).

Voir Auto-incremented values dans le Guide du développeur.

#### Affichage par défaut

Voir Propriétés avancées communes.

#### Catégorie du noeud

Voir Propriétés avancées communes.

#### Champ hérité

Définit une relation entre le champ courant et un champ dans une autre table afin de chercher sa valeur automatiquement.

Enregistrement source | Une clé étrangère ou une séquence de clés étrangères, séparées par des espaces, permettant de trouver l'enregistrement dont hérite le champ courant. Si cette propriété n'est pas renseignée, alors l'élément courant sera utilisé comme source d'héritage de champ.
Élément source | Chemin XPath définissant l'élément à hériter. L'élément source doit être terminal, se trouver dans "Enregistrement source", et son type doit être le même que le type de ce champ. Cette propriété est obligatoire pour l'héritage de champ.

Voir héritage dans le glossaire.

Pour plus d'informations, voir aussi Inherited fields.

### Propriétés avancées des tables

Les propriétés avancées suivantes sont spécifiques aux tables.

#### Table

Clé primaire | Liste des champs composant la clé primaire de la table. Il est possible d'ajouter ou de supprimer des champs de la clé primaire. Chaque champ de la clé est identifié par un chemin XPath absolu qui débute sous la table. Si la clé est composite, la liste des champs doit être séparée par des espaces. Par exemple, "/name /startDate".
Présentation | Spécifie la manière dont les enregistrements de cette table sont affichés dans l'interface utilisateur dans les jeux de données associés.
Labellisation des enregistrements | Définit les champs composant le libellé par défaut et les libellés localisés pour les enregistrements de la table. Peut aussi définir une classe Java pour affecter le libellé programmatiquement, ou définir le libellé dans une hiérarchie. Cette classe Java doit implémenter l'interface `UILabelRenderer` ou `UILabelRendererForHierarchy` de l'API Java. Attention : Les droits d'accès définis dans les jeux de données associés ne sont pas appliqués lors de l'affichage des libellés. Les champs habituellement cachés à cause de droits d'accès seront affichés dans les libellés des enregistrements.
Présentation par défaut des groupes dans un formulaire | Spécifie la politique d'affichage par défaut des groupes contenus dans cette table. Si cette propriété n'est pas définie, alors la politique par défaut sera utilisée pour afficher les groupes. Voir Record form: rendering mode for nodes dans le Guide d'administration. Présentation activée des groupes : spécifie un mode de présentation autorisé en complément de "Développé" et "Réduit", qui sont toujours disponibles. Les liens doivent être activés sur la table afin de définir spécifiquement le mode de présentation des groupes en tant que liens. Présentation par défaut des groupes : spécifie la présentation par défaut des groupes contenus dans cette table. Si un groupe ne spécifie aucune vue par défaut, alors le mode de présentation par défaut défini par cette table sera utilisé. En fonction des performances du réseau et du navigateur, ajustez la manière d'afficher chaque groupe du formulaire. En ce qui concerne le poids de la page téléchargée, le mode "Lien" est léger, les modes "Développé" et "Réduit" sont plus lourds. Note : quand les onglets sont activés dans une table, tous les groupes qui utiliseraient les liens dans les autres cas sont convertis automatiquement en mode "Réduit". Cela permet d'éviter les complexités d'affichage qui se posent quand les liens et les onglets sont dans la même interface utilisateur.
Présentation spécifique d'un formulaire | Définit une présentation spécifique pour personnaliser le formulaire d'un enregistrement dans les jeux de données associés. Voir `UIForm` et `UserServiceRecordFormFactory` pour plus d'informations.
Barres d'outils | Définit les barres d'outils à afficher dans la table. Les barres d'outils peuvent être consultées et modifiées dans la section Configuration > Barre d'outils. Entête de table: Définit la barre d'outils à afficher en entête de la vue table par défaut. Ligne de table: Définit la barre d'outils à afficher pour chaque item de la vue table par défaut. Item de la vue tuiles: Définit la barre d'outils à afficher pour chaque item de la vue tuiles. Entête de formulaire: Définit la barre d'outils à afficher en entête du formulaire d'un enregistrement. Entête de hiérarchie: Définit la barre d'outils à afficher en entête de la hiérarchie par défaut de la table. Voir Barre d'outils pour plus d'informations.
Historisation | Spécifie si l'historisation est activée, et le niveau de garantie demandé. Les profils d'historisation peuvent être modifiés dans la section Administration > Historique et journaux. Voir Configuration de l'historique dans le référentiel pour plus d'informations.
Filtres spécifiques | Définit des filtres pour afficher uniquement les enregistrements correspondant à certains critères.
Actions | Indique les actions autorisées ou interdites dans le contexte d'un jeu de données. Toutes les actions sont autorisées par défaut, cependant des droits d'accès peuvent être définis dans les jeux de données associés pour restreindre ces actions.

#### Contraintes d'unicité

Indique les champs dont les valeurs doivent être uniques dans la table.

#### Triggers à la mise à jour

Spécifie des classes Java définissant des méthodes exécutées automatiquement lorsque des opérations sont effectuées : création, mise à jour, suppression, etc.

Un trigger natif est inclus par défaut pour lancer les workflows de données.

Un trigger natif est inclus par défaut pour définir un script de trigger pour la table.

Voir Triggers dans le Guide du développeur.

#### Propriétés d'accès

Voir Propriétés avancées communes.

#### Affichage par défaut

Voir Propriétés avancées communes.

#### Catégorie du noeud

Voir Propriétés avancées communes.

### Propriétés avancées des groupes

Les propriétés avancées suivantes sont spécifiques aux groupes.

#### Classe du conteneur de valeurs (JavaBean)

Définit une classe Java pour contenir les valeurs des éléments situés sous le groupe. La classe Java spécifiée doit être conforme à la spécification JavaBean. Cela signifie que chaque élément enfant de ce groupe doit correspondre à une propriété de la classe Java. Toutes les propriétés de la classe Java doivent avoir des méthodes d'accès (getters et setters).

#### UI bean

Voir Propriétés avancées communes.

#### Transformation à l'export

Voir Propriétés avancées communes.

#### Propriétés d'accès

Voir Propriétés avancées communes.

#### Affichage par défaut

Visibilité | Voir Propriétés avancées communes.
Présentation | Définit la manière dont ce groupe sera présenté dans un jeu de données. Si cette propriété n'est pas définie, alors la vue par défaut définie par la table parente sera utilisée. Les options "Onglet" et "Lien" sont disponibles uniquement si la table parente a activé ces options de présentation. Propriétés de l'onglet Position: Cet attribut spécifie la position de l'onglet par rapport à tous les onglets définis dans le modèle. Cette position est utilisée pour ordonnancer la liste des onglets au moment de l'affichage d'un formulaire. Si cette propriété n'est pas définie, alors l'onglet sera positionné en fonction de la position du groupe dans le modèle de données.

#### Catégorie du noeud

Voir Propriétés avancées communes.

##### Concepts apparentés

- Contrôles sur les éléments du modèle de données

Sommaire du guide utilisateur

Documentation > Guide utilisateur > Modèles de données > Implémentation des modèles de données