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

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

Après la création d'un élément, complétez sa définition avec des contrôles supplémentaires.

##### Voir aussi

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

## Contrôles simples

Il est possible d'établir des contrôles simples sur le contenu d'un champ en définissant des contrôles statiques. Les contrôles disponibles dépendent du type du champ.

Longueur fixe | Nombre exact de caractères requis pour ce champ.
Longueur minimale | Nombre minimum de caractères requis pour ce champ.
Longueur maximale | Nombre maximum de caractères autorisés pour ce champ.
Pattern | Expression régulière à laquelle la valeur du champ doit être conforme. Il est interdit de définir un pattern à la fois sur un champ et sur son type de donnée.
Partie décimale | Nombre maximum de chiffres autorisés dans la partie décimale de la valeur d'un champ de type décimal.
Nombre maximum de chiffres | Nombre maximum de chiffres composant la valeur d'un champ de type entier ou décimal.
Énumération | Définit une liste de valeurs possibles pour ce champ. Si une énumération est définie à la fois sur ce champ et sur son type de données, alors une énumération représentant l'intersection entre ces deux énumérations sera utilisée dans les jeux de données associés au modèle de données.
Supérieur à [constante] | Définit la valeur minimale autorisée pour ce champ.
Inférieur à [constante] | Définit la valeur maximale autorisée pour ce champ.

Voir Facettes XML schema supportées.

## Contrôles avancés

Il est possible d'établir des contrôles avancés sur le contenu d'un élément en définissant des contrôles dynamiques contextuels. Les contrôles disponibles pour un élément dépendent de sa nature (table, groupe, etc.) et de son type de données.

##### Voir aussi

- Dynamic constraints

