Rappels web, Microsoft Flow et API REST d’ArcGIS – automatiser votre SIG web
L’ajout de rappels web à Survey123 for ArcGIS ouvre un monde de possibilités pour améliorer, automatiser et simplifier les flux de travaux. Vous êtes-vous déjà demandé s’il était possible d’utiliser les renseignements d’un sondage soumis pour mettre à jour un service d’entités hébergé secondaire connexe? Avez-vous déjà voulu modifier un autre service hébergé lorsqu’un sondage était soumis automatiquement? Eh bien, vous pouvez maintenant le faire en utilisant les rappels web de Survey123, Microsoft Flow et l’API REST d’ArcGIS.
Survey123 for ArcGIS permet depuis peu que les sondages Survey123 envoient des renseignements par l’entremise de rappels web. Un rappel web est un simple rappel d’URL qui fournit des informations et des données aux applications lorsqu’un événement se produit. Dans le cas qui nous intéresse, l’événement est la soumission d’un sondage, et la plateforme qui reçoit l’information est Microsoft Flow. Grâce aux rappels web et à Microsoft Flow, vous pouvez tirer parti de requêtes HTTP pour effectuer des appels vers l’API REST d’ArcGIS afin d’étendre, d’automatiser et de simplifier vos flux de travaux. Dans ce billet de blogue, je décrirai un flux de travaux qui met à jour un service d’entités hébergé secondaire avec les renseignements d’un sondage soumis. Toutefois, ce processus peut rapidement être étendu avec d’autres opérations de l’API REST pour effectuer des tâches plus complexes. Commençons.
Outre les détails présentés dans ce billet de blogue, vous pouvez visionner ce tutoriel vidéo pour en apprendre davantage sur l’automatisation de votre SIG web à l’aide de rappels web, de Microsoft Flow et de l’API REST d’ArcGIS.
Dans ce scénario, vous disposez d’un ancien service d’entités hébergé contenant des renseignements sur les parcelles d’une ville. Ces données n’ont pas été mises à jour récemment, mais elles sont toujours utilisées par le public dans une ancienne application. Vous avez reçu des plaintes de la part d’urbanistes et du public en raison du caractère obsolète des renseignements sur les parcelles. Par chance, il existe des plans pour un projet pilote dans le cadre duquel le personnel de la Ville inspecte les bornes d’incendie à l’aide de Survey123. Vous voulez que les données de ce nouveau projet pilote soient recueillies dans un service d’entités hébergé et qu’elles mettent à jour l’ancien service d’entités hébergé contenant les données sur les parcelles avec les renseignements récents sur les bornes d’incendie. Grâce aux rappels web de Survey123, à Microsoft Flow et à l’API REST, vous pouvez obtenir automatiquement ces deux résultats.
Sondage Survey123 sur l’inspection des bornes d’incendie.
Une fois le sondage publié, visitez le site Microsoft Flow et créez une connexion entre votre sondage et Microsoft Flow.
L’équipe Survey123 d’Esri a publié un billet de blogue détaillé sur la manière de créer une connexion entre votre sondage Survey123 et Microsoft Flow. Il s’agit d’une bonne ressource pour commencer à comprendre comment intégrer Microsoft Flow et Survey123, ainsi que pour établir une connexion entre eux.
Maintenant que nous avons créé une connexion entre Survey123 et Microsoft Flow, commençons à créer le flux de travaux dans Microsoft Flow.
-
Si vous travaillez avec des services sécurisés dans votre SIG web, vous devrez d’abord générer un jeton afin d’obtenir l’accès aux requêtes et de modifier vos services.
Il vous faut ajouter une action HTTP pour générer un jeton à l’aide de l’opération de génération de jeton de l’API REST ArcGIS. Cette opération doit être fondée sur la méthode POST. Votre nom d’utilisateur, votre mot de passe et votre référant doivent figurer dans le corps de la requête POST. Vous devez également indiquer application/x-www-form-urlencoded dans l’en-tête Content-Type (type de contenu).
Action HTTP Microsoft Flow pour générer un jeton
-
Maintenant que vous avez effectué une requête POST pour obtenir un jeton, vous devez analyser la réponse JSON en la décomposant selon ses variables.
Vous pouvez le faire à l’aide de l’opération Parse JSON Data Operation (analyser les données JSON). Tout d’abord, passez le corps de l’opération Get Token (obtenir un jeton) dans le contenu de l’opération Parse JSON Data Operation, et indiquez un schéma. Le format du schéma est le suivant :
{ "type": "object", "properties": { "token": { "type": "string" }, "expires": { "type": "integer" }, "ssl": { "type": "boolean" } } }
Opération Parse JSON Data Operation de Microsoft Flow pour analyser le jeton JSON selon ses variables
Cela analysera la réponse selon trois variables individuelles : « ssl », « token » et « expires », dont chacune se trouve dans la boîte de dialogue Dynamic Content (contenu dynamique). Vous utiliserez plus tard la variable « token » (jeton) pour accéder aux services sécurisés.
-
Maintenant, trouvez le numéro de parcelle que vous avez soumis dans le sondage et associez-le à la parcelle stockée dans votre service d’entités hébergé de parcelles.
Utilisons maintenant une autre action HTTP et l’opération de requête de l’API REST d’ArcGIS pour retrouver la parcelle dans son service d’entités. Faites passer la méthode de l’action à GET. Trouvez l’URL du point de terminaison REST de votre service d’entités hébergé de parcelles, y compris l’index des couches, et collez-la dans l’URI.
Ensuite, établissez les paramètres de la clause WHERE de l’opération de requête. Dans cette section, vous aurez besoin du numéro de parcelle de votre sondage soumis. Dans ce cas, le numéro de parcelle est stocké dans la variable « ParcelID » soumise avec le sondage. Vous devez également régler la valeur returnIdsOnly à « true » et formater la réponse en JSON en utilisant &f=json. Si vous travaillez avec des services sécurisés, vous devrez également faire passer la variable « token » dans le paramètre de jeton.
Action HTTP de Microsoft Flow et opération de requête de l’API REST d’ArcGIS
L’action HTTP interrogera le service d’entités hébergé de parcelles à la recherche de toute parcelle dont le numéro correspond à celui soumis dans le sondage et retournera son ObjectID (ID d’objet).
-
Analysez la réponse de l’opération de requête.
Une fois encore, ajoutez l’opération Parse JSON Data Operation (analyser les données JSON) dans votre flux. L’entrée sera la variable du corps de votre opération de requête. Vous pouvez utiliser le schéma JSON suivant.
{ "type": "object", "properties": { "objectIdFieldName": { "type": "string" }, "objectIds": { "type": "array", "items": { "type": "integer" } } } }
Opération Parse JSON Data Operation de Microsoft Flow pour analyser la requête JSON selon ses variables
-
Enfin, mettez à jour le service d’entité hébergé de parcelles avec les renseignements sur les bornes d’incendie soumis dans votre sondage.
Utilisons une autre action HTTP et l’opération de mise à jour des entités de l’API REST ArcGIS pour mettre à jour les anciennes données sur les parcelles avec les nouveaux renseignements sur les bornes d’incendie. Choisissez la méthode POST et utilisez de nouveau l’URL du point de terminaison REST de votre service d’entités hébergé de parcelles, y compris l’index des couches. Vous devez également indiquer application/x-www-form-urlencoded dans l’en-tête Content-Type (type de contenu). Maintenant, configurons le corps de la requête POST.
Action HTTP de Microsoft Flow et opération de mise à jour des entités de l’API REST d’ArcGIS
Vous devrez d’abord formater la requête POST en JSON, définir la valeur rollbackOnFailure=true (cela signifie qu’en cas d’erreur, les mises à jour ne seront pas poussées vers le service) et mettre la variable « token » (jeton) dans le corps. Enfin, transférez les renseignements de votre sondage d’inspection des bornes d’incendie par l’intermédiaire de la propriété des attributs des entités. Vous devez inclure la variable « OBJECTID - Item » (ID d’objet – élément) que nous avons analysée tout à l’heure dans l’opération de requête.
Ensuite, associez l’attribut OBJECTID à la variable « Current Item » (élément actuel), laquelle représente la valeur actuelle dans la boucle (dans notre cas, il s’agit de votre OBJECTID). Maintenant, incluez chaque valeur du sondage pour laquelle vous voulez mettre à jour la valeur correspondante dans le service d’entités hébergé de parcelles. Ces attributs doivent déjà exister dans le schéma des parcelles. Dans ce cas, faites passer les valeurs des variables « HydrantCondition » (état des bornes d’incendie) et « Comment » (commentaire) du sondage vers votre service d’entités hébergé de parcelles.
-
C’est terminé! Enregistrez le flux et testez-le en utilisant quelques données.
Vous avez configuré le flux pour qu’il génère un jeton d’accès aux services sécurisés et qu’il interroge le service d’entités hébergé de parcelles pour y trouver les OBJECTID (ID d’objets) qui correspondent aux numéros de parcelles du sondage soumis. Vous pouvez ensuite utiliser l’attribut OBJECTID pour savoir quelle entité du service d’entités hébergé de parcelles doit être mise à jour avec les renseignements du sondage nouvellement soumis. À la fin, vous devriez avoir un nouvel ensemble de données sur l’inspection des bornes d’incendie et votre ancien ensemble de données obsolètes sur les parcelles devrait être mis à jour.
Ce billet a été écrit en anglais par Tom Thompson et peut être consulté ici.