Agregar regla de atributo (Administración de datos)

Resumen

Agrega una regla de atributo a un dataset.

Las reglas de atributos son reglas definidas por el usuario que se pueden agregar a un dataset para mejorar la experiencia de edición y ayudar a imponer la integridad de datos. Estas reglas pueden usarse para rellenar valores de atributos o restringir configuraciones de entidades permitidas y se imponen durante la edición de entidades. Si se vulnera una regla al editar una entidad, se devuelve un mensaje de error.

Más información sobre las reglas de atributo

Más información sobre el lenguaje de scripts Arcade

Uso

  • Las reglas de validación y de cálculo por lotes se evalúan con el servidor de validación en el caso de los datasets versionados en rama. Para agregar estos tipos de reglas, la conexión de base de datos debe estar establecida en En rama en Tipo de versionado.

  • El dataset debe tener un campo GlobalID.

  • Para agregar una regla de atributo se requiere un bloqueo exclusivo en el dataset. Debe cerrar cualquier conexión activa al dataset lo que puede incluir detener cualquier servicio.

  • La expresión usada para definir una regla de atributo está limitada a la funcionalidad disponible usando el lenguaje Arcade.

  • Puede hacer referencia a una secuencia de base de datos creada por la herramienta Crear secuencia de base de datos en el parámetro Expresión de script mediante la función de datos de Arcade NextSequenceValue.

  • Para transferir las reglas de atributos existentes a otro dataset, puede usar las herramientas Exportar reglas de atributos e Importar reglas de atributos en lugar de ejecutar esta herramienta varias veces.

  • Nota:

    Una vez que agregue las reglas de atributos a un dataset, la versión del cliente mínima para el dataset es ArcGIS Pro 2.1. Significa que el dataset no estará disponible para su uso en ArcMap.

Sintaxis

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})
ParámetroExplicaciónTipo de datos
in_table

La tabla o clase de entidad a la que se aplicará la nueva regla.

Table View
name

Un nombre único para la nueva regla.

String
type

Especifica el tipo de regla de atributo que se desea agregar.

  • CALCULATIONRellene automáticamente valores de atributo para las entidades cuando se defina otro atributo en una entidad. Estas reglas se aplican en función de los eventos desencadenadores especificados. Se pueden ajustar cálculos largos para que se ejecuten en modo de lote y se evaluarán en los momentos que defina el usuario.Al agregar varias reglas de cálculo, el orden en el que se agregan las reglas es importante si existen dependencias circulares. Por ejemplo, la Regla A calcula que Field1 es igual al valor de $feature.Field2 + $feature.Field3 y la Regla B calcula que Field4 es igual a $feature.Field1 + $feature.Field5; el resultado del cálculo puede ser muy distinto en función del orden en que se agreguen las reglas.
  • CONSTRAINTEspecifique configuraciones de atributo permitidas para una entidad. Cuando se vulnera la regla de restricción, se genera un error y la entidad no se almacena. Por ejemplo, si el valor de Field A debe ser menor que la suma de Field B y Field C, se genera un error cuando se vulnera una restricción.
  • VALIDATIONCompruebe la existencia de entidades con un proceso de validación por lotes. Las reglas se evalúan en los momentos que defina el usuario. Si se vulnera una regla, se crea una entidad de error. El tipo de regla solo se puede usar para los datos que se hayan establecido como versionados en rama.
String
script_expression

Una expresión de Arcade que define la regla.

Calculator Expression
is_editable
(Opcional)

especifica si se puede editar el valor del atributo. Las reglas de atributos pueden configurarse para bloquear o permitir a los editores la edición de los valores de atributo del campo que se está calculando. Este parámetro solo es aplicable al tipo de regla de atributo de cálculo.

  • EDITABLELos editores podrán editar el valor del atributo. Esta es la opción predeterminada.
  • NONEDITABLELos editores no podrán editar el valor del atributo.
Boolean
triggering_events
[triggering_events,...]
(Opcional)

Especifica los eventos de edición que desencadenan la regla de atributo para aplicarla. Este parámetro solo es válido para los tipos de regla de restricción y cálculo. Se debe proporcionar al menos un evento desencadenador para reglas de cálculo que tienen el parámetro Lote desactivado (batch=NOT_BATCH en Python). Los eventos desencadenadores no se aplican a reglas de cálculo que tengan el parámetro Lote activado (batch=BATCH en Python).

  • INSERTLa regla se aplica cuando se agrega una nueva entidad.
  • UPDATELa regla se aplica cuando se actualiza una entidad.
  • DELETELa regla se aplica cuando se elimina una entidad.
