Skip to main content

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

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

Функция 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

(Только для чтения)

Код подтипа, которому назначено правило атрибута.

Значение -1 указывает, что правило атрибута принадлежит всем или нескольким подтипам.

Long

subtypeCodes

(Только для чтения)

Список кодов подтипов, которым назначено правило атрибута.

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

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" Subtypes codes: {ar.subtypeCodes}")
        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" Subtypes codes: {ar.subtypeCodes}")
        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" Subtypes codes: {ar.subtypeCodes}")
        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}")