Ce post porte sur l'exploitation de ArcGIS Enterprise 10.8.1 avec l'extension ArcGIS Data Interoperability pour partager des outils web Spatial ETL au sein de votre organisation. L'aspect 'avancé' est que nous allons déplacer des données en utilisant une web connection vers une web platform activée par un FME package, en plus d'ajouter une étape de notification par webhook pour le plaisir.<\/P>
<\/P>
Dans mon atelier technique à la demande pour UC 2020<\/A>, j'ai démontré comment créer un outil web qui effectue une conversion de format par service web, un cas d'utilisation classique pour Data Interoperability combiné avec la puissance de partage d'ArcGIS Enterprise. Cependant, Data Interoperability a évolué d'une fonderie de formats à une solution générique pour l'intégration sans code sur le web, donc dans ce post je vais montrer comment construire un outil web qui prend des données non natives vers une web platform. Je lis des données d'événements Microsoft Access table XY et écris vers des features hébergées ArcGIS Online, mais entrez les lignes et comprenez que les données pourraient aller vers n'importe quelle plateforme cloud ou application aussi facilement. D'une certaine manière, déplacer des données vers le web est mieux adapté aux outils Spatial ETL car les lecteurs et écrivains FME fonctionnent avec des conteneurs ou espaces de travail, par exemple une géodatabase, qui n'est pas un paramètre valide de sortie de service de géotraitement pouvant être retourné à un client. Cela peut être fait, par exemple en compressant les sorties de géodatabase fichier, mais si vous avez une web platform disponible, alors utilisez-la, les données sont plus utiles sur le web que comme fichiers locaux.<\/P>
<\/P>
Les outils web<\/A> sont un nouveau nom pour les services de géotraitement. Le flux de travail original pour publier des services de géotraitement en utilisant un élément historique et une connexion administrative à un serveur autonome est toujours disponible dans ArcGIS Pro 2.6, mais je vais montrer le nouveau paradigme du partage d'un outil web vers un portail. Vous partagez un outil Spatial ETL comme un outil web à partir d'un élément historique comme tout autre outil mais avec deux considérations spéciales:<\/P>
<\/P>
- L'espace de travail source FME Spatial ETL doit être intégré, et non externe à l'outil<\/STRONG><\/LI>
Les paramètres d'entrée doivent être définis comme des types simples tels que Filename (Existing), Text ou Choice<\/STRONG><\/LI>
<\/UL>
<\/P>
La première condition aide à empaqueter l'outil au moment de la publication, la seconde aide à garder le comportement final des paramètres de l'outil publié simple. Vous devrez peut-être refactoriser votre outil ETL lors de la création pour atteindre ces simplifications. Par exemple ici je montre les versions avant et après d'un paramètre d'entrée Microsoft Access. La configuration par défaut permet de choisir plusieurs fichiers avec un large choix d'extensions de type fichier, mon comportement souhaité est un seul fichier avec uniquement les extensions .mdb et .accdb.<\/P>
<\/P>
Paramètre Lecteur Base de Données Access par Défaut<\/STRONG><\/P>
<\/P>
<\/P>
Paramètre Lecteur Base de Données Access Modifié<\/STRONG><\/P>
<\/P>
<\/P>
<\/P>
Conceptuellement et graphiquement mon outil ETL est simple. Mon scénario est que je travaille pour Fako Mining qui fait la planification des forages avec une application Access et enregistre les emplacements des forages comme latitude & longitude dans une table. Cliquez pour agrandir la capture d'écran ci-dessous, ou modifiez l'outil extrait de la pièce jointe du blog. Le flux de données est :<\/P>
<\/P>
Lire une table base de données Access qui a des champs valeur XY<\/STRONG><\/LI>
Ecrire (ou remplacer) une couche d'entités ponctuelles hébergée dans ArcGIS Online<\/STRONG><\/LI>
Déclencher un webhook qui notifie un canal Microsoft Teams que les nouvelles données sont disponibles<\/STRONG><\/LI>
<\/UL>
<\/P>
Il y a trois signets dans l'espace de travail, dans le bleu tout service d'entités existant est supprimé (je crée des services nommés selon la date du traitement), dans le vert les données Access sont lues et converties en classe d'entités ponctuelles dans une géodatabase fichier compressée, et dans le beige la géodatabase fichier est publiée et partagée à un groupe et enfin le webhook envoyé. Le concept est que les membres Online sont membres d'un canal Teams et seront notifiés que les données sont disponibles. Pendant que vous inspectez l'espace de travail réfléchissez à combien de code cela prendrait si vous le scriptiez...<\/P>
<\/P>
<\/P>
<\/P>
La fonction clé ici est le transformateur
ArcGISOnlineConnector qui fait le travail de publication et partage de la géodatabase fichier compressée. C'est un FME Hub download et doit être provisionné sur le serveur, en plus il utilise une web connection qui doit aussi être provisionnée sur le serveur.<\/P>
<\/P>
D'abord, configurez votre serveur. Installez et licencez ArcGIS Data Interoperability for Server, assurez-vous que votre serveur est fédéré à votre portail, générez et importez les certificats pour portail et serveur etc. N'installez pas ArcGIS Data Interoperability for Pro sur votre serveur, vous aurez des échecs de licence et d'outil.<\/P>
<\/P>
Une fois Data Interoperability installé, connectez-vous au serveur en tant qu'utilisateur local du compte ArcGIS Service (par défaut nommé 'arcgis') et confirmez que vous pouvez ouvrir l'application Workbench à ce chemin :<\/P>
<\/P>
C:\\Program Files\\ESRI\\Data Interoperability\\Data Interoperability AO11\\fmeworkbench.exe<\/STRONG><\/P>
<\/P>
Pendant que vous êtes connecté au serveur en tant qu'arcgis, créez un partage avec le chemin ci-dessous et donnez le contrôle total à l'utilisateur domaine (probablement vous) qui publiera l'outil web et possède la web connection utilisée dans ArcGISOnlineConnector.<\/P>
<\/P>
\\\\<machinename>\\Users\\arcgis\\AppData\\Roaming\\Safe Software\\FME<\/STRONG><\/P>
<\/P>
Depuis la machine auteur et en tant qu'auteur publiant, ouvrez ce partage. Voici comment cela apparaît sur mon portable :<\/P>
<\/P>
<\/P>
<\/P>
N'importe quels fichiers dans votre partage différents des miens seront bientôt alignés.<\/P>
<\/P>
Maintenant nous allons provisionner le FME Package pour ArcGISOnlineConnector ainsi que la web connection utilisée par celui-ci sur le serveur. Téléchargez la version actuelle du package dans le partage. Toujours depuis la machine auteur, ouvrez Workbench puis la boîte de dialogue "FME Tools Default Paths". Notez (notez bien !) le répertoire profil pour Data Path,, c'est le dossier où sont stockées les web connections. Vous allez temporairement le changer ensuite.

