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

Résumé

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 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’ajout d’une règle attributaire requiert un verrouillage exclusif sur le jeu de données. Vous devez fermer les connexions actives avec le jeu de données, ce qui peut nécessiter d’arrêter des services.

  • L’expression utilisée pour définir une règle attributaire dépend de la fonctionnalité disponible en utilisant le langage Arcade.

  • Vous pouvez faire référence à une séquence de base de données créée par l’outil Créer une séquence de base de données dans le paramètre Script Expression (Expression de script) à l’aide de la fonction de données Arcade, NextSequenceValue.

  • 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. Cela signifie que le jeu de données ne peut plus être utilisé dans ArcMap.

Syntaxe

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})
ParamètreExplicationType 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.

  • CALCULATIONRenseigner automatiquement les valeurs attributaires 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 ; le résultat du calcul peut varier selon l’ordre dans lequel les règles ont été ajoutées.
  • CONSTRAINTSpécifier les configurations attributaires autorisé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.
  • VALIDATIONContrôler les entités existantes par un processus 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. Le type de règle ne peut être utilisé que pour les données configurées pour le versionnement de branche.
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.

  • EDITABLELes éditeurs pourront mettre à jour la valeur attributaire. Il s’agit de l’option par défaut.
  • NONEDITABLELes éditeurs ne pourront pas mettre à jour la valeur attributaire.
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 (Lot) est désactivé (batch = "NOT_BATCH" dans Python). Les événements déclencheurs ne sont pas applicables aux règles de calcul dont le paramètre Batch (Lot) est activé (batch = "BATCH" dans Python).

  • 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, plusieurs règles peuvent donc renvoyer le même numéro d’erreur personnalisé.

Ce paramètre est requis pour les règles de contrainte et de validation. Il est facultatif pour les règles de 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 2 000 caractères.

Ce paramètre est requis pour les règles de contrainte et de validation. Il est facultatif pour les règles de 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 auquel 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 la règle sera exclue de l’évaluation avant l’application des mises à jour. Tous les clients n’ayant peut-être pas la capacité d’exécuter toutes les règles disponibles, vous pouvez décider d’identifier une règle pour les clients simples uniquement. 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 ArcGIS Collector peut ne pas exécuter une règle donnée 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 la valeur BATCH.

  • EXCLUDELa règle est exclue de l’évaluation client.
  • INCLUDELa règle est exécutée pour tous les clients. 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 en exécutant la commande de 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.

Les règles de calcul sont définies sur BATCH ou NOT_BATCH. Les règles de validation ont toujours le statut BATCH pour ce paramètre et les règles de contrainte, le statut NOT_BATCH.

Les règles de traitement par lots ne sont prises en charge que pour les données pour lesquelles le versionnement de branche est activé.

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 permettant d’identifier la règle (consultable et indexable) 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

Sortie dérivée

NomExplicationType de données
out_table

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

Vue tabulaire

Exemple de code

Exemple 1 d'utilisation de l'outil 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.AddAttributeRule_management(in_table, name, "CALCULATION", script_expression, "EDITABLE", triggering_events, "", "", description, subtype, field)
Exemple 2 d'utilisation de l'outil 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.AddAttributeRule_management(in_table, name, "CONSTRAINT", script_expression, "EDITABLE", triggering_events, error_number, error_message, description, subtype)
Exemple 3 d'utilisation de l'outil 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.AddAttributeRule_management(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