Associer les types d’affectations ArcGIS Workforce aux affectations dans ArcGIS Dashboards
Dans ce billet de blogue, nous vous guiderons dans l’utilisation d’Arcade et des expressions de données dans ArcGIS Dashboards. Cette technique vous permet de joindre de manière transparente les champs du tableau Assignment Types (types d’affectations) à la couche d’entité Assignments (affectations) dans un objet FeatureSet en mémoire, ce qui offre un aperçu plus clair des types d’affectations qui ont été réalisés avec succès.
Avertissement : ce flux de travaux s’effectue dans ArcGIS Online et pourrait ne pas fonctionner dans les anciennes versions d’ArcGIS Enterprise.
Si vous avez déjà utilisé ArcGIS Workforce pour superviser l’affectation des tâches au sein de votre organisation, vous avez peut-être observé la génération automatique d’un modèle de données chaque fois qu’un nouveau projet est créé. Ce qui arrive essentiellement quand vous configurez les types d’affectations (Assignment Types), c’est que vous créez une table non spatiale qui se lie à votre couche d’entité d’affectations (Assignments).
Cette connexion est établie par l’intermédiaire du champ [GlobalID] (type de données GlobalID) dans la table Assignment Types (types d’affectations) et le champ [Assignment Type] (type de données GUID) dans la couche d’entité Assignments (affectations). En tant que répartiteur ArcGIS Workforce, lorsque vous créez une affectation, vous liez essentiellement le champ [GlobalID] de la table Assignment Types (types d’affectations) au champ [Assignment Type] dans la couche d’entités Assignments (affectations).
Cependant, quand vous configurez un tableau de bord des opérations Operations Dashboard pour suivre les affectations de l’effectif, il est crucial que soit accessible l’information descriptive de la table Assignment Types (types d’affectations) (champ [Description] – type de données Texte). Cette information permet de classer les différents types d’affectations effectués.
Modèle de données dans ArcGIS Workforce
Pour comprendre comment joindre l’information de la table Assignment Types (types d’affectations) à la couche d’entité des affections Assignments, vous devez d’abord comprendre la structure d’un projet ArcGIS Workforce, qui se compose de deux couches d’entités, de trois tables et de trois domaines de valeurs précodées, au sein d’un seul service d’entités.
La relation Primary Key (PK) – Foreign Key (FK) transfère uniquement le champ [GlobalID] de la table Assignment Types (types d’affectations), mais ne transfère pas le champ [Description] qui contient la description textuelle du type d’affectation généré lors de la création des types d’affectations ArcGIS Workforce. Dans la figure ci-dessous, nous avons la table d’attributs de la couche d’entité des affectations Assignments. Remarquez que le champ [Assignment Type] ne contient que le GlobalID (par exemple, 8d31babd-52ec-4eb6-afe9-4d1189536e7b), et non le type d’affectation proprement dit au format texte.
Dans la table Assignment Types (types d’affectations), nous voyons que le champ [Description] contient les types d’affectations générés dans l’application web ArcGIS Workforce. Chaque affectation créée dans le projet ArcGIS Workforce reçoit un identifiant unique (champ [GlobalID]).
Avertissement : dans l’image ci-dessous, les champs [Catégorie], [Intervention], [Cout_unitaire] et [Unités] ont été ajoutés manuellement à la table Assignment Types (types d’affectations) et ne font pas partie de la structure standard d’ArcGIS Workforce. Ils ont été ajoutés pour recueillir des informations sur les coûts prévus pour chaque affectation.
Maintenant… la question reste de savoir comment joindre le champ [Description] de la table Assignment Types (types d’affectations) à la couche d’entité des affectations Assignments, ainsi que tout autre champ que je souhaiterais inclure. Bien que vous puissiez le faire en utilisant une couche Workforce jointe dans les outils d’analyse de la visionneuse de cartes, il en résulte une couche d’entité statique nouvellement générée, ce qui nécessite soit une regénération manuelle régulière de la couche jointe, soit la programmation du processus avec ArcGIS API for Python.
Dans les sections restantes de ce billet de blogue, nous allons démontrer comment vous pouvez le faire dynamiquement sans générer de couches d’entités intermédiaires statiques, en utilisant des expressions de données dans ArcGIS Dashboards. Les expressions de données sont des expressions Arcade écrites pour renvoyer un objet FeatureSet. Un objet FeatureSet représente une connexion dynamique à une couche en mémoire et ne génère donc pas de contenu supplémentaire dans votre organisation.
Expressions de données dans ArcGIS Dashboards
Pour commencer à créer des expressions de données, vous devez ajouter un élément au tableau de bord des opérations. Lors de la sélection de la source de données, vous pouvez 1) sélectionner des couches déjà présentes dans un élément de carte, 2) utiliser des couches autonomes ou 3) écrire des expressions de données personnalisées (voir créer des expressions de données efficaces pour en savoir plus).
En raison de la complexité du script, je n’examinerai pas ses fonctionnalités ligne par ligne. Le script utilisé pour le contenu de ce billet est inspiré de cette page GitHub d’Esri : « Joindre les attributs d’une couche à une table ». Une copie de mes expressions de données Arcade peut être trouvée ici : clonez mon tableau de bord des opérations dans votre propre environnement ArcGIS Online.
Maintenant que j’ai créé mon objet FeatureSet, je peux examiner les résultats de mon expression Arcade et constater que la description du type d’affectation est présente avec l’identifiant GlobalID du type d’affectation.
Formatage avancé dans l’élément List (liste)
Une fois qu’est créé l’objet FeatureSet, remarquez que les champs avec des domaines codés (par exemple, [Status]) n’ont transféré que les valeurs stockées (par exemple, 1, 2, 3, 4) et non les valeurs affichées (Attribué, En cours, Complété, Refusé). Cependant, dans le tableau de bord des opérations, nous voulons voir l’étiquette d’affichage et non la valeur stockée pour obtenir les informations nécessaires.
Une façon de réaliser la tâche est d’utiliser des dictionnaires dans le formatage avancé et de remplacer les valeurs codées par les valeurs affichées, comme le montre l’image ci-dessous. Cette option permet également aux utilisateurs finaux de traduire la langue de leur contenu lorsqu’ils utilisent des données codées en dur. En principe, toute valeur stockée qui est renvoyée (par exemple, 1, 2, 3) sera remplacée par la valeur affichée (par exemple, Attribué, En cours, Complété) directement dans l’élément.
Conclusion
Voilà, vous pouvez maintenant créer un tableau de bord des opérations pour suivre les affectations effectuées par votre effectif. Cela peut également servir d’initiation à Arcade permettant de mieux comprendre certaines des fonctionnalités qui peuvent être obtenues en générant des données en mémoire et, donc, en réduisant la consommation de crédits, parce que vous évitez la création de couches d’entités hébergées intermédiaires, tout en assurant des mises à jour dynamiques en temps réel dans le tableau de bord.
Ce billet a été écrit en anglais par Tristan Gingras-Hill et peut être consulté ici.