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é.
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ètre | Explication | Type 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.
| 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.
| 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).
| 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.
| Boolean |
batch (Facultatif) | Précise si l’évaluation de la règle est exécutée en mode de traitement par lots.
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
Nom | Explication | Type de données |
out_table | Table en entrée mise à jour avec une règle attributaire ajoutée. | Vue tabulaire |
Exemple de code
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)
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)
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)
Environnements
Informations de licence
- Basic: Non
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?