Las palabras clave de diccionario exponen comportamientos avanzados de las funciones de las reglas de atributos, por ejemplo, devoluciones de mensajes de error personalizados en declaraciones condicionales o ediciones en entidades de otra clase de entidad. Al crear expresiones de ArcGIS Arcade para reglas de atributos, el tipo de diccionario de retorno debe utilizar una de las palabras clave reservadas que aparecen a continuación. Para realizar varias operaciones, amplíe el diccionario con palabras clave distintas. Para obtener más información sobre cómo utilizar estas palabras clave de diccionario, consulte Ejemplos de expresiones de script de reglas de atributos.
Nota:
Al definir los parámetros de palabras clave de uno o varios GlobalID, asegúrese de que el valor se encuentre entre comillas simples.
result
Se devuelve para la entidad un único valor o un diccionario. Solo puede utilizar esta palabra clave con reglas de cálculo.
- Al utilizar la palabra clave result para devolver un solo valor, debe definir un campo de destino en la regla de atributo para actualizar el campo correcto.
- Puede devolver result como diccionario para actualizar varios campos de la entidad. Al devolver result como diccionario, el campo de destino de la regla de atributo es opcional. Puede especificar cualquier campo para actualizarlo en el diccionario utilizando los parámetros de palabra clave de la siguiente tabla.
Cuando el campo de destino se define en la regla de atributo y devuelve result como diccionario, tenga en cuenta lo siguiente:
- Si el campo de destino está en el diccionario, el campo de destino se actualiza con el valor definido en el diccionario.
- Si el campo de destino se omite del diccionario, no se realiza ningún cambio en el campo de destino.
Nota:
El uso de un diccionario en la palabra clave result solo se admite con ArcGIS AllSource 2.7 o ArcGIS Enterprise 10.9 y versiones posteriores.
Parámetro de palabra clave | Descripción |
---|---|
atributos | Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos. |
geometría | Edita la geometría. El valor es un Objeto de geometría. |
return {
//result is a single value
//set the attribute rule target field to 200 for $feature
'result': 200
}
return {
//result is a dictionary
//set 'field1', 'field2', and the geometry for $feature
//ArcGIS AllSource 2.7 or ArcGIS Enterprise 10.9 and later
"result": {
"attributes": {
"field1": 'field1', //updates field1 in the $feature
"field2": 11 //updates field2 in the $feature
},
"geometry": Rotate($feature) //updates geometry in $feature
}
}
errorMessage
Se devuelve un mensaje de error definido por el usuario para un fallo que se produce durante la evaluación. Utilice la palabra clave errorMessage al crear sentencias lógicas en expresiones de Arcade para devolver mensajes de error personalizados. Al devolver errorMessage, no se puede utilizar ninguna otra palabra clave de diccionario. Vea un ejemplo de cómo devolver un mensaje de error personalizado.
return {
"errorMessage": "Error message text"
}
calculationRequired
Las entidades se marcan para indicar que requieren evaluación de reglas de cálculo por lotes. Cuando se utiliza esta palabra clave, la entidad o entidades correspondientes se marcan para indicar que requieren cálculo al modificar el atributo Estado de validación. Esta palabra clave solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo marcar otras entidades para indicar que requieren evaluación.
Parámetro de palabra clave | Descripción |
---|---|
className | El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro. |
objectIDs | globalIDs | Una matriz de Id. de objeto e Id. globales que va a modificarse. Se requiere este parámetro. |
return {
'calculationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{8B421724-32D0-408A-A8EE-CCC2B064D52B}']
}]
}
validationRequired
Las entidades se marcan para indicar que requieren la evaluación de reglas de validación. Cuando se utiliza esta palabra clave, se marcan las entidades correspondientes para indicar que requieren validación al modificar el atributo Estado de validación. Esta palabra clave solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo marcar otras entidades para indicar que requieren evaluación.
Parámetro de palabra clave | Descripción |
---|---|
className | El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro. |
objectIDs | globalIDs | Una matriz de Id. de objeto e Id. globales que va a modificarse. Se requiere este parámetro. |
return {
'validationRequired': [{
'classname': 'featureclass_name',
'globalIDs': ['{60905A3D-9783-435D-B4C9-AA4ADA59AD32}']
}]
}
editar
Insertar, actualizar y eliminar entidades en clases de entidad especificadas. La palabra clave edit solamente se puede utilizar con reglas de cálculo y la opción Excluir de la evaluación de la aplicación debe estar establecida en true. Vea un ejemplo de cómo editar otra clase de entidad.
Para una red de servicios, puede usar la palabra clave edit para editar la asociación de $feature con la palabra clave associationType. Para editar cualquier asociación de la red de servicios, defina el valor className como ^UN_Association. El valor ^UN_Association proporciona acceso a la tabla de asociaciones de red de servicios para editar cualquier asociación entre entidades al utilizar los parámetros de palabra clave asociados para adds y updates.
Al realizar ediciones de asociación con la palabra clave edit, no se tienen en cuenta las reglas de red de servicios durante el proceso de evaluación. Estas entidades de res se validarán durante las tareas de topología de red, como habilitar o validar una topología de red.
Más información sobre las asociaciones de red de servicios
Parámetro de palabra clave | Descripción |
---|---|
className | El nombre de la clase de entidad o la tabla que va a modificarse. Se requiere este parámetro. |
El tipo de edición que se va a llevar a cabo. El valor es una matriz de diccionarios donde se detallan las ediciones de cada tipo de edición. |
Nota:
No cree scripts que realicen ediciones recursivas. Si el script está configurado para realizar una edición que desencadena o evalúa la regla de atributos, se crea un bucle infinito. Esto causa resultados no previstos.
adds
Use esta palabra clave en el diccionario de edit para realizar inserciones en una tabla o clase de entidad específica.
Parámetro de palabra clave | Descripción |
---|---|
atributos | Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos. |
geometría | Edita la geometría. El valor es un Objeto de geometría. |
associationType | Edita la asociación de $feature en una red de servicios. Entre los posibles valores se encuentran los siguientes:
Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores:
|
fromTerminal | El nombre del terminal de origen que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo. |
toTerminal | El nombre del terminal de destino que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo. |
isContentVisible | Especifica si el contenido es visible para una asociación de contención. El valor es true o false. |
percentAlong | El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1. |
etiqueta | Una etiqueta para una entidad o registro que aún no se ha creado. Puede hacer referencia al valor de etiqueta en otras partes del diccionario edit, como las palabras clave fromGlobalID o toGlobalID al editar el valor ^UN_Association. El valor es una cadena de caracteres única. Nota:Este parámetro solo se admite en ArcGIS AllSource 2.7 o ArcGIS Enterprise 10.9 y versiones posteriores. |
Use los siguientes parámetros de palabra clave para agregar una asociación cuando className tenga el valor ^UN_Association.
Parámetro de palabra clave | Descripción |
---|---|
fromClass | El nombre de la clase de entidad de origen o la clase de objeto que participa en la asociación. Se requiere este parámetro. |
fromGlobalID | El Id. global de la entidad u objeto de origen. Se requiere este parámetro. |
toClass | El nombre de la clase de entidad u objeto de destino que participa en la asociación. Se requiere este parámetro. |
toGlobalID | El Id. global de la entidad u objeto de destino. Se requiere este parámetro. |
associationType | El tipo de asociación entre las entidades de una red de servicios. Se requiere este parámetro. Entre los posibles valores se encuentran los siguientes:
Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores:
|
fromTerminal | El nombre del terminal de origen de una asociación de conectividad. |
toTerminal | El nombre del terminal de destino de una asociación de conectividad. |
isContentVisible | Especifica si el contenido es visible para una asociación de contención. El valor es true o false. |
percentAlong | El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1. |
return {
'edit': [{
'className': 'b_edit_dict',
'adds': [{
'attributes': {
'field_name': 11
},
'geometry': Geometry({
'x': -76.8375008,
'y': 39.4949383,
'spatialReference': {
'wkid': 4326
}
})
}]
}]
}
"edit": [{
"className": "ElectricDistributionJunctionObject",
"adds": [{ //adds a new Electric Distribution Junction Object and creates a midspan association to the $feature
"percentAlong": 0.5,
"associationType": 'midspan'
}]
}]
}
//$feature is an edge object in the utility network
//Arcade will add two junction objects and associate them to the $feature
//The junction object with asset group 5 and asset type 1 has a terminal configuration of High/Low
return {
"result": $feature.assetid,
"edit": [{
"className": "ElectricDistributionJunctionObject",
"adds": [{
"attributes": { //Adds a junction object
"assetgroup": 5,
"assettype": 1
}, //create a connectivity association between the $feature and junction object
"toTerminal": "High", //to the high side terminal of the junction object
"associationType": "junctionEdgeFrom" //on the from side of the edge object
}, {
"attributes": { //Adds a junction object
"assetgroup": 5,
"assettype": 1
}, //create a connectivity association between the $feature and junction object
"toTerminal": "High", //to the high side terminal of the junction object
"associationType": "junctionEdgeTo" //on the to side of the edge object
}]
}]
}
return { //creates two new Structure Junction Objects and creates an association between them using a tag
"edit": [{
//create two junction objects and identify them uniquely with a tag
"className": "StructureJunctionObject",
"adds": [{
"tag": "jo1", //unique identifier for new feature in the Structure Junction Object class
"attributes": {
"AssetGroup": 1,
"AssetType": 2
}
}, {
"tag": "jo2", //unique identifier for new feature in the Structure Junction Object class
"attributes": {
"AssetGroup": 1,
"AssetType": 2
}
}]
}, {
"className": "^UN_Association", //edit the association table and create an attachment association between the new junction objects
"adds": [{
"fromClass": "StructureJunctionObject",
"fromGlobalId": "jo1.globalID",
"toClass": "StructureJunctionObject",
"toGlobalId": "jo2.globalID",
"associationType": "attachment"
}]
}]
}
actualizaciones
Use esta palabra clave en el diccionario de edit para realizar actualizaciones en una tabla o clase de entidad específica.
Parámetro de palabra clave | Descripción |
---|---|
objectID | globalID | El valor de Id. de objeto o Id. global de la entidad que va a editarse. Se requiere este parámetro. |
atributos | Edita los campos especificados. El valor es un diccionario de pares de nombre de campo y atributos. |
geometría | Edita la geometría. El valor es un Objeto de geometría. |
associationType | Edita la asociación de la entidad en una red de servicios. Entre los posibles valores se encuentran los siguientes:
Los siguientes valores son posibles valores adicionales para ArcGIS Utility Networkversión 4 y posteriores:
|
fromTerminal | El nombre del terminal de origen que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo. |
toTerminal | El nombre del terminal de destino que se editará cuando el valor associationType sea conectado, junctionEdgeFrom o junctionEdgeTo. |
isContentVisible | Especifica si el contenido es visible para una asociación de contención. El valor es true o false. |
percentAlong | El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1. |
Use los siguientes parámetros de palabra clave para actualizar una asociación cuando className tenga el valor ^UN_Association.
Parámetro de palabra clave | Descripción |
---|---|
isContentVisible | Especifica si el contenido es visible para una asociación de contención. El valor es true o false. |
percentAlong | El porcentaje de una línea o eje cuando el valor de associationType sea punto intermedio (midspan). El valor es un porcentaje entre 0 y 1. |
return {
'edit': [{
'className': 'b_edit_dict',
'updates': [{
'globalID': '{7EBAB596-E9DB-40D8-9756-B2EBED2500B7}',
'attributes': {
'field_name': 22
}
}]
}]
}
return {
"result": $feature.assetid,
"edit": [{
"className": "electricdistributionassembly",
"updates": [{
"objectID": feature_objectid,
"associationType": 'container'
}]
}]
}
deletes
Use esta palabra clave en el diccionario de edit para realizar eliminaciones en una tabla o clase de entidad.
Parámetro de palabra clave | Descripción |
---|---|
objectID | globalID | El valor de Id. de objeto o Id. global de la entidad que va a eliminarse. Se requiere este parámetro. |
return {
'edit': [{
'className': 'b_edit_dict',
'deletes': [{
'objectID': 22
}]
}]
}