Ajouter une règle attributaire (Gestion des données)

Synthèse

Ajoute une règle attributaire à un jeu de données.

Les règles attributaires sont des règles définies par l'utilisateur pouvant être ajoutées à un jeu de données pour améliorer l’expérience d'édition et aider à garantir l'intégrité des données. Ces règles peuvent être utilisées pour renseigner les valeurs attributaires ou contraindre les configurations d’entités autorisées et sont appliquées lors de l’édition d’entités. Si une règle est transgressée lors de l’édition d’une entité, un message d’erreur est généré.

Pour en savoir plus sur les règles attributaires.

Pour en savoir plus sur le langage de script ArcGIS Arcade

Utilisation

  • Les règles de calcul par lots et les règles de validation dans une géodatabase d’entreprise sont évaluées à l’aide du serveur de validation pour les jeux de données qui font partie d’une branche versionnée. Pour ajouter ces types de règles, le paramètre Versioning Type (Type de versionnement) de la connexion à la base de données doit être défini sur Branch (Branche).

  • Le jeu de données doit posséder un champ GlobalID.

  • Pour ajouter des règles de calcul par lots ou des règles de validation à un jeu de données, vous devez activer le suivi de l’éditeur.

  • L’expression utilisée pour définir une règle attributaire dépend des fonctions disponibles avec l’utilisation du langage Arcade.

  • Vous pouvez référencer une séquence de base de données créée par l’outil Créer une séquence de base de données à l’aide de la fonction de données NextSequenceValueArcade pour le paramètre Expression de script.

  • Pour transférer des règles attributaires existantes vers un autre jeu de données, vous pouvez utiliser les outils Exporter des règles attributaires et Importer des règles attributaires plutôt que d’exécuter cet outil plusieurs fois.

  • Remarque :

    Une fois que vous avez ajouté des règles attributaires dans un jeu de données, la version minimale du client est ArcGIS Pro 2.1 pour le jeu de données. Le jeu de données ne peut donc plus être utilisé dans ArcMap.

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

La table ou classe d'entités à laquelle sera appliquée la nouvelle règle.

Table View
Nom

Un nom unique pour la nouvelle règle.

String
Type

Indique le type de règle attributaire à ajouter.

  • CalculLes valeurs attributaires sont automatiquement renseignées pour les entités lorsqu’un autre attribut est défini sur une entité. Ces règles sont appliquées en fonction des événements déclencheurs spécifiés. Les longs calculs peuvent être définis de sorte à être exécutés par lots et sont évalués à une heure définie par l’utilisateur.Lorsque plusieurs règles de calcul sont ajoutées, l’ordre dans lequel ces règles sont ajoutées est important s’il existe des dépendances circulaires. Par exemple, la règle A calcule que le champ Field1 est égal à la valeur de $feature.Field2 + $feature.Field3, et la règle B calcule que le champ Field4 est égal à $feature.Field1 + $feature.Field5 ; les résultats du calcul peuvent varier selon l’ordre dans lequel les règles ont été ajoutées.
  • ContrainteLes configurations attributaires autorisées sont spécifiées sur une entité. Lorsque la règle de contrainte est transgressée une erreur est générée et l’entité n’est pas stockée. Par exemple, si la valeur du champ Field A doit être inférieure à la somme des champs Field B et Field C, une erreur est générée lorsque cette contrainte est transgressée.
  • ValidationLes entités existantes sont identifiées lors d’un traitement de validation par lots. Les règles sont évaluées à une heure définie par l’utilisateur. Lorsqu’une règle est violée, une entité d’erreur est créée.
String
Expression de script

Expression Arcade qui définit la règle.

Calculator Expression
Est modifiable
(Facultatif)

Indique si la valeur attributaire doit être mise à jour. Les règles attributaires peuvent être configurées afin d’autoriser ou d’empêcher les éditeurs de mettre à jour les valeurs attributaires du champ qui est calculé. Ce paramètre ne s’applique qu’aux règles attributaires de type calcul.

  • Activé : la valeur attributaire peut être mise à jour. Il s’agit de l’option par défaut.
  • Désactivé : la valeur attributaire ne peut pas être mise à jour.

