Mots-clés du dictionnaire de règles attributaires

Les mots-clés du dictionnaire permettent un comportement avancé des fonctions des règles attributaires, comme le renvoi de messages d’erreur personnalisés avec les instructions conditionnelles ou l’application des fonctions de mise à jour sur des entités d’une autre classe d’entités. Lorsque vous rédigez des expressions ArcGIS Arcade pour des règles attributaires, le type de dictionnaire de renvoi doit utiliser l’un des mots-clés réservés répertoriés ci-dessous. Pour effectuer plusieurs opérations, étendez le dictionnaire avec des mots-clés différents. Pour en savoir plus sur l’utilisation de ces mots-clés du dictionnaire, reportez-vous à la rubrique Exemples d’expressions de script des règles attributaires.

Remarque :

Lorsque vous définissez les paramètres de mots-clés GlobaID ou GlobalID, assurez-vous que la valeur est placée entre des guillemets simples.

result

Renvoie une valeur unique ou un dictionnaire pour l’entité. Vous ne pouvez utiliser ce mot-clé qu’avec des règles de calcul.

Lorsque vous utilisez le mot-clé result pour renvoyer une valeur unique, vous devez définir un champ cible dans la règle attributaire afin de mettre à jour le champ approprié. Vous pouvez renvoyer un result sous forme de dictionnaire pour mettre à jour plusieurs champs de l’entité. Lorsqu’un result est renvoyé sous forme de dictionnaire, le champ cible dans la règle attributaire est facultatif. Vous pouvez spécifier n’importe quel champ à mettre à jour dans le dictionnaire à l’aide des paramètres de mot-clé présentés dans le tableau ci-dessous.

Lorsque le champ cible est défini dans la règle attributaire et que vous renvoyez un result sous forme de dictionnaire :

  • Si le champ cible se trouve dans le dictionnaire, le champ cible est mis à jour avec la valeur définie dans le dictionnaire.
  • Si le champ cible est omis dans le dictionnaire, aucune modification n’est apportée au champ cible.
Attention :

Les paramètres de mot-clé pour un result dans une règle attributaire ne sont pris en charge qu’avec ArcGIS Pro 3.1 ou ArcGIS Enterprise et versions ultérieures.

Paramètre de mot-cléDescription

attributs

Met à jour les champs spécifiés. La valeur est un dictionnaire de paires nom de champ et attribut.

géométrie

Met à jour la géométrie. La valeur est un objet géométrie.

return {
    //result is a single value
    'result': 200
}
return {
    //result is a dictionary
    "result": {
        "attributes": {
            "field1": 'field1', //updates field1 in the $feature 
            "field2": 11 //updates field2 in the $feature 
        },
        "geometry": Rotate($feature) //updates geometry in $feature
    }

}

errorMessage

Indique un message d’erreur défini par l’utilisateur, correspondant à une erreur survenue pendant l’évaluation. Utilisez le mot-clé errorMessage lorsque vous créez des instructions logiques dans des expressions Arcade pour le renvoi de messages d’erreur personnalisés. Lorsque errorMessage est renvoyé, aucun autre mot-clé de dictionnaire ne peut être utilisé. Étudiez un exemple illustrant comment renvoyer un message d’erreur personnalisé.

return {
    "errorMessage": "Error message text"
}

calculationRequired

Marque d’autres entités comme nécessitant une évaluation des règles de calcul par lots. Lorsque ce mot-clé est utilisé, il convient de modifier l’attribut Validation Status (Statut de validation) pour que la ou les entités correspondantes soient marquées comme nécessitant un calcul. Ce mot-clé ne peut être utilisé qu’avec des règles de calcul, sous réserve que l’option Exclude from application evaluation (Exclure de l’évaluation de l’application) soit définie sur true (vrai). Consultez un exemple illustrant la façon de marquer d’autres entités pour évaluation.

Paramètre de mot-cléDescription

className, nom de classe

(obligatoire) Nom de la table ou de la classe d’entités à modifier. La valeur est le nom de la classe d’entités.

objectIDs | globalIDs

(obligatoire) Matrice d’ObjectID ou de GlobalID à modifier. La valeur est une matrice d’ObjectID ou de GlobalID.

