Skip To Content

Attributregel hinzufügen

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 zu Regeln

Weitere Informationen zur Arcade-Skriptsprache.

Verwendung

  • Das Dataset muss sich in einer Enterprise-Geodatabase befinden.

  • Validierungs- und Batch-Berechnungsregeln werden nur für Daten mit aktivierter Verzweigungsversionierung unterstützt.

  • Das Dataset muss ein Global-ID-Feld enthalten.

  • 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 einem Dataset Attributregeln hinzugefügt haben, muss die Client-Version des Datasets mindestens ArcGIS Pro 2.1 entsprechen. Dadurch kann das Dataset in ArcMap nicht mehr verwendet werden.

Syntax

AddAttributeRule_management (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

Der Typ der hinzuzufügenden Attributregel.

  • 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, sehr 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.
  • VALIDATIONDies wird anhand von vorhandenen Features mit einer Batch-Validierung überprüft. 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

Ein Arcade-Ausdruck zur Definition der Regel.

Calculator Expression
is_editable
(optional)

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)

Die Bearbeitungsereignisse, welche die Anwendung der Attributregel auslösen. Gilt nur für Berechnungs- und Beschränkungsregeltypen. Mindestens ein auslösendes Ereignis muss für Berechnungsregeln angegeben werden, bei denen der Parameter Batch auf "false" festgelegt ist. Auslösende Ereignisse sind für Berechnungsregeln, bei denen der Parameter Batch auf "true" festgelegt ist, nicht anwendbar.

  • 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)

Stellen Sie eine Fehlernummer bereit, die zurückgegeben wird, wenn diese Regel verletzt 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.

Long
error_message
(optional)

Stellen Sie eine Fehlermeldung bereit, die zurückgegeben wird, wenn diese Regel verletzt 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)

Eine Beschreibung der neuen Attributregel. Die Beschreibung ist auf eine Länge von 256 Zeichen begrenzt.

String
subtype
(optional)

Wenn das Dataset über Subtypes verfügt, geben Sie den Subtype an, auf den die Regel angewendet werden soll.

String
field
(optional)

Der Name eines vorhandenen Feldes, auf das die Regel angewendet wird. Dieser Parameter ist erforderlich für Berechnungsattributregeln und nicht anwendbar auf den Beschränkungsregeltyp.

String
exclude_from_client_evaluation
(optional)

Ermöglicht dem Client auszuwählen, ob die Regel vor der Anwendung von Bearbeitungen ausgewertet werden soll. Da möglicherweise nicht alle Clients über die Fähigkeit verfügen, alle verfügbaren Regeln auszuführen, können Sie eine Regeln wahlweise als nur für einfache Clients gedacht 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 Collector for ArcGIS u. U. keine Regel ausführen, die zusätzliche Benutzereingaben oder Informationen erfordert. Ein anderer Client wie ArcGIS Pro kann hierfür wiederum die nötige Unterstützung bieten. Dieser Parameter ist für Validierungsregeln oder Berechnungsregeln nicht anwendbar, wenn für den Parameter batch "true" festgelegt ist.

  • EXCLUDEDie Regel sollte von der Client-Auswertung ausgeschlossen werden.
  • INCLUDEDie Regel sollte für alle Clients ausgeführt werden. Dies ist die Standardeinstellung.
Hinweis:

In ArcGIS Pro 2.3 und höher heißt dieser Parameter im Werkzeugdialogfeld Nur Server.

Boolean
batch
(optional)

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

  • BATCHDie Regelauswertung erfolgt zu einem späteren Zeitpunkt durch Ausführung einer Validierung.
  • NOT_BATCHMithilfe von auslösenden Ereignissen wird bestimmt, wann die Regel für die Operationen "Einfügen", "Aktualisieren" und "Löschen" ausgewertet wird. Dies ist die Standardeinstellung.

Berechnungsregeln können auf "true" oder "false" festgelegt werden. Validierungsregeln sind für diese Eigenschaft immer "true", Beschränkungsregeln sind immer "false".

Batch-Regeln werden nur für Daten mit aktivierter Verzweigungsversionierung unterstützt.

Boolean
severity
(optional)

Definieren Sie den 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 ist der niedrigste Schweregrad. Sie könnten 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önnten Sie einen hohen Schweregrad festlegen.

Diese Eigenschaft gilt nur für Validierungsregeln.

Long
tags
(optional)

Eine Reihe von Tags zum Identifizieren der Regel (durchsuchbar und indizierbar) als Möglichkeit, eine Funktionsanforderung in einem Datenmodell zuzuordnen. Sie können mehrere Tags mit einem Semikolon als Trennzeichen angeben. Beispiel: Tag1;Tag2;Tag3.

String

Abgeleitete Ausgabe

NameErklärungDatentyp
out_table

Die aktualisierte Eingabetabelle mit einer hinzugefügten Attributregel.

Tabellensicht

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)

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

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

Verwandte Themen