Outils>Web Connections<\/STRONG> affiche la connexion web à ArcGIS Online. Créez un espace de travail test qui établit une connexion web et utilise un ArcGISOnlineConnector pour lister le contenu d'un dossier de contenu - le téléchargement du blog contient un exemple
TestWebConnection.fmw<\/STRONG>. Si tout fonctionne, le serveur est prêt à l'action !<\/P>
<P> <\/P>
<P>Exécutez votre outil Spatial ETL en tant qu'outil afin qu'un élément d'historique soit créé. Ensuite, faites un clic droit sur l'élément d'historique et partagez-le en tant qu'outil web. Voici mon expérience :<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-8" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503874_pastedImage_6.png" border="0" \/><\/P>
<P> <\/P>
<P>Autorisez les téléchargements, rendez-le asynchrone, définissez le niveau du message Info<\/STRONG>, cela affichera les messages de traitement de l'espace de travail.<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-9 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503875_pastedImage_7.png" border="0" \/><\/P>
<P> <\/P>
<P>n'oubliez pas de modifier le(s) paramètre(s) de l'outil - cliquez sur l'icône stylo. Vous devrez peut-être faire cela deux fois pour que cela « tienne ».<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-10" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503876_pastedImage_8.png" border="0" \/><\/P>
<P> <\/P>
<P>l'analyse affichera un avertissement, c'est normal pour les outils Spatial ETL.<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-11 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503878_pastedImage_9.png" border="0" \/><\/P>
<P> <\/P>
<P>Après la publication de l'outil web, ouvrez le volet Catalogue dans le contenu du portail et exécutez votre outil. Le mien génère un avertissement lié à la gestion de certains systèmes de coordonnées, mais je prends la victoire. Par conception, aucune entité ne s'affiche en sortie car il n'y a pas d'écrivain dans l'espace de travail, mes données sont allées sur ArcGIS Online grâce à l'ArcGISOnlineConnector. Le journal montre que le traitement intermédiaire a fonctionné comme prévu.</P>
<P> </P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-12 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503960_pastedImage_1.png" border="0" \/></P>
<p> </p>
<p>Teams</STRONG> me montre que le webhook a été déclenché, ce qui est la dernière partie du traitement de l'outil web, et il me donne une URL de service donc quelque chose<\/EM> est là.... amp;eacute;tudiez ce qui se trouve dans le transformateur HTTPCaller</STRONG> pour voir comment j'ai inséré une image dans la charge utile du webhook (c'est un élément image public dans Online).</p>
<\p>

Bingo, mes données se chargent dans ma carte !

Voilà donc le voyage aller-retour, j'ai un outil web que toute personne dans mon organisation peut utiliser pour publier des couches d'entités hébergées à partir d'une table de base de données Access, avec la touche supplémentaire des notifications automatisées.<\p>