return {
    'calculationRequired': [{
        'classname': 'featureclass_name',
        'globalIDs': ['{8B421724-32D0-408A-A8EE-CCC2B064D52B}']
    }]
}

validationRequired

Marque d’autres entités comme nécessitant une évaluation des règles de validation. Lorsque ce mot-clé est utilisé, il convient de modifier l’attribut Validation Status (Statut de validation) pour que les entités correspondantes soient marquées comme nécessitant une validation. Ce mot-clé ne peut être utilisé qu’avec des règles de calcul, sous réserve que l’option Exclude from application evaluation (Exclure de l’évaluation de l’application) soit définie sur true (vrai). Consultez un exemple illustrant la façon de marquer d’autres entités pour évaluation.

Paramètre de mot-cléDescription

className, nom de classe

(obligatoire) Nom de la table ou de la classe d’entités à modifier. La valeur est le nom de la classe d’entités.

objectIDs | globalIDs

(obligatoire) Matrice d’ObjectID ou de GlobalID à modifier. La valeur est une matrice d’ObjectID ou de GlobalID.

return {
    'validationRequired': [{
        'classname': 'featureclass_name',
        'globalIDs': ['{60905A3D-9783-435D-B4C9-AA4ADA59AD32}']
    }]
}

modifier

Effectue l’insertion, la mise à jour et la suppression des entités dans les classes d’entités spécifiées. Le mot-clé edit ne peut être utilisé qu’avec des règles de calcul, et l’option Exclude from application evaluation (Exclure de l’évaluation de l’application) doit être définie sur true (vrai). Consultez un exemple illustrant la façon de mettre à jour une autre classe d’entités.

Pour un réseau de distribution, vous pouvez utiliser le mot-clé edit pour mettre à jour l’association de $feature à l’aide du mot-clé associationType. Pour mettre à jour une association dans le réseau de distribution, attribuez à ^UN_Association la valeur className. ^UN_Association vous donne accès à la table d’associations du réseau de distribution pour mettre à jour toute association entre des entités lorsque vous utilisez les paramètres de mot-clé associés pour des adds et des updates.

Lorsque vous mettez à jour des associations avec le mot-clé edit (mettre à jour), les règles du réseau de distribution ne sont pas prises en compte au cours de l’évaluation. Les entités de réseau sont validées au cours de tâches de topologie du réseau telles que l’activation ou la validation de la topologie du réseau.

En savoir plus sur les associations de réseau de distribution

Paramètre de mot-cléDescription

className, nom de classe

(obligatoire) Nom de la table ou de la classe d’entités à modifier. La valeur est le nom de la classe d’entités.

adds | updates | deletes

Type de mise à jour à effectuer. La valeur est une matrice de dictionnaires détaillant les mises à jour de chaque type de mise à jour.

Remarque :

Ne créez pas de script qui effectue des mises à jour récursives. Si un script est configuré pour effectuer une mise à jour qui déclenche ou évalue la règle attributaire, une boucle infinie est créée. Cela génère des résultats inattendus.

adds

Mot-clé à utiliser dans le dictionnaire edit pour effectuer des insertions dans une classe d’entités ou une table spécifiée.

Paramètre de mot-cléDescription

attributs

Met à jour les champs spécifiés. La valeur est un dictionnaire de paires nom de champ et attribut.

géométrie

Met à jour la géométrie. La valeur est un objet géométrie.

associationType

Met à jour l’association de $feature dans un réseau de distribution. Parmi les valeurs possibles, on compte les suivantes :

  • connecté
  • conteneur
  • contenu
  • structure
  • attached

Voici les autres valeurs possibles pour la version 4 du réseau de distribution et versions ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

La borne d’origine à mettre à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo. La valeur est le nom de la borne.

toTerminal

La borne de destination à mettre à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo. La valeur est le nom de la borne.

isContentVisible

Indique si le contenu est visible pour une association de contenu. La valeur est true (vrai) ou false (faux).

percentAlong

Le pourcentage le long d’une ligne ou d’un tronçon lorsque associationType est à mi-portée. La valeur est un pourcentage compris entre 0 et 1.

balise