String
error_number
(Opcional)

Un número de error que se devuelve cuando se vulnera esta regla. Este valor no tiene por qué ser único, de modo que puede que se devuelva el mismo número de error personalizado para varias reglas.

Este parámetro es obligatorio para las reglas de restricción y validación y es opcional para reglas de cálculo.

String
error_message
(Opcional)

Un mensaje de error que se devuelve cuando se vulnera esta regla. Se recomienda usar un mensaje descriptivo que ayude al editor a comprender la infracción cuando se produce. El mensaje está limitado a 2000 caracteres.

Este parámetro es obligatorio para las reglas de restricción y validación y es opcional para reglas de cálculo.

String
description
(Opcional)

La descripción de la nueva regla de atributo. La descripción está limitada a 256 caracteres.

String
subtype
(Opcional)

El subtipo al que se aplicará la regla si el dataset tiene subtipos.

String
field
(Opcional)

El nombre de un campo existente al que se aplicará la regla. Este parámetro es obligatorio para el tipo de regla de atributo de cálculo; no es aplicable para el tipo de regla de restricción.

String
exclude_from_client_evaluation
(Opcional)

Especifica si se evaluará la regla antes de aplicar las ediciones. Dado que quizá no todos los clientes sean capaces de ejecutar todas las reglas disponibles, tiene la opción de marcar una regla solo para los clientes simples. Por ejemplo, algunas reglas pueden referirse a datos que no están disponibles para todos los clientes (por motivos tales como datos sin conexión, tamaño o seguridad), o algunas reglas pueden depender del usuario o el contexto (es decir, una actualización de campo ligera en ArcGIS Collector podría no ejecutar una regla que requiere una entrada adicional del usuario o más conocimientos; sin embargo, puede que un cliente como ArcGIS Pro sí sea compatible). Este parámetro no se aplica para reglas de validación o de cálculo si el parámetro batch es BATCH.

  • EXCLUDELa regla excluirá de la evaluación del cliente.
  • INCLUDELa regla se ejecutará en todos los clientes. Esta es la opción predeterminada.
Boolean
batch
(Opcional)

Especifica si la regla se ejecutará en modo de lote.

  • BATCHLa evaluación de la regla se realizará más adelante, mediante la validación.
  • NOT_BATCHSe utilizarán eventos desencadenadores para determinar si la regla se evalúa para operaciones de borrado, actualización o inserción. Esta es la opción predeterminada.

Las reglas de cálculo pueden estar BATCH o NOT_BATCH. Las reglas de validación siempre están BATCH para esta propiedad y las reglas de restricción siempre están NOT_BATCH.

Las reglas de lotes solo se admiten para datos con el versionado en rama habilitado.

Boolean
severity
(Opcional)

La gravedad del error.

Se puede seleccionar un valor dentro del rango de 1-5 para definir la gravedad de la regla. El valor de 1 es alto, el más grave, y el valor de 5 es bajo, el menos grave. Por ejemplo, podría ofrecer una gravedad baja para una regla de atributo específica e ignorar el error durante los flujos de trabajo de producción de datos, o bien establecer una gravedad alta donde habría que corregir el error para que los datos recopilados sean precisos.

Esta propiedad solo se aplica a reglas de validación.

Long
tags
[tags,...]
(Opcional)

Un conjunto de etiquetas para identificar la regla (se pueden buscar e indexar) como forma de asignarlas a un requisito funcional en un modelo de datos. Para introducir varias etiquetas, use el punto y coma como delimitador, por ejemplo, Etiqueta1;Etiqueta2;Etiqueta3.

String

Salida derivada

NombreExplicaciónTipo de datos
out_table

La tabla de entrada actualizada con una regla de atributo agregada.

Vista de tabla

Muestra de código

Ejemplo 1 de AddAttributeRule (ventana de Python)

Agregar una regla de cálculo que calcula el campo labeltext de la clase de entidad 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)
Ejemplo 2 de AddAttributeRule (ventana de Python)

Agregar una regla de restricción que limita el atributo de presión de funcionamiento de la clase de entidad GasPipes a 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)
Ejemplo 3 de AddAttributeRule (ventana de Python)

Agregar una regla de validación a la clase de entidad GasPipes para marcar todas las entidades existentes con una presión de funcionamiento mayor que 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)

Información de licenciamiento

  • Basic: No
  • Standard: Sí
  • Advanced: Sí

Temas relacionados