Boolean
Evénements déclencheurs
(Facultatif)

Indique les événements d’édition qui déclencheront l’application de la règle attributaire. Ce paramètre est valide uniquement pour les règles de calcul et de contrainte. Au moins un événement déclencheur doit être fourni pour les règles de calcul dans lesquelles le paramètre Traitements par lots est désactivé. Les événements déclencheurs ne sont pas applicables aux règles de calcul dont le paramètre Traitements par lots est activé.

  • InsérerLa règle est appliquée lorsqu’une nouvelle entité est ajoutée.
  • Mettre à jourLa règle est appliquée lorsqu’une entité est mise à jour.
  • SupprLa règle est appliquée lorsqu’une entité est supprimée.
String
Numéro d’erreur
(Facultatif)

Numéro d’erreur qui sera renvoyé lorsque cette règle est transgressée. Il n’est pas nécessaire que cette valeur soit unique ; le même numéro d’erreur personnalisé peut donc être renvoyé pour plusieurs règles.

Ce paramètre est requis pour les règles de type contrainte et validation. Il est facultatif pour les règles de type calcul.

String
Message d’erreur
(Facultatif)

Message d’erreur qui sera renvoyé lorsque cette règle est transgressée. Il est conseillé d’utiliser d’un message descriptif pouvant aider l’éditeur à comprendre la cause de la transgression. Le message ne peut pas comporter plus de 256 caractères.

Ce paramètre est requis pour les règles de type contrainte et validation. Il est facultatif pour les règles de type calcul.

String
Description
(Facultatif)

Description de la nouvelle règle attributaire. La description ne peut pas comporter plus de 256 caractères.

String
Sous-type
(Facultatif)

Sous-type à lequel la règle est appliquée si le jeu de données comporte des sous-types.

String
Terrain
(Facultatif)

Nom d’un champ existant auquel la règle sera appliquée. Ce paramètre ne s’applique qu’aux règles attributaires de type calcul.

String
Exclure de l’évaluation de l’application
(Facultatif)

Indique si l’application évalue la règle en local avant d’appliquer des mises à jour dans l’espace de travail.

Tous les clients n’ayant pas la capacité d’exécuter toutes les règles disponibles, les auteurs peuvent exclure certaines règles de l’évaluation client. Par exemple, certaines règles peuvent concerner des données qui n’ont pas été mises à la disposition de tous les clients (pour diverses raisons : données hors ligne, taille ou sécurité) ou encore certaines règles dépendent de l’utilisateur ou du contexte (ainsi, une légère mise à jour des champs dans une application de collecte de données peut ne pas exécuter une règle nécessitant une saisie ou connaissance utilisateur additionnelle ; toutefois, un client tel que ArcGIS Pro peut la prendre en charge).

Ce paramètre n’est pas applicable aux règles de validation ou de calcul si le paramètre Traitements par lots est coché.

  • Activé : la règle est exclue de l’évaluation client.
  • Désactivé : la règle n’est pas exclue de l’évaluation client. Il s’agit de l’option par défaut.

Remarque :

Dans les versions antérieures à ArcGIS Pro 2.4, ce paramètre s’intitulait Serveur uniquement.

Boolean
Lot
(Facultatif)

Précise si l’évaluation de la règle est exécutée en mode de traitement par lots.

  • Activé : l’évaluation de la règle est effectuée ultérieurement en mode de traitement par lots via l’exécution d’une validation.
  • Désactivé : l’évaluation de la règle n’est pas exécutée en mode de traitement par lots. Des événements de déclenchement sont utilisés pour déterminer à quel moment la règle est évaluée pour les opérations d’insertion, de mise à jour ou de suppression des mises à jour. Il s’agit de l’option par défaut.

Pour les règles de calcul, ce paramètre peut être activé ou désactivé. Pour les règles de validation, ce paramètre doit être désactivé. Pour les règles de contrainte, ce paramètre doit être désactivé.

Boolean
Gravité
(Facultatif)

Gravité de l’erreur.

Il est possible de choisir une valeur comprise entre 1 et 5 pour définir la gravité de la règle. La valeur 1 est élevée et correspond à la règle la plus grave, tandis que la valeur 5 est faible et correspond à la règle la moins grave. Par exemple, vous pouvez affecter une gravité faible à une règle attributaire spécifique et ignorer l’erreur lors des processus de génération de données ou définir une gravité élevée, auquel cas l’erreur doit être corrigée en vue de l’exactitude des données collectées.

Ce paramètre n’est applicable qu’aux règles de validation.

Long
Balises
(Facultatif)

Ensemble de balises identifiant la règle (en vue de la consultation et de l’indexation) comme moyen de l’apparier à une exigence fonctionnelle dans un modèle de données.

String
Champs de déclenchement
(Facultatif)

Liste des champs qui déclenchent l’exécution d’une règle attributaire lorsque la mise à jour d’un événement se produit pendant le déclencheur de mise à jour des règles attributaires de calcul et de contrainte. Si aucun champ n’est spécifié, l’outil utilise tous les champs. Il s’agit de l’option par défaut.

Pour saisir plusieurs champs de déclenchement, utilisez un point-virgule comme délimiteur, Field1;Field2;Field3 par exemple.

String

Sortie obtenue

ÉtiquetteExplicationType de données
Règle attributaire ajoutée

Table en entrée mise à jour avec une règle attributaire ajoutée.

Table View

arcpy.management.AddAttributeRule(in_table, name, type, script_expression, {is_editable}, {triggering_events}, {error_number}, {error_message}, {description}, {subtype}, {field}, {exclude_from_client_evaluation}, {batch}, {severity}, {tags}, {triggering_fields})
NomExplicationType de données
in_table

La table ou classe d'entités à laquelle sera appliquée la nouvelle règle.

Table View
name

Un nom unique pour la nouvelle règle.

String
type

Indique le type de règle attributaire à ajouter.

  • CALCULATIONLes valeurs attributaires sont automatiquement renseignées pour les entités lorsqu’un autre attribut est défini sur une entité. Ces règles sont appliquées en fonction des événements déclencheurs spécifiés. Les longs calculs peuvent être définis de sorte à être exécutés par lots et sont évalués à une heure définie par l’utilisateur.Lorsque plusieurs règles de calcul sont ajoutées, l’ordre dans lequel ces règles sont ajoutées est important s’il existe des dépendances circulaires. Par exemple, la règle A calcule que le champ Field1 est égal à la valeur de $feature.Field2 + $feature.Field3, et la règle B calcule que le champ Field4 est égal à $feature.Field1 + $feature.Field5 ; les résultats du calcul peuvent varier selon l’ordre dans lequel les règles ont été ajoutées.
  • CONSTRAINTLes configurations attributaires autorisées sont spécifiées sur une entité. Lorsque la règle de contrainte est transgressée une erreur est générée et l’entité n’est pas stockée. Par exemple, si la valeur du champ Field A doit être inférieure à la somme des champs Field B et Field C, une erreur est générée lorsque cette contrainte est transgressée.
  • VALIDATIONLes entités existantes sont identifiées lors d’un traitement de validation par lots. Les règles sont évaluées à une heure définie par l’utilisateur. Lorsqu’une règle est violée, une entité d’erreur est créée.
String
script_expression

Expression Arcade qui définit la règle.

Calculator Expression
is_editable
(Facultatif)

Indique si la valeur attributaire doit être mise à jour. Les règles attributaires peuvent être configurées afin d’autoriser ou d’empêcher les éditeurs de mettre à jour les valeurs attributaires du champ qui est calculé. Ce paramètre ne s’applique qu’aux règles attributaires de type calcul.

  • EDITABLELa valeur attributaire peut être mise à jour. Il s’agit de l’option par défaut.
  • NONEDITABLELa valeur attributaire ne peut pas être mise à jour.
Boolean
triggering_events
[triggering_events,...]
(Facultatif)