Définit une balise pour une entité ou un enregistrement qui n’a pas encore été créé. Vous pouvez faire référence à la valeur de la balise dans d’autres parties du dictionnaire edit comme les mots-clés fromGlobalID ou toGlobalID au moment de mettre à jour ^UN_Association. La valeur est une chaîne unique.

Remarque :

La balise ne peut être utilisée qu’avec ArcGIS Pro 3.1 ou ArcGIS Enterprise 10.9 et version ultérieure.

Paramètres de mot-clé pour ajouter une association lorsque className est défini sur ^UN_Association.

Paramètre de mot-cléDescription

fromClass

(obligatoire) Nom de la classe d’entités ou d’objets participant à l’association.

fromGlobalID

(obligatoire) GlobalID de l’entité ou de l’objet.

toClass

(obligatoire) Nom de la classe d’entités ou d’objets participant à l’association.

toGlobalID

(obligatoire) GlobalID de l’entité ou de l’objet.

associationType

(obligatoire) Type d’association entre les entités d’un réseau de distribution. Parmi les valeurs possibles, on compte les suivantes :

  • connectivité
  • inclusion
  • pièce jointe

Voici les autres valeurs possibles pour la version 4 du réseau de distribution et versions ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Borne d’origine d’une association de connectivité. La valeur est le nom de la borne.

toTerminal

Borne de destination d’une association de connectivité. La valeur est le nom de la borne.

isContentVisible

Indique si le contenu est visible pour une association de contenu. La valeur est true (vrai) ou false (faux).

percentAlong

Le pourcentage le long d’une ligne ou d’un tronçon lorsque associationType est à mi-portée. La valeur est un pourcentage compris entre 0 et 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 and midspan association to the $feature
        "percentAlong": 0.5,
        "associationType": 'midspan'
    }]
}]
}
//$feature is an edge object in the utility network
//The 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 create a attachment association between the new junction objects
        "adds": [{
            "fromClass": "StructureJunctionObject",
            "fromGlobalId": "jo1.globalID",
            "toClass": "StructureJunctionObject",
            "toGlobalId": "jo2.globalID",
            "associationType": "attachment"
        }]
    }]
}

mises à jour

Mot-clé à utiliser dans le dictionnaire edit pour effectuer des mises à jour dans une classe d’entités ou une table spécifiée.

Paramètre de mot-cléDescription

objectID | globalID

(obligatoire) Valeur d’ObjectID ou de GlobalID d’une entité à mettre à jour. La valeur est un ObjectID ou un GlobalID.

attributs

Met à jour les champs spécifiés. La valeur est un dictionnaire de paires nom de champ et attribut.

géométrie

Met à jour la géométrie. La valeur est un objet géométrie.

associationType

Met à jour l’association de l’entité dans un réseau de distribution. Parmi les valeurs possibles, on compte les suivantes :

  • connecté
  • conteneur
  • contenu
  • structure
  • attached

Voici les autres valeurs possibles pour la version 4 du réseau de distribution et versions ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

La borne d’origine à mettre à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo. La valeur est le nom de la borne.

toTerminal

La borne de destination à mettre à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo. La valeur est le nom de la borne.

isContentVisible

Indique si le contenu est visible pour une association de contenu. La valeur est true (vrai) ou false (faux).

percentAlong

Le pourcentage le long d’une ligne ou d’un tronçon lorsque associationType est à mi-portée. La valeur est un pourcentage compris entre 0 et 1.

Paramètres de mot-clé pour mettre à jour une association lorsque className est défini sur ^UN_Association.

Paramètre de mot-cléDescription

isContentVisible

Indique si le contenu est visible pour une association de contenu. La valeur est true (vrai) ou false (faux).

percentAlong

Le pourcentage le long d’une ligne ou d’un tronçon lorsque associationType est à mi-portée. La valeur est un pourcentage compris entre 0 et 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

Mot-clé à utiliser dans le dictionnaire edit pour effectuer des suppressions dans une classe d’entités ou une table.

Paramètre de mot-cléDescription

objectID | globalID

(obligatoire) Valeur d’ObjectID ou de GlobalID d’une entité à mettre à jour. La valeur est un ObjectID ou un GlobalID.

return {
    'edit': [{
        'className': 'b_edit_dict',
          'deletes': [{
            'objectID': 22
        }]
    }]
}