Contrainte de clé étrangère |
Table | Définit la table ciblée par la clé étrangère. Une clé étrangère référence une table dans le même jeu de données par défaut. Elle peut aussi référencer une table d'un autre jeu de données du même espace de données, ou un jeu de données d'un autre espace de données.
Mode | Emplacement de la table ciblée par la clé étrangère. "Défaut" : modèle courant. "Autre jeu de données" : jeu de données qui se trouve dans le même espace de données. "Autre espace de données" : jeu de données appartenant à un espace de données différent.
Table référencée | Expression XPath indiquant l'emplacement de la table. Par exemple, `/racine/MaTable`.
Jeu de données référencé | Obligatoire si la table est dans un autre jeu de données. Le nom unique du jeu de données contenant la table référencée.
Espace de données référencé | Obligatoire si la table est dans un autre espace de données. Nom unique de l'espace de données contenant la table référencée.
Libellé | Définit les champs composant un libellé par défaut et des libellés localisés pour présenter les enregistrements de la table cible. Peut aussi spécifier une classe Java qui définit le libellé programmatiquement quand "Expression XPath" a la valeur "Non". Cette classe Java doit implémenter l'interface `TableRefDisplay` 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.
Filtre | Définit un filtre de clé étrangère en utilisant une expression XPath. Peut aussi spécifier une classe Java qui implémente l'interface `TableRefFilter` de l'API Java.
Supérieur à [variable] | Définit un champ qui spécifie la valeur minimale autorisée pour ce champ.
Inférieur à [variable] | Définit un champ qui spécifie la valeur maximale autorisée pour ce champ.
Longueur fixe [dynamique] | Définit un champ qui spécifie le nombre exact de caractères requis pour ce champ.
Longueur minimale [dynamique] | Définit un champ qui spécifie le nombre minimum de caractères requis.
Longueur maximale [dynamique] | Définit un champ qui spécifie le nombre maximum de caractères autorisés.
Valeurs exclues | Définit une liste de valeurs non autorisées pour ce champ.
Plage exclue de valeurs | Définit une plage de valeurs non autorisées pour ce champ. Valeur maximale exclue : La valeur maximale non autorisée pour ce champ. Valeur minimale exclue : La valeur minimale non autorisée pour ce champ.
Contrainte spécifique (composant) | Spécifie une ou plusieurs classes Java qui implémentent l'interface `Constraint` de l'API Java. Voir Programmatic constraints pour plus d'informations.
Enumération spécifique (composant) | Spécifie une classe Java pour définir une énumération. La classe doit définir une liste ordonnée de valeurs, en implémentant l'interface `ConstraintEnumeration` de l'API Java.
Enumération alimentée par un autre noeud | Spécifie un champ qui définit les valeurs autorisées pour cette énumération. Le champ spécifié doit être une liste ou doit définir une énumération.
Configuration des espaces de données | Définit quels sont les espaces de données pouvant être référencés par un champ de type Identifiant d'espaces de données (osd:dataspaceKey). Inclusions Définit les espaces de données qui peuvent être référencés par ce champ. Pattern:Définit une expression régulière à laquelle le nom d'un espace de données doit être conforme. Type:Définit le type d'espaces de données (branches ou versions) qui peuvent être référencés par ce champ. Si non définie, cette restriction s'appliquera aux espaces de données de type branche. Inclure les descendants:Définit si les espaces de données enfants ou descendants sont inclus dans cet ensemble. Si non définie, cette restriction ne s'appliquera pas aux espaces de données enfants. Si "Aucun" alors les enfants et descendants des espaces de données qui vérifient le pattern défini ne sont pas inclus. Si "Tous les descendants" alors toutes les branches et versions descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Toutes les branches descendantes" alors toutes les branches descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Toutes les versions descendantes" alors toutes les versions descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Branches enfants" alors seules les branches directes des espaces de données qui vérifient le pattern défini sont incluses. Si l'espace de données qui vérifie le pattern est une version, alors les branches qui sont des enfants directs de cette version sont incluses. Si l'espace de données qui vérifie le pattern est une branche, alors sont incluses les branches qui sont des enfants directs des versions qui sont des enfants directs de cette branche. Si "Versions enfants" alors seules les versions directes des espaces de données qui vérifient le pattern défini sont incluses. Si l'espace de données qui vérifie le pattern est une branche, alors les versions qui sont des enfants directs de cette branche sont incluses. Si l'espace de données qui vérifie le pattern est une version, alors sont incluses les versions qui sont des enfants directs des branches qui sont des enfants directs de cette version. Exclusions Définit les espaces de données qui ne peuvent pas être référencés par ce champ. Les exclusions sont ignorées si la configuration ne définit pas d'inclusion. Pattern: Définit une expression régulière à laquelle le nom d'un espace de données doit être conforme. Type: Définit le type d'espaces de données (branches ou versions) qui peuvent être référencés par ce champ. Si non définie, cette restriction s'appliquera aux espaces de données de type branche. Inclure les descendants: Définit si les espaces de données enfants ou descendants sont inclus dans cet ensemble. Si non définie, cette restriction ne s'appliquera pas aux espaces de données enfants. Si "Aucun" alors les enfants et descendants des espaces de données qui vérifient le pattern défini ne sont pas inclus. Si "Tous les descendants" alors toutes les branches et versions descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Toutes les branches descendantes" alors toutes les branches descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Toutes les versions descendantes" alors toutes les versions descendantes des espaces de données qui vérifient le pattern défini sont incluses. Si "Branches enfants" alors seules les branches directes des espaces de données qui vérifient le pattern défini sont incluses. Si l'espace de données qui vérifie le pattern est une version, alors les branches qui sont des enfants directs de cette version sont incluses. Si l'espace de données qui vérifie le pattern est une branche, alors sont incluses les branches qui sont des enfants directs des versions qui sont des enfants directs de cette branche. Si "Versions enfants" alors seules les versions directes des espaces de données qui vérifient le pattern défini sont incluses. Si l'espace de données qui vérifie le pattern est une branche, alors les versions qui sont des enfants directs de cette branche sont incluses. Si l'espace de données qui vérifie le pattern est une version, alors sont incluses les versions qui sont des enfants directs des branches qui sont des enfants directs de cette version. Filtre Définit un filtre pour accepter ou refuser des espaces de données dans le contexte d'un jeu de données ou d'un enregistrement. Ce filtre est uniquement utilisé par le composant de saisie dédié à ce type de champ. Ce filtre n'est pas utilisé lors de la validation de ce champ. Des contrôles additionnels peuvent être définis en utilisant une contrainte spécifique (composant). Un filtre est défini par une classe Java qui implémente l'interface `DataspaceSetFilter`.
Configuration des jeux de données | Définit quels sont les jeux de données pouvant être référencés par un champ de type Identifiant de jeux de données (osd:datasetName). Inclusions Définit les jeux de données qui peuvent être référencés par ce champ. Pattern: Définit une expression régulière à laquelle le nom d'un jeu de données doit être conforme. Inclure les descendants: Définit si les jeux de données enfants ou descendants sont inclus dans cet ensemble. Si non définie, cette restriction ne s'appliquera pas aux jeux de données enfants. Exclusions Définit les jeux de données qui ne peuvent pas être référencés par ce champ. Les exclusions sont ignorées si la configuration ne définit pas d'inclusion. Pattern:Définit une expression régulière à laquelle le nom d'un jeu de données doit être conforme. Inclure les descendants:Définit si les jeux de données enfants ou descendants sont inclus dans cet ensemble. Si non définie, cette restriction ne s'appliquera pas aux jeux de données enfants. Filtre Définit un filtre pour accepter ou refuser des jeux de données dans le contexte d'un jeu de données ou d'un enregistrement. Ce filtre est uniquement utilisé par le composant de saisie dédié à ce type de champ. Ce filtre n'est pas utilisé lors de la validation de ce champ. Des contrôles additionnels peuvent être définis en utilisant une contrainte spécifique (composant). Un filtre est défini par une classe Java qui implémente l'interface `DatasetSetFilter`.