Indique les événements d’édition qui déclencheront l’application de la règle attributaire. Ce paramètre est valide uniquement pour les règles de calcul et de contrainte. Au moins un événement déclencheur doit être fourni pour les règles de calcul dans lesquelles le paramètre batch est défini sur NOT_BATCH. Les événements déclencheurs ne sont pas applicables aux règles de calcul dont le paramètre batch est défini sur BATCH.

  • INSERTLa règle est appliquée lorsqu’une nouvelle entité est ajoutée.
  • UPDATELa règle est appliquée lorsqu’une entité est mise à jour.
  • DELETELa règle est appliquée lorsqu’une entité est supprimée.
String
error_number
(Facultatif)

Numéro d’erreur qui sera renvoyé lorsque cette règle est transgressée. Il n’est pas nécessaire que cette valeur soit unique ; le même numéro d’erreur personnalisé peut donc être renvoyé pour plusieurs règles.

Ce paramètre est requis pour les règles de type contrainte et validation. Il est facultatif pour les règles de type calcul.

String
error_message
(Facultatif)

Message d’erreur qui sera renvoyé lorsque cette règle est transgressée. Il est conseillé d’utiliser d’un message descriptif pouvant aider l’éditeur à comprendre la cause de la transgression. Le message ne peut pas comporter plus de 256 caractères.

Ce paramètre est requis pour les règles de type contrainte et validation. Il est facultatif pour les règles de type calcul.

String
description
(Facultatif)

Description de la nouvelle règle attributaire. La description ne peut pas comporter plus de 256 caractères.

String
subtype
(Facultatif)

Sous-type à lequel la règle est appliquée si le jeu de données comporte des sous-types.

String
field
(Facultatif)

Nom d’un champ existant auquel la règle sera appliquée. Ce paramètre ne s’applique qu’aux règles attributaires de type calcul.

String
exclude_from_client_evaluation
(Facultatif)

Indique si l’application évalue la règle en local avant d’appliquer des mises à jour dans l’espace de travail.

Tous les clients n’ayant pas la capacité d’exécuter toutes les règles disponibles, les auteurs peuvent exclure certaines règles de l’évaluation client. Par exemple, certaines règles peuvent concerner des données qui n’ont pas été mises à la disposition de tous les clients (pour diverses raisons : données hors ligne, taille ou sécurité) ou encore certaines règles dépendent de l’utilisateur ou du contexte (ainsi, une légère mise à jour des champs dans une application de collecte de données peut ne pas exécuter une règle nécessitant une saisie ou connaissance utilisateur additionnelle ; toutefois, un client tel que ArcGIS Pro peut la prendre en charge).

Ce paramètre n’est pas applicable aux règles de validation ou de calcul si le paramètre batch a pour valeur BATCH.

  • EXCLUDELa règle est exclue de l’évaluation client.
  • INCLUDELa règle n’est pas exclue de l’évaluation client. Il s’agit de l’option par défaut.
Boolean
batch
(Facultatif)

Précise si l’évaluation de la règle est exécutée en mode de traitement par lots.

  • BATCHL’évaluation de la règle est effectuée ultérieurement en mode de traitement par lots via l’exécution d’une validation.
  • NOT_BATCHL’évaluation de la règle n’est pas exécutée en mode de traitement par lots. Des événements de déclenchement sont utilisés pour déterminer à quel moment la règle est évaluée pour les opérations d’insertion, de à jour ou de suppression. Il s’agit de l’option par défaut.

Pour les règles de calcul, ce paramètre peut avoir la valeur BATCH ou NOT_BATCH. Pour les règles de validation, ce paramètre doit avoir la valeur BATCH. Pour les règles de contrainte, ce paramètre doit avoir la valeur NOT_BATCH.

Boolean
severity
(Facultatif)

Gravité de l’erreur.

Il est possible de choisir une valeur comprise entre 1 et 5 pour définir la gravité de la règle. La valeur 1 est élevée et correspond à la règle la plus grave, tandis que la valeur 5 est faible et correspond à la règle la moins grave. Par exemple, vous pouvez affecter une gravité faible à une règle attributaire spécifique et ignorer l’erreur lors des processus de génération de données ou définir une gravité élevée, auquel cas l’erreur doit être corrigée en vue de l’exactitude des données collectées.

Ce paramètre n’est applicable qu’aux règles de validation.

Long
tags
[tags,...]
(Facultatif)

