Zusammenfassung
Fügt einem Dataset eine Attributregel hinzu.
Attributregeln sind benutzerdefinierte Regeln, die einem Dataset hinzugefügt werden können, um die Bearbeitung zu vereinfachen und Datenintegrität zu erzwingen. Diese Regeln können dazu verwendet werden, Attributwerte einzupflegen oder zulässige Feature-Konfigurationen einzuschränken, und werden bei der Feature-Bearbeitung umgesetzt. Wird eine Regel bei der Bearbeitung eines Features verletzt, wird eine Fehlermeldung zurückgegeben.
Verwendung
Regeln für Batch-Berechnungen und Validierungsregeln in einer Enterprise-Geodatabase werden mit dem Validierungsserver für Datasets, die nach Verzweigung versioniert sind, ausgewertet. Damit diese Regeltypen hinzugefügt werden können, muss der Versionierungstyp der Datenbankverbindung auf Verzweigung festgelegt sein.
Das Dataset muss ein Global-ID-Feld enthalten.
Damit Batch-Berechnungen oder Validierungsregeln dem Dataset hinzugefügt werden können, muss Editor-Tracking aktiviert sein.
Zum Hinzufügen einer Attributregel ist eine exklusive Sperre für das Dataset erforderlich. Sie müssen alle aktiven Verbindungen mit dem Dataset schließen. Dies kann auch das Beenden von Services umfassen.
Der für die Definition einer Attributregel verwendete Ausdruck ist beschränkt auf die Funktionen, die in der Arcade-Sprache geschrieben werden können.
Sie können eine Datenbanksequenz, die vom Werkzeug Datenbanksequenz erstellen erstellt wurde, mit der Arcade-Datenfunktion NextSequenceValue im Parameter Skriptausdruck referenzieren.
Für die Übertragung vorhandener Attributregeln in ein anderes Dataset können Sie die Werkzeuge Attributregeln exportieren und Attributregeln importieren verwenden, statt dieses Tool mehrfach auszuführen.
Hinweis:
Wenn Sie Attributregeln zu einem Dataset hinzufügen, muss die Client-Version für das Dataset mindestens ArcGIS Pro 2.1 entsprechen. Dadurch kann das Dataset in ArcMap nicht mehr verwendet werden.
Syntax
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})
Parameter | Erklärung | Datentyp |
in_table | Die Tabelle oder Feature-Class, auf die die neue Regel angewendet wird. | Table View |
name | Ein eindeutiger Name für die neue Regel. | String |
type | Gibt den Typ der hinzuzufügenden Attributregel an.
| String |
script_expression | Der Arcade-Ausdruck zur Definition der Regel. | Calculator Expression |
is_editable (optional) | Gibt an, ob der Attributwert bearbeitet werden kann. Attributregeln können so konfiguriert werden, dass sie die Bearbeitung der Attributwerte des berechneten Feldes durch Editoren zulassen oder nicht. Dieser Parameter ist nur für Berechnungsattributregeln anwendbar.
| Boolean |
triggering_events [triggering_events,...] (optional) | Gibt die Bearbeitungsereignisse an, welche die Anwendung der Attributregel auslösen. Dieser Parameter gilt nur für Berechnungs- und Beschränkungsregeltypen. Mindestens ein auslösendes Ereignis muss für Berechnungsregeln angegeben werden, in denen der Parameter Batch deaktiviert ist (batch = "NOT_BATCH" in Python). Auslösende Ereignisse sind für Berechnungsregeln, bei denen der Parameter Batch aktiviert ist, nicht anwendbar (batch = "BATCH" in Python).
| String |
error_number (optional) | Eine Fehlernummer, die bei einem Verstoß gegen diese Regel zurückgegeben wird. Der Wert muss nicht eindeutig sein; Sie können also eine benutzerdefinierte Fehlernummer für mehrere Regeln zurückgeben lassen. Dieser Parameter ist für Beschränkungs- und Validierungsregeln erforderlich. Für Berechnungsregeln ist er optional. | String |
error_message (optional) | Eine Fehlermeldung, die bei einem Verstoß gegen diese Regel zurückgegeben wird. Sie sollten eine beschreibende Meldung verwenden, die es dem Editor einfacher macht, die Verletzung bei ihrem Auftreten zu verstehen. Die Meldung ist auf eine Länge von 2000 Zeichen begrenzt. Dieser Parameter ist für Beschränkungs- und Validierungsregeln erforderlich. Für Berechnungsregeln ist er optional. | String |
description (optional) | Die Beschreibung der neuen Attributregel. Die Beschreibung ist auf eine Länge von 256 Zeichen begrenzt. | String |
subtype (optional) | Der Subtype, auf den die Regel angewendet wird, wenn das Dataset über Subtypes verfügt. | String |
field (optional) | Der Name eines vorhandenen Feldes, auf das die Regel angewendet wird. Dieser Parameter ist nur für Berechnungsattributregeln anwendbar. | String |
exclude_from_client_evaluation (optional) | Gibt an, ob die Regel vor der Anwendung von Änderungen von der Auswertung ausgeschlossen wird. Da möglicherweise nicht alle Clients über die Fähigkeit verfügen, alle verfügbaren Regeln auszuführen, können Sie eine Regel wahlweise nur für einfache Clients kennzeichnen. Einige Regeln verweisen möglicherweise auf Daten, die nicht allen Clients zur Verfügung gestellt wurden (aus Gründen der Größe, Sicherheit oder weil Daten offlline sind), oder sind benutzer- oder kontextabhängig. So kann eine einfache Feldaktualisierung in ArcGIS Collector u. U. keine Regel ausführen, die zusätzliche Benutzereingaben oder Informationen erfordert, obgleich der Client, wie z. B. ArcGIS Pro diesen Vorgang unterstützen würde. Dieser Parameter ist für Validierungsregeln oder Berechnungsregeln nicht anwendbar, wenn für den Parameter batch der Wert BATCH festgelegt ist.
| Boolean |
batch (optional) | Gibt an, ob die Regelauswertung im Batch-Modus ausgeführt wird.
Berechnungsregeln können mit der Option BATCH oder NOT_BATCH angegeben werden. Validierungsregeln sind für diesen Parameter immer BATCH, Beschränkungsregeln sind immer NOT_BATCH. Batch-Regeln werden nur für Daten mit aktivierter Verzweigungsversionierung unterstützt. | Boolean |
severity (optional) | Der Schweregrad des Fehlers. Ein Wert im Bereich von 1 bis 5 kann ausgewählt werden, um den Schweregrad der Regel zu definieren. Der Wert 1 ist der höchste Schweregrad, und der Wert 5 der niedrigste. Sie können z. B. einen niedrigen Schweregrad für eine bestimmte Attributregel angeben und den Fehler in Workflows zur Datenerzeugung ignorieren. Wenn Fehler zur Verbesserung der Genauigkeit der erfassten Daten behoben werden müssen, können Sie einen hohen Schweregrad festlegen. Dieser Parameter gilt nur für Validierungsregeln. | Long |
tags [tags,...] (optional) | Eine Reihe von Tags, die die Regel identifizieren (durchsuchbar und indizierbar), als Möglichkeit, eine Funktionsanforderung in einem Datenmodell zuzuordnen. Verwenden Sie zur Eingabe mehrerer Tags ein Semikolon als Trennzeichen. Beispiel: Tag1;Tag2;Tag3. | String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_table | Die aktualisierte Eingabetabelle mit einer hinzugefügten Attributregel. | Tabellenansicht |
Codebeispiel
Fügen Sie eine Berechnungsregel hinzu, die das Feld labeltext der Feature-Class "GasPipes" berechnet.
'''****************************************************************************
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)
Fügen Sie eine Beschränkungsregel hinzu, die das Betriebsdruckattribut der Feature-Class "GasPipes" auf "300" beschränkt.
'''****************************************************************************
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)
Fügen Sie der Feature-Class "GasPipes" eine Validierungsregel hinzu, um vorhandene Features mit einem Betriebsdruck von mehr als "300" zu kennzeichnen.
'''****************************************************************************
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)
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Ja
- Advanced: Ja