Добавить правило атрибутов (Управление данными)

Сводка

Добавляет правило атрибута к набору данных.

Правила атрибута указываются пользователем и могут быть добавлены к набор данных для улучшения процесса редактирования и сохранения целостности данных. Эти правила могут использоваться для заполнения значений атрибутов или ограничения допустимых конфигураций объектов и применяются во время редактирования объектов. Если при редактировании объектов это правило нарушается, появляется сообщение об ошибке.

Более подробно о правилах атрибутов

Более подробно о языке написания скриптов Arcade

Использование

  • Пакетное вычисление и правила проверки оцениваются с помощью сервера проверки для наборов данных с версиями ветвей. Чтобы добавить эти типы правил, в подключении к базе данных должна быть выбрана опция Ветвь для Типа версии.

  • В наборе данных должно быть поле GlobalID.

  • Для добавления правила атрибутов требуется полная блокировка набора данных. Необходимо закрыть активные подключения к набору данных, включая возможную остановку сервисов.

  • Выражение, используемое для определения правил атрибутов, ограничивается функциональностью, доступной для языка Arcade.

  • Вы можете ссылаться на последовательность баз данных, созданную инструментом Создать последовательность баз данных, в параметре Выражение скрипта, используя функцию данных Arcade NextSequenceValue.

  • Чтобы перенести существующие правила атрибутов в другой набор данных, можно использовать инструменты Экспорт правил атрибутов и Импорт правил атрибутов вместо многократного запуска этого инструмента.

  • Примечание:

    Для добавления правил атрибутов в набор данных, минимальная клиентская версия набора данных должна быть ArcGIS Pro 2.1. Это означает, что набор данных больше не будет доступен для использования в ArcMap.

Синтаксис

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ОбъяснениеТип данных
in_table

Таблица или класс пространственных объектов, для которых будет применяться новое правило.

Table View
name

Уникальное имя нового правила.

String
type

Задает тип правил атрибутов для добавления.

  • CALCULATIONАвтоматическое заполнение атрибутивных значений объектов при задании другого атрибута объекта. Эти правила применяются на основе заданных включающих событий. Длительные вычисления можно настроить на запуск в пакетном режиме, они будут выполняться в указанное пользователем время.При добавлении нескольких правил вычисления, важен порядок их добавления, если есть циклические зависимости. Например, Правило A вычисляет, что Field1 равно значению $feature.Field2 + $feature.Field3, а Правило B вычисляет, что Field4 равно $feature.Field1 + $feature.Field5; результаты вычисления могут сильно отличаться в зависимости от порядка добавления правил.
  • CONSTRAINTУкажите разрешенные конфигурации атрибутов для объекта. Если нарушается связанное правило, создается ошибка и объект не сохраняется. Например, если значение Field A должно быть меньше, чем сумма Field B и Field C, и если это ограничение будет нарушено – создается ошибка
  • VALIDATIONВыполните проверку существующих объектов с помощью процесса пакетной проверки. Правила оцениваются в заданное пользователем время. При нарушении правила, создается объект-ошибка. Этот тип правила может использоваться только с данными, где включены версии с ветвлением.
String
script_expression

Выражение Arcade, которое определяет правило.

Calculator Expression
is_editable
(Дополнительный)

Указывает, можно ли редактировать значение атрибута. Правила атрибутов можно настроить для запрета или разрешения редакторам изменять значения атрибутов поля, которое вычисляется. Этот параметр применяется только для типа правил вычисления атрибутов.

  • EDITABLEРедакторы смогут редактировать значение атрибута. Это значение по умолчанию.
  • NONEDITABLEРедакторы не смогут редактировать значение атрибута.
Boolean
triggering_events
[triggering_events,...]
(Дополнительный)

Укажите события редактирования, которые приведут к вступлению в силу правила атрибутов. Этот параметр действует только для правил вычислений и ограничений. Как минимум одно включающее событие должно быть задано для правил вычислений, у которых не выбран параметр Пакетно (batch=NOT_BATCH в Python). Включающие события не применяются для правил вычислений, у которых отмечен параметр Пакетно (batch=BATCH в Python)

  • INSERTПравило будет применено при добавлении нового объекта.
  • UPDATEПравило будет применено при обновлении нового объекта.
  • DELETEПравило будет применено при удалении объекта.