Ensemble de balises identifiant la règle (en vue de la consultation et de l’indexation) comme moyen de l’apparier à une exigence fonctionnelle dans un modèle de données. Pour saisir plusieurs balises, utilisez un point-virgule comme délimiteur. Par exemple, Balise1;Balise2;Balise3.

String
triggering_fields
[triggering_fields,...]
(Facultatif)

Liste des champs qui déclenchent l’exécution d’une règle attributaire lorsque la mise à jour d’un événement se produit pendant le déclencheur de mise à jour des règles attributaires de calcul et de contrainte. Si aucun champ n’est spécifié, l’outil utilise tous les champs. Il s’agit de l’option par défaut.

Pour saisir plusieurs champs de déclenchement, utilisez un point-virgule comme délimiteur, Field1;Field2;Field3 par exemple.

String

Sortie obtenue

NomExplicationType de données
out_table

Table en entrée mise à jour avec une règle attributaire ajoutée.

Table View

Exemple de code

Exemple 1 d’utilisation de la fonction AddAttributeRule (fenêtre Python)

Ajouter une règle de calcul qui calcule le champ labeltext de la classe d’entités GasPipes.

'''****************************************************************************
Name:        AddAttributeRule_example1.py
Description: This script adds a calcualtion rule to a feature class
Created by:  Esri
****************************************************************************'''

# Import required modules        
import arcpy

# Set local variables
in_table = "C:\\MyProject\\sdeConn.sde\\progdb.user1.GasPipes"
name = "calculateRuleLabel"
script_expression = 'if ($feature.material == 5) {return "Plastic"} else {return "Other"}'
triggering_events = "INSERT;UPDATE"
description = "Populate label text"
subtype = "Coated Steel"
field = "labeltext"

# Run the AddAttributeRule tool
arcpy.management.AddAttributeRule(in_table, name, "CALCULATION", script_expression, "EDITABLE", triggering_events, "", "", description, subtype, field)
Exemple 2 d’utilisation de la fonction AddAttributeRule (fenêtre Python)

Ajouter une règle de contrainte qui limite l’attribut de pression de service de la classe d’entités GasPipes à 300.

'''****************************************************************************
Name:        AddAttributeRule_example2.py
Description: This script adds a constraint rule to a feature class
Created by:  Esri
****************************************************************************'''

# Import required modules        
import arcpy

# Set local variables
in_table = "C:\\MyProject\\sdeConn.sde\\progdb.user1.GasPipes"
name = "constraintRuleOP"
script_expression = '$feature.OPERATINGPRESSURE < 300'
triggering_events = "INSERT;UPDATE"
description = "Operating pressure must be less than 300"
subtype = "ALL"
error_number = 2001
error_message = "Invalid operating pressure. Must be less than 300."

# Run the AddAttributeRule tool
arcpy.management.AddAttributeRule(in_table, name, "CONSTRAINT", script_expression, "EDITABLE", triggering_events, error_number, error_message, description, subtype)
Exemple 3 d’utilisation de la fonction AddAttributeRule (fenêtre Python)

Ajoutez une règle de validation à la classe d’entités GasPipes pour signaler les entités existantes dont la pression de service est supérieure à 300.

'''****************************************************************************
Name:        AddAttributeRule_example3.py
Description: This script adds a validation rule to a feature class
Created by:  Esri
****************************************************************************'''

# Import required modules        
import arcpy

# Set local variables
in_table = "C:\\MyProject\\sdeConn.sde\\progdb.user1.GasPipes"
name = "validationRuleMaxOP"
rule_type = "VALIDATION"
script_expression = "$feature.OPERATINGPRESSURE < 300"
error_number = 3001
error_message = "Maximum operating pressure exceeded"
description = "Validation rule: max operating pressure value"
subtype = "Coated Steel"
batch = "BATCH"
severity = 3
tags = "OP;MAXOP"

# Run the AddAttributeRule tool
arcpy.management.AddAttributeRule(in_table, name, rule_type, 
                                  script_expression, "", "", 
                                  error_number, error_message, 
                                  description, subtype, "", "", 
                                  batch, severity, tags)

Informations de licence

  • Basic: Non
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes