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

Краткая информация

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

ПодписьОписаниеТип данных
Входная таблица

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

Table View
Имя

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

String
Тип

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

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

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

Calculator Expression
Доступный для редактирования
(Дополнительный)

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

  • Отмечено - значение атрибута можно редактировать. Это значение по умолчанию
  • Не отмечено - значение атрибута нельзя редактировать.

Boolean
Включающие события
(Дополнительный)

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

  • ВставитьПравило будет применено при добавлении нового объекта.
  • ОбновитьПравило будет применено при обновлении объекта.
  • УдалитьПравило будет применено при удалении объекта.
String
Номер ошибки
(Дополнительный)

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

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

String
Сообщение об ошибке
(Дополнительный)

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

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

String
Описание
(Дополнительный)

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

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

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

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

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

String
Исключить из оценки приложения
(Дополнительный)

Определяет, будет ли приложение оценивать это правило локально перед применением изменений к рабочей области.

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

Этот параметр не применяется для типов правил проверки и вычислений, если параметр Пакетно включен.

  • Отмечено – правило будет исключено из оценки клиента.
  • Не отмечено - правило будет исключено из оценки клиента. Это значение по умолчанию

Примечание:

Для версий до ArcGIS Pro 2.4 это параметр назывался Только сервер.

Boolean
Пакетно
(Дополнительный)

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

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

Для правил вычислений этот параметр может быть отмечен или нет. Для правил проверок этот параметр не должен быть отмечен. Для правил ограничений этот параметр не должен быть отмечен.

Boolean
Важность
(Дополнительный)

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

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

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

Long
Теги
(Дополнительный)

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

String
Включающие поля
(Дополнительный)

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

Для ввода нескольких включающих полей, используйте точку с запятой в качестве разделителя, например, Field1;Field2;Field3.

String

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

ПодписьОписаниеТип данных
Добавленное правило атрибутов

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

Table View

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}, {triggering_fields})
ИмяОписаниеТип данных
in_table

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

Table View
name

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

String
type

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

  • CALCULATIONАвтоматическое заполнение атрибутивных значений объектов при задании другого атрибута объекта. Эти правила применяются на основе заданных включающих событий. Длительные вычисления можно настроить на запуск в пакетном режиме, и они будут выполняться в указанное пользователем время.При добавлении нескольких правил вычисления, важен порядок их добавления, если есть циклические зависимости. Например, Правило А вычисляет Field1, равное значению $feature.Field2 + $feature.Field3, а Правило Б вычисляет 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. Включающие события не применяются для правил вычислений, у которых для параметра batch задано BATCH.

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

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

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

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

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

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

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

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

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

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

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

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

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

Определяет, будет ли приложение оценивать это правило локально перед применением изменений к рабочей области.

Не все клиенты могут иметь возможность запускать все доступные правила, так что авторы могут исключать некоторые правила из оценки клиентов. Например, некоторые правила могут ссылаться на данные, которые ранее не были доступны для всех клиентов (причины могут включать данные в автономном режиме, размер, или безопасность) или, некоторые правила могут зависеть от пользователя или контекста (то есть, упрощенное обновление полей в приложении коллекции данных не может выполнить правило, требующее дополнительных данных, вводимых пользователем или прочей информации; но, такие клиенты, как 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
triggering_fields
[triggering_fields,...]
(Дополнительный)

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

Для ввода нескольких включающих полей, используйте точку с запятой в качестве разделителя, например, Field1;Field2;Field3.

String

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

ИмяОписаниеТип данных
out_table

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

Table View

Пример кода

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.management.AddAttributeRule(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.management.AddAttributeRule(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.management.AddAttributeRule(in_table, name, rule_type, 
                                  script_expression, "", "", 
                                  error_number, error_message, 
                                  description, subtype, "", "", 
                                  batch, severity, tags)

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

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

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