Dieser Beitrag handelt davon, wie man ArcGIS Enterprise 10.8.1 mit der ArcGIS Data Interoperability-Erweiterung nutzt, um Spatial ETL web tools innerhalb Ihrer Organisation zu teilen. Der 'fortgeschrittene' Aspekt ist, dass wir Daten über eine web connection zu einer web platform bewegen, die durch ein FME package ermöglicht wird, und zusätzlich einen webhook-Benachrichtigungsschritt zum Spaß hinzufügen.<\/P>
<\/P>
In meinem On-Demand-Technikworkshop für UC 2020<\/A> habe ich gezeigt, wie man ein web tool erstellt, das eine Formatkonvertierung per Webservice durchführt – ein klassischer Anwendungsfall für Data Interoperability kombiniert mit der Sharing-Power von ArcGIS Enterprise. Data Interoperability hat sich jedoch von einer Formatfabrik zu einer generischen Lösung für No-Code-Integration über das Web entwickelt, daher zeige ich in diesem Beitrag, wie man ein web tool baut, das nicht-native Daten zu einer web platform bringt. Ich lese zufällig Microsoft Access-Tabelle XY Event-Daten und schreibe sie in ArcGIS Online hosted features,, aber lesen Sie zwischen den Zeilen und verstehen Sie, dass die Daten ebenso gut an jede Cloud-Plattform oder App gehen könnten. In gewisser Weise passt das Verschieben von Daten ins Web besser zu Spatial ETL Tools, da FME Reader und Writer mit Containern oder Workspaces arbeiten, z.B. einer Geodatabase, die kein gültiger Geoverarbeitungsdienst-Ausgabeparameter ist, der an einen Client zurückgegeben werden kann. Es ist möglich, z.B. durch Zippen von File-Geodatabase-Ausgaben, aber wenn Sie eine web platform zur Verfügung haben, nutzen Sie sie – Daten sind im Web nützlicher als als lokale Dateien.<\/P>
<\/P>
Web tools<\/A> sind ein neuer Name für Geoverarbeitungsdienste. Der ursprüngliche Workflow zum Veröffentlichen von Geoverarbeitungsdiensten mit einem History-Element und einer administrativen Verbindung zu einem Standalone-Server ist in ArcGIS Pro 2.6 noch verfügbar, aber ich zeige das neue Paradigma des Teilens eines web tool zu einem Portal. Sie teilen ein Spatial ETL Tool als web tool aus einem History-Element wie jedes andere Tool, aber mit zwei besonderen Überlegungen:<\/P>
<\/P>
- Der Spatial ETL Quell-FME Workspace muss eingebettet sein und darf nicht extern zum Tool sein<\/STRONG><\/LI>
Eingabeparameter sollten als einfache Typen definiert werden wie Filename (Existing), Text oder Choice<\/STRONG><\/LI>
<\/UL>
<\/P>
Die erste Bedingung hilft beim Verpacken des Tools zur Veröffentlichungszeit, die zweite hält das Verhalten der final veröffentlichten Tool-Parameter einfach. Möglicherweise müssen Sie Ihr ETL-Tool zur Erstellungszeit refaktorieren, um diese Vereinfachungen zu erreichen. Zum Beispiel zeige ich hier Vorher- und Nachher-Versionen eines Microsoft Access Eingabeparameters. Die Standardkonfiguration erlaubt die Auswahl mehrerer Dateien mit einer großen Auswahl an Dateityp-Erweiterungen, mein gewünschtes Verhalten ist eine einzelne Datei mit nur .mdb und .accdb Erweiterungen.<\/P>
<\/P>
Standard Access Database Reader Parameter<\/STRONG><\/P>
<\/P>
<\/P>
Modifizierter Access Database Reader Parameter<\/STRONG><\/P>
<\/P>
<\/P>
<\/P>
Konzepthaft und grafisch ist mein ETL-Tool einfach. Mein Szenario ist, dass ich für Fako Mining arbeite, die Bohrlochplanung mit einer Access-App durchführen und Bohrlochstandorte als Breiten- & Längengrad in einer Tabelle aufzeichnen. Klicken Sie unten auf die Bildschirmaufnahme zum Vergrößern oder bearbeiten Sie das aus dem Blog-Anhang extrahierte Tool. Der Datenfluss ist:<\/P>
<\/P>
Lesen einer Access-Datenbanktabelle mit XY-Wertfeldern<\/STRONG><\/LI>
Schreiben (oder Ersetzen) eines gehosteten Punkt-Feature-Layers in ArcGIS Online<\/STRONG><\/LI>
Auslösen eines webhook, der einen Microsoft Teams-Kanal benachrichtigt, dass neue Daten verfügbar sind<\/STRONG><\/LI>
<\/UL>
<\/P>
Es gibt drei Lesezeichen im Workspace: Im blauen wird jeder vorhandene Feature-Service gelöscht (ich erstelle Services benannt nach dem Verarbeitungsdatum), im grünen werden die Access-Daten gelesen und in eine Punkt-Feature-Class in einer gezippten File-Geodatabase konvertiert, und im beigen wird die File-Geodatabase veröffentlicht und an eine Gruppe geteilt sowie zuletzt der webhook gesendet. Das Konzept ist, dass Online-Mitglieder Mitglieder eines Teams-Kanals sind und benachrichtigt werden, dass die Daten verfügbar sind. Während Sie den Workspace inspizieren, denken Sie darüber nach, wie viel Code dies erfordern würde, wenn Sie es skripten würden...<\/P>
<\/P>
<\/P>
<\/P>
Die Schlüsselkomponente hierbei ist der
ArcGISOnlineConnector -Transformer, der die Arbeit des Veröffentlichens und Teilens der gezippten File-Geodatabase übernimmt. Es ist ein FME Hub download, der auf dem Server bereitgestellt werden muss und zudem eine web connection verwendet, die ebenfalls auf dem Server bereitgestellt werden muss.<\/P>
<\/P>
Zuerst richten Sie Ihren Server ein. Installieren und lizenzieren Sie ArcGIS Data Interoperability für Server, stellen Sie sicher, dass Ihr Server mit Ihrem Portal föderiert ist, generieren und importieren Sie Zertifikate für Portal und Server usw. Nicht installieren Sie ArcGIS Data Interoperability für Pro auf Ihrem Server, sonst erhalten Sie Lizenz- und Toolfehler.<\/P>
<\/P>
Sobald Data Interoperability installiert ist, melden Sie sich am Server als lokaler ArcGIS Service-Konto-Benutzer an (standardmäßig 'arcgis' genannt) und bestätigen Sie, dass Sie die Workbench-App unter folgendem Pfad öffnen können:<\/P>
<\/P>
C:\\Program Files\\ESRI\\Data Interoperability\\Data Interoperability AO11\\fmeworkbench.exe<\/STRONG><\/P>
<\/P>
Melden Sie sich am Server als arcgis an und erstellen Sie einen Share mit folgendem Pfad und geben Sie dem Domänenbenutzer (vermutlich Ihnen), der das web tool veröffentlicht und die web connection im ArcGISOnlineConnector besitzt, Vollzugriff:<\/P>
<\/P>
\\<machinename>\\Users\\arcgis\\AppData\\Roaming\\Safe Software\\FME<\/STRONG><\/P>
<\/P>
Öffnen Sie vom Autorisierungsrechner aus als veröffentlichender Autor den Share. So sieht es auf meinem Laptop aus:<\/P>
<\/P>
<\/P>
<\/P>
Machen Sie sich keine Sorgen darüber, dass die Dateien in Ihrem Share anders sind als meine – sie werden bald übereinstimmen.<\/P>
<\/P>
Jetzt werden wir das FME Package für ArcGISOnlineConnector sowie die von ihm verwendete web connection auf dem Server bereitstellen. Laden Sie die aktuelle Version des Pakets in den Share herunter. Öffnen Sie weiterhin vom Autorisierungsrechner aus Workbench und dann den Dialog FME Tools Ansicht Default Paths. Notieren (schreiben!) Sie das Profildirectory für den Data Path, es ist der Ordner, in dem web connections gespeichert werden. Diesen ändern Sie gleich vorübergehend.<\/P>
<\/P>
<\/>\r\
&nbs... Tools>Web Connections<\/STRONG> zeigt die Webverbindung zu ArcGIS Online. Erstellen Sie einen Testarbeitsbereich, der eine Webverbindung herstellt und einen ArcGISOnlineConnector verwendet, um den Inhalt eines Inhaltsordners aufzulisten - der Blog-Download enthält ein Beispiel TestWebConnection.fmw<\/STRONG>. Wenn alles funktioniert, ist der Server einsatzbereit!<\/P>
<P> <\/P>
<P>Führen Sie Ihr Spatial ETL-Tool als Werkzeug aus, damit ein Verlaufsobjekt erstellt wird. Klicken Sie dann mit der rechten Maustaste auf das Verlaufsobjekt und teilen Sie es als Webtool. Hier ist meine Erfahrung:<\/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>Uploads zulassen, asynchron machen, die Info<\/STRONG>-Meldungsstufe einstellen, dies zeigt Nachrichten zur Arbeitsbereichsverarbeitung an.<\/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>Vergessen Sie nicht, die Werkzeugparameter zu bearbeiten - klicken Sie auf das Stiftsymbol. Möglicherweise müssen Sie dies zweimal tun, damit es "haftet".<\/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>Es wird mit einer Warnung analysieren, das ist normal für Spatial ETL-Tools.<\/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>nachdem das Webtool veröffentlicht wurde, öffnen Sie den Katalogbereich bei den Portalinhalten und führen Sie Ihr Tool aus. Meins wirft eine Warnung bezüglich einiger Koordinatensystembehandlungen aus, aber ich nehme den Erfolg. Designbedingt werden keine Features als Ausgabe angezeigt, da es keinen Writer im Arbeitsbereich gibt, meine Daten gingen dank des ArcGISOnlineConnector zu ArcGIS Online. Das Protokoll zeigt, dass die Zwischenverarbeitung wie erwartet funktionierte.</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>
<b>Teams</b>s zeigt mir, dass der webhook ausgelöst wurde, was der letzte Teil der Webtool-Verarbeitung ist, und es gibt mir eine Service-URL, also ist <i>something</i> tatsächlich da.... nSchauen Sie sich an, was im <b>HTTPCaller</b>-Transformer ist, um zu sehen, wie ich ein Bild in die webhook-Nutzlast bekommen habe (es ist ein öffentliches Bildobjekt in Online).</p>
</p>
<img style="display: block;margin-left:auto;margin-right:auto" class="j-img-centered jive-image image-14" src="https://us.v-cdn.net/6038851/uploads/legacyfs/online/503962_pastedImage_3.png" border="0"/>
Bingo, meine Daten laden in meine Karte!</p>
<img style="display:block;margin-left:auto;margin-right:auto" class="image-13 j-img-centered jive-image" src="https://us.v-cdn.net/6038851/uploads/legacyfs/online/503961_pastedImage_2.png" border="0"/>
Das ist also die Rundreise, ich habe ein Webtool, das jeder in meiner Organisation verwenden kann, um gehostete Feature-Layer aus einer Access-Datenbanktabelle zu veröffentlichen, mit dem zusätzlichen Touch automatisierter Benachrichtigungen.</p>