String
error_number
(Дополнительный)

Номер ошибки, который будет возвращен при нарушении этого правила. Это значение может не быть уникальным, поэтому для многих правил может возвращаться пользовательский номер ошибки.

Этот параметр требуется для правил ограничений и проверок; для правил вычислений он не обязателен.

String
error_message
(Дополнительный)

Сообщение об ошибке, которое будет возвращено при нарушении этого правила. Рекомендуется, чтобы сообщение содержало описание, чтобы помочь редактору понять нарушение при его возникновении. Длина сообщения не должна превышать 2000 символов.

Этот параметр требуется для правил ограничений и проверок; для правил вычислений он не обязателен.

String
description
(Дополнительный)

Описание нового правила атрибутов. Длина описания не должна превышать 256 символов.

String
subtype
(Дополнительный)

Подтип, к которому будет применяться правило, если набор данных имеет подтипы.

String
field
(Дополнительный)

Имя существующего поля, к которому будет применяться правило. Этот параметр необходим для типа правила атрибутов вычисления; он неприменим для типа правила ограничения.

String
exclude_from_client_evaluation
(Дополнительный)

Указывает, будет ли правило оцениваться до применения изменений. Поскольку не все клиенты могут иметь возможность запускать все доступные правила, можно выбрать настройку Правила только для простых клиентов. Например, некоторые правила могут ссылаться на данные, которые ранее не были доступны для всех клиентов (причины могут включать данные в автономном режиме, размер, или безопасности), или некоторые правила могут зависеть от пользователя или контекста (то есть, легкое поле обновления в ArcGIS Collector не может выполнить правило, которое требует дополнительных данных, вводимых пользователем или прочей информации; но, такие клиенты, как ArcGIS Pro могут поддерживать это правило). Этот параметр не применяется для правил проверки и вычислений, если параметр batch задан как BATCH.

  • EXCLUDEПравило будет исключено из оценки клиента.
  • INCLUDEПравило будет исключено для всех клиентов. Это значение по умолчанию.
Boolean
batch
(Дополнительный)

Указывает, будет ли правило выполняться в пакетном режиме.

  • BATCHОценка правила будет выполняться позже, при выполнении проверки.
  • NOT_BATCHОценка операций вставки, обновления или удаления происходит с помощью включающих событий. Это значение по умолчанию.

Правила вычислений могут быть BATCH или NOT_BATCH. Правила проверки, в данном параметре, всегда BATCH, а правила ограничений всегда NOT_BATCH.

Пакетные правила поддерживаются только для данных с версиями с ветвлениями.

Boolean
severity
(Дополнительный)

Серьезность ошибки.

Для определения важности правила можно выбрать значение в диапазоне от 1 до 5. Значение 1 – высокая серьезность, значение 5 – низкая. Например, вы можете задать низкую важность определенному правилу атрибутов и игнорировать ошибку при работе с данными, или задать высокую важность, когда ошибка должна быть исправлена для сохранения точности данных.

Этот параметр применим только для правил проверки.

Long
tags
[tags,...]
(Дополнительный)

Набор тегов для идентификации правила (доступного для поиска и индексирования) как способ обозначения функциональных требований модели данных. Для ввода нескольких тегов, используйте точку с запятой, например, Tag1;Tag2;Tag3.

String

Производные выходные данные

NameОбъяснениеТип данных
out_table

Обновленная входная таблица с добавленным правилом атрибута.

Представление таблицы

Пример кода

AddAttributeRule, пример 1 (окно Python)

Добавление правила вычисления, которое вычисляет поле labeltext класс пространственных объектов 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)
AddAttributeRule, пример 2 (окно Python)

Добавление правила ограничения, которое ограничивает атрибут рабочего давления класса 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)
AddAttributeRule, пример 3 (окно Python)

Добавление правила проверки к классу объектов GasPipes для обозначения объектов с рабочим давлением, превышающим 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)

Информация о лицензиях

  • Basic: Нет
  • Standard: Да
  • Advanced: Да

Связанные разделы