### Propriétés de validation

Chaque contrainte, excepté celles utilisant une classe Java, peut définir des messages de validation. Il est possible d'associer une sévérité à ces messages de validation et ils peuvent être localisés en utilisant les propriétés suivantes :

Validation | Spécifie le message de validation et la sévérité associée à la contrainte.
Sévérité | Spécifie la sévérité de la contrainte. Les valeurs possibles sont : "Erreur", "Avertissement", et "Information".
Gestion des erreurs | Spécifie le comportement de la contrainte en cas d'erreur de validation. Il est possible d'indiquer que la contrainte doit toujours être valide pour toute opération (mise à jour d'un jeu de données, création, mise à jour et suppression d'un enregistrement), ou lorsqu'un utilisateur soumet un formulaire. Dans ce cas, toutes les saisies ou opérations qui rendraient la contrainte invalide seront rejetées et les données seront non modifiées. Si cette propriété n'est pas spécifiée, alors la contrainte bloquera uniquement les erreurs lors de la soumission d'un formulaire, sauf dans le cas de modèles relationnels où les contraintes de clés étrangères bloquent par défaut toutes les erreurs. Cette propriété est uniquement disponible sur les contrôles statiques, valeurs exclues, plage exclue de valeurs et contraintes de clés étrangères. Le caractère bloquant pour toutes les opérations ne s'applique pas sur les filtres de clé étrangère. Une contrainte de clé étrangère n'est donc pas bloquante si un enregistrement référencé existe mais ne répond pas aux critères de filtrage. Il n'est pas possible de définir cette propriété sur les contraintes structurelles définies dans les modèles relationnels. Si cette propriété est définie sur les contraintes "Longueur fixe", "Longueur maximum", "Nombre total de chiffres" et "Partie décimale" dans des modèles relationnels, une erreur sera levée lors de la compilation du modèle. Le caractère bloquant d'une contrainte est ignoré lors de l'import d'archives. Toutes les contraintes bloquantes, sauf les contraintes dites structurelles, sont désactivées lors de l'import d'archives.
Message | Message à afficher lorsque la valeur de ce champ dans un jeu de données ne respecte pas cette contrainte. Ce message peut être localisé.

##### Concepts apparentés

- Propriétés des é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