属性规则属性

摘要

Describe 函数将返回已添加属性规则的数据集的以下属性。

可将属性规则添加到地理数据库要素类。 返回的 Describe 函数的 dataType 属性是要素类或表的 dataType

属性

属性说明数据类型
batch
(只读)

指定是否在批处理模式下运行规则。

  • True - 在批处理模式下运行规则。
  • False - 在批处理模式下不运行规则。

计算规则可能会返回 true 或 false,但约束规则将始终返回 false,验证规则将始终返回 true。

Boolean
checkParameters
(只读)

系统生成的用于定义基于 Data Reviewer 的规则配置的 JSON 值。

了解有关可用 ArcGIS Data Reviewer 校验的详细信息

Object
creationTime
(只读)

创建属性规则的日期和时间。

DateTime
description
(只读)

属性规则的描述。

String
errorMessage
(只读)

如果属性规则具有自定义错误消息(即约束规则),则此属性将返回为该规则分配的错误消息。

String
errorNumber
(只读)

如果属性规则具有自定义错误编号(即约束规则),则此属性将返回为该规则分配的错误编号。

Long
evaluationOrder
(只读)

如果规则类型为计算,则该值可提供规则运行顺序。 赋值顺序基于将规则添加至数据集的顺序。 例如,如果 Rule ARule B 之前添加,则 Rule A 的赋值编号将较小。

Long
excludeFromClientEvaluation
(只读)

指定是否从客户端评估中排除规则。

  • True - 将从客户端赋值中排除该规则(仅限服务器)。
  • False - 不从客户端评估中排除规则;将为所有客户端运行。

Boolean
fieldName
(只读)

如果将属性规则分配给字段(即计算规则类型),则该属性将返回字段名称。

String
id
(只读)

将规则 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}")

在本主题中