Attributregel hinzufügen (Data Management)

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.

Weitere Informationen über Attributregeln

Informationen zur Arcade-Skriptsprache

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})
ParameterErklärungDatentyp
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.

  • CALCULATIONFüllt Attributwerte für Features automatisch, wenn ein anderes Attribut für ein Feature festgelegt wird. Diese Regeln werden basierend auf den angegebenen auslösenden Ereignissen angewendet. Langwierige Berechnungen können für die Ausführung im Batch-Modus eingerichtet werden. Sie werden dann zu einer vom Benutzer definierten Zeit ausgewertet.Beim Hinzufügen mehrerer Berechnungsregeln ist es wichtig, die Reihenfolge zu beachten, in der die Regeln hinzugefügt werden, wenn zirkuläre Abhängigkeiten bestehen. Wenn beispielsweise Regel A berechnet, dass Field1 gleich dem Wert von $feature.Field2 + $feature.Field3 ist, und Regel B, dass Field4 gleich $feature.Field1 + $feature.Field5 ist, dann können die Ergebnisse je nach Reihenfolge, in der die Regeln hinzugefügt werden, unterschiedlich ausfallen.
  • CONSTRAINTGeben Sie zulässige Attributkonfigurationen für ein Feature an. Wird die Beschränkungsregel verletzt, wird ein Fehler generiert und das Feature nicht gespeichert. Wenn beispielsweise der Wert von Field A niedriger sein muss als die Summe aus Field B und Field C, wird bei Verletzen der Beschränkung ein Fehler generiert.
  • VALIDATIONFühren Sie eine Überprüfung auf vorhandene Features mit einer Batch-Validierung durch. Regeln werden zu einer vom Benutzer definierten Zeit ausgewertet. Wenn eine Regel verletzt wird, wird ein Fehler-Feature erstellt. Der Regeltyp kann nur für Daten verwendet werden, die für Verzweigungsversionierung eingerichtet sind.
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.

  • EDITABLEEditoren können den Attributwert bearbeiten. Dies ist die Standardeinstellung.
  • NONEDITABLEEditoren können den Attributwert nicht bearbeiten.
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).

  • INSERTDie Regel wird beim Hinzufügen eines neuen Features angewendet.
  • UPDATEDie Regel wird beim Aktualisieren eines neuen Features angewendet.
  • DELETEDie Regel wird beim Löschen eines neuen Features angewendet.
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.

  • EXCLUDEDie Regel wird von der Client-Auswertung ausgeschlossen.
  • INCLUDEDie Regel wird für alle Clients ausgeführt. Dies ist die Standardeinstellung.
Boolean
batch
(optional)

Gibt an, ob die Regelauswertung im Batch-Modus ausgeführt wird.

  • BATCHDie Regelauswertung erfolgt im Batch-Modus zu einem späteren Zeitpunkt durch Ausführung einer Validierung.
  • NOT_BATCHDie Regelauswertung wird nicht im Batch-Modus ausgeführt. Mithilfe von auslösenden Ereignissen wird bestimmt, wann die Regel für die Vorgänge "Einfügen", "Aktualisieren" und "Löschen" ausgewertet wird. Dies ist die Standardeinstellung.

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

NameErklärungDatentyp
out_table

Die aktualisierte Eingabetabelle mit einer hinzugefügten Attributregel.

Tabellenansicht

Codebeispiel

AddAttributeRule – Beispiel 1 (Python-Fenster)

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)
AddAttributeRule – Beispiel 2 (Python-Fenster)

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)
AddAttributeRule – Beispiel 3 (Python-Fenster)

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)

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen