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

Une valeur unique ou un dictionnaire est renvoyé 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 result sous forme de dictionnaire pour mettre à jour plusieurs champs de l’entité. Lorsque 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 result sous forme de dictionnaire, gardez ce qui suit à l’esprit :

  • 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.
Remarque :

L’utilisation d’un dictionnaire dans le mot-clé result est uniquement prise en charge avec ArcGIS AllSource 2.7 ou ArcGIS Enterprise 10.9 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
    //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

Un message d’erreur défini par l’utilisateur, correspondant à une erreur survenue pendant l’évaluation, est renvoyé. 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

Les entités sont marquées 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

Nom de la classe d’entités ou de la table qui sera modifiée. Ce paramètre est obligatoire.

objectIDs | globalIDs

Matrice des ID d’objet ou des ID globaux qui seront modifiés. Ce paramètre est obligatoire.

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

validationRequired

Les entités sont marquées 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

Nom de la classe d’entités ou de la table qui sera modifiée. Ce paramètre est obligatoire.

objectIDs | globalIDs

Matrice des ID d’objet ou des ID globaux qui seront modifiés. Ce paramètre est obligatoire.

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

modifier

Entités d’insertion, de mise à jour et de suppression dans des classes d’entités spécifiques. 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 à className la valeur ^UN_Association. La valeur ^UN_Association vous permet d’accéder à 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 adds et 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

Nom de la classe d’entités ou de la table qui sera modifiée. Ce paramètre est obligatoire.

adds | updates | deletes

Type de mise à jour qui sera effectuée. 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

Utilisez ce mot-clé 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 ArcGIS Utility Network version 4 et ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Nom de la borne d’origine qui sera mise à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo.

toTerminal

Nom de la borne de destination qui sera mise à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo.

isContentVisible

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

percentAlong

Pourcentage le long d’une ligne ou d’un tronçon lorsque la valeur associationType est midspan. La valeur est un pourcentage compris entre 0 et 1.

balise

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 la valeur ^UN_Association. La valeur est une chaîne unique.

Remarque :

Ce paramètre est uniquement pris en charge avec ArcGIS AllSource 2.7 ou ArcGIS Enterprise 10.9 et versions ultérieures.

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

Paramètre de mot-cléDescription

fromClass

Nom de la classe d’entités ou d’objets d’origine participant à l’association. Ce paramètre est obligatoire.

fromGlobalID

ID global de l’entité ou de l’objet d’origine. Ce paramètre est obligatoire.

toClass

Nom de la classe d’entités ou d’objets de destination participant à l’association. Ce paramètre est obligatoire.

toGlobalID

ID global de l’entité ou de l’objet de destination. Ce paramètre est obligatoire.

associationType

Type d’association entre les entités d’un réseau de distribution. Ce paramètre est obligatoire.

Parmi les valeurs possibles, on compte les suivantes :

  • connectivité
  • inclusion
  • pièce jointe

Voici les autres valeurs possibles pour ArcGIS Utility Network version 4 et ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Nom de la borne d’origine d’une association de connectivité.

toTerminal

Nom de la borne de destination d’une association de connectivité.

isContentVisible

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

percentAlong

Pourcentage le long d’une ligne ou d’un tronçon lorsque la valeur associationType est midspan. 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 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"
        }]
    }]
}

mises à jour

Utilisez ce mot-clé 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

Valeur d’ID d’objet ou d’ID global de l’entité à mettre à jour. Ce paramètre est obligatoire.

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 ArcGIS Utility Network version 4 et ultérieures :

  • junctionEdgeFrom
  • junctionEdgeTo
  • midspan

fromTerminal

Nom de la borne d’origine qui sera mise à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo.

toTerminal

Nom de la borne de destination qui sera mise à jour lorsque la valeur associationType est sur connecté, junctionEdgeFrom ou junctionEdgeTo.

isContentVisible

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

percentAlong

Pourcentage le long d’une ligne ou d’un tronçon lorsque la valeur associationType est midspan. La valeur est un pourcentage compris entre 0 et 1.

Utilisez les paramètres de mot-clé suivants 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

Pourcentage le long d’une ligne ou d’un tronçon lorsque la valeur associationType est midspan. 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

Utilisez ce mot-clé 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

Valeur d’ID d’objet ou d’ID global de l’entité à supprimer. Ce paramètre est obligatoire.

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