Свойства атрибутивных правил

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

Функция Describe возвращает следующие свойства для наборов данных с добавленными атрибутивными правилами.

Атрибутивные правила можно добавлять в базе геоданных к классу пространственных объектов или таблице. Возвращаемое функцией Describe свойство dataType относится к классу dataType пространственных объектов или таблице.

Свойства

СвойствоОписаниеТип данных
batch
(только чтение)

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

  • True – правило выполняется в пакетном режиме.
  • False – правило выполняется не в пакетном режиме.

Правила вычисления могут возвращать значение true или false, правила ограничения всегда будут возвращать значение false, а правила проверки всегда будут возвращать значение true.

Boolean
checkParameters
(только чтение)

Системное значение JSON, которое задает конфигурацию правила на базе Data Reviewer.

Более подробно об отдельных проверках ArcGIS Data Reviewer

Object
creationTime
(только чтение)

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

DateTime
description
(только чтение)

Описание атрибутивного правила.

String
errorMessage
(только чтение)

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

String
errorNumber
(только чтение)

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

Long
evaluationOrder
(только чтение)

Если тип правила – вычисление, это значение задает порядок выполнения правила. Порядок оценки основан на порядке добавления правила в набор данных. Например, если Rule A было добавлено прежде Rule B, номер оценки будет ниже для Rule A.

Long
excludeFromClientEvaluation
(только чтение)

Указывает, исключено ли правило из оценки клиента.

  • True – правило исключено из оценки клиента (только для сервера).
  • False – правило не исключается из оценки клиентами; оно выполняется для всех клиентов.

Boolean
fieldName
(только чтение)

Если правилу атрибута присвоено поле (т.е. тип правила вычисления), это свойство возвращает имя поля.

String
id
(только чтение)

Возвращает идентификатор правила в виде целочисленного значения.

Integer
isEnabled
(только чтение)

Указывает, включено ли это правило.

  • True – правило включено и будет учитываться.
  • False – правило отключено и не будет учитываться.

Boolean
name
(только чтение)

Имя атрибутивного правила.

String
referencesExternalService
(только чтение)

Указывает, ссылается ли правило на какой-либо внешний сервис.

Boolean
requiredGeodatabaseClientVersion
(только чтение)

Необходимая версия клиента базы геоданных задается для каждого правила, в зависимости от того, какие функции ArcGIS Arcade используются в выражении скрипта. Например, если скрипт содержит операцию Sequence, то необходима версия базы геоданных 10.6.1.

String
scriptExpression
(только чтение)

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

Примечание:

Это свойство недоступно для правил Data Reviewer.

String
severity
(только чтение)

Определяет серьезность ошибки. Это свойство применимо только для типов правил проверки.

Integer
subtypeCode
(только чтение)

Если правилу атрибута присваивается подтип, это свойство возвращает код подтипа, для которого он назначен.

Long
tags
(только чтение)

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

String
triggeringEvents
(только чтение)

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

String
triggeringFields
(только чтение)

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

Field
type
(только чтение)

Тип атрибутивного правила

  • esriARTCalculation - правило вычисления атрибутов
  • esriARTConstraint - правило ограничения атрибутов
  • esriARTValidation - правило проверки атрибутов

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

String
userEditable
(только чтение)

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

  • True – редакторы могут редактировать атрибутивные значения.
  • False – редакторы не могут редактировать атрибутивные значения.

Boolean

Пример кода

Пример свойств атрибутивного правила

Следующий автономный скрипт Python распечатывает отчёт о свойствах атрибутивных правил для класса пространственных объектов:

# Import the required modules
import arcpy

# Path to the input feature class or table
fc = "C:\\MyProject\\MyDatabase.sde\\myGDB.USER1.Building"

# Print a report of the attribute rule properties
attRules = arcpy.Describe(fc).attributeRules
print("- Attribute Rule Properties -")

for ar in attRules:    
    if "Calculation" in ar.type:       
        print("- Calculation Rule:")
        print(f" Name: {ar.name}")
        print(f" Creation time: {ar.creationTime}")
        print(f" Field: {ar.fieldName}")
        print(f" Subtype code: {ar.subtypeCode}")
        print(f" Description: {ar.description}")
        print(f" Is editable: {ar.userEditable}")
        print(f" Is enabled: {ar.isEnabled}")
        print(f" Evaluation order: {ar.evaluationOrder}")
        print(f" Exclude from client evaluation: {ar.excludeFromClientEvaluation}")
        print(f" Triggering events: {ar.triggeringEvents}")
        print(f" Triggering fields: {ar.triggeringfields}\n")
        print(f" Script expression: {ar.scriptExpression}\n")
        print(f" Is flagged as a batch rule: {ar.batch}\n")
        print(f" Severity: {ar.severity}\n")
        print(f" Tags: {ar.tags}\n")
        

    elif "Constraint" in ar.type:       
        print("- Constraint Rule:")
        print(f" Name: {ar.name}")
        print(f" Creation time: {ar.creationTime}")
        print(f" Subtype code: {ar.subtypeCode}")
        print(f" Description: {ar.description}")
        print(f" Is editable: {ar.userEditable}")
        print(f" Is enabled: {ar.isEnabled}")
        print(f" Error number: {ar.errorNumber}")
        print(f" Error message: {ar.errorMessage}")
        print(f" Exclude from client evaluation: {ar.excludeFromClientEvaluation}")
        print(f" Triggering events: {ar.triggeringEvents}")
        print(f" Triggering fields: {ar.triggeringfields}\n")
        print(f" Script expression: {ar.scriptExpression}\n")
        print(f" Tags: {ar.tags}\n")


    elif "Validation" in ar.type:       
        print("- Validation Rule:")
        print(f" Name: {ar.name}")
        print(f" Creation time: {ar.creationTime}")
        print(f" Subtype code: {ar.subtypeCode}")
        print(f" Description: {ar.description}")
        print(f" Is enabled: {ar.isEnabled}")
        print(f" Error number: {ar.errorNumber}")
        print(f" Error message: {ar.errorMessage}")
        print(f" Script expression: {ar.scriptExpression}\n")
        print(f" Is flagged as a batch rule: {ar.batch}\n")
        print(f" Severity: {ar.severity}\n")
        print(f" Tags: {ar.tags}\n")
Пример свойств атрибутивного правила Data Reviewer

Следующий автономный скрипт Python распечатывает отчёт о свойствах атрибутивного правила, созданного Data Reviewer:

# Import the required modules
import arcpy

# Path to the input feature class or table
fc = "C:\\MyProject\\MyDatabase.sde\\myGDB.USER1.FacilitySite"

# Print a report of the checkParameter properties
attRules = arcpy.da.Describe(fc)['attributeRules']
for rule in range(len(attRules)):
    for key, value in attRules[rule]['checkParameters'].items():
        print(f"{key}: {value}")