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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Для добавления правил атрибутов в набор данных, минимальная клиентская версия набора данных должна быть 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
Включающие события
(Дополнительный)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание:

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

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

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

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

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

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

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

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

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

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

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

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

String

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

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

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

Вид Таблица

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

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

ИмяОписаниеТип данных
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: Да

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