<\/HEAD>
Webhooks. Wenn Sie nicht programmieren, könnten Sie denken, dass Webhook-Integrationen beängstigend sind oder zumindest eine zusätzliche Middleware neben ArcGIS benötigen. Beides ist falsch. Alle Citizen Integrators, die einen FME<\/STRONG>-Workbench mit der Data Interoperability<\/STRONG>-Erweiterung zusammenstellen können und die Erweiterung sowohl für Pro 2.6<\/STRONG> als auch Enterprise 10.8.1<\/STRONG> besitzen, können webhook-gesteuerte Integrationen zwischen Survey123<\/STRONG>-Umfragen und allem anderen, was Data Interoperability erreichen kann, automatisieren.<\/P><\/P>Ich werde das Szenario skizzieren, falls Sie dieses Automatisierungsmuster noch nicht untersucht haben. Survey123 ist eine formularbasierte Datenerfassungs-App, die einen Feature-Service verwaltet, bei dem jede Umfrage ein Punkt-, Linien- oder Flächen-Feature mit von Ihnen gestalteter Attributierung ist. Die Formulare haben reichhaltiges Verhalten und unterstützen Web- und mobile Geräte. Es gibt unbegrenzte Möglichkeiten zur nachgelagerten Verarbeitung von Umfrage-Features. Was dieser Blog abdeckt, ist folgender Datenfluss:<\/P><\/P>Eine Survey123-Umfrageeinreichung stellt eine Transaktion für ihren Feature-Service dar (Hinzufügen, Aktualisieren)<\/LI>Ein für den Transaktionstyp definierter Webhook wird bei jeder Einreichung ausgelöst<\/LI>Die Webhook-URL ist ein Ausführungsaufruf für ein Spatial ETL-Webtool (Geoverarbeitungsdienst)<\/LI>Das Webtool führt eine Integration unter Verwendung der Umfrageeinreichungs-Features durch<\/LI><\/UL><\/P>Das Zusammenstellen besteht ganz aus Konfiguration, also fangen wir an. Ich werde die gebräuchlichste Plattformkombination beschreiben – Survey123 wird in ArcGIS Online gehostet und Ihr Integrationsserver ist ein ArcGIS Enterprise-Portal – aber wenn Sie Survey123 in Ihrer Enterprise-Infrastruktur haben, funktioniert das auch.<\/P><\/P>Da Sie ein Webtool erstellen werden, das einen Feature-Service liest und schreibt, müssen Sie eine Webverbindung zu Ihrem Server freigeben, wie in diesem Blog<\/A> beschrieben. Ihr erster Schritt ist also sicherzustellen, dass das Service-Eigentümerkonto (standardmäßig 'arcgis' genannt) auf Ihrem Server Workbench starten kann und eine Webverbindung zu den Orten verwendet, an denen sich Survey123-Feature-Services befinden. Fahren Sie erst fort, wenn Sie erfolgreich ein Webtool geteilt haben, das die Webverbindung nutzt, wie z.B. das im Blog beschriebene Testtool.<\/P><\/P>
Ich springe jetzt voran, um zu erklären, wie man vermeidet, dass Ihr Webhook scheinbar stillschweigend fehlschlägt. Survey123 (d.h.
https:\/\/survey123.arcgis.com<\/A>) wird Ihren Server mit einer POST-Anfrage aufrufen, daher muss er vertrauenswürdig sein. Unten sehen Sie einen Screenshot meines Browsers während ich eine Umfrage absende, mit geöffnetem Debugger-Fenster (Firefox). Ich habe die an meinen Server gesendete POST-Anfrage hervorgehoben – sie hat funktioniert. Wenn Ihr Server eine Anfrage von Survey123 ablehnt, sehen Sie Fehlermeldungen bezüglich CORS – Cross Origin Resource Sharing.<\/P><\/P>
<\/P>
<\/P>
Sehen Sie sich dieses Thema an, wie Sie Survey123 den Zugriff auf Ihren Server erlauben –
Cross Origin Resource Sharing.<\/A><\/P>So sieht es in den Portaleinstellungen aus:<\/P>
<\/P>
<\/P>
<\/P>
Für mich war diese Einstellung nicht ausreichend, ich musste auch die HTTP-Antwortheader-Einstellungen in IIS ändern. Öffnen Sie auf Ihrem Server IIS beim HTTP Response Header-Steuerelement, doppelklicken Sie zum Öffnen und fügen Sie hinzu<\/STRONG>, was Sie unten sehen.<\/P><\/P>
<\/P><\/P>
<\/P><\/P>Jetzt ist der Server eingerichtet, kommen wir zur Konfiguration des Datenflusses. Wenn Sie genau hinschauen, sehen Sie meine Testumfrage handelt von einem Kaviar-Sandwich. Wenn Sie die Koordinaten recherchieren, könnten Sie dort tatsächlich eines kaufen! Mein eigentlicher Punkt ist jedoch: Survey123 sendet eine Menge JSON und es kann sehr komplex sein bei einer großen Umfrage. Wenn Sie sich andere Integrationsplattformen ansehen, werden Sie feststellen, dass sie zwar versuchen wie No-Code-Ansätze auszusehen, aber man möglicherweise gezwungen ist, JSON mitten im Stream zu parsen, um die gewünschten Daten zu erhalten. Survey123 schreibt jedoch immer in einen Feature-Service, den Data Interoperability natürlich nativ versteht. Daher können wir uns das JSON-Fliegen sparen und direkt zum Feature-Service gehen. Fantastisch!<\/P><\/P>Zuerst erstellen Sie Ihre Umfrage. Hier ist meine:<\/P><\/P>
Wenn eine Umfrage eingereicht wird, wird ein Feature in ihren Feature-Service geschrieben und dann<\/<\strong>
jeder konfigurierte Webhook ausgelöst - im Browser-Debug oben sehen Sie den applyEdits<\/<\strong>-POST vor dem Webhook-POST. Zur Unterstützung des Integrations-Geoverarbeitungsdienstes bei der Suche nach neuen Datensätzen enthält meine Umfrage eine versteckte Pflichtfrage 'Integrated' mit dem Standardwert 'N', den meine Integration auf 'Y' ändert. Ich habe meine Umfrage im Webdesigner erstellt (der keine versteckten Fragen unterstützt), dann in Survey123 Connect bearbeitet um die Frage hinzuzufügen. So sieht es bearbeitet aus:<\p>

Und so sieht es gespeichert in der Umfrage aus:<\p>

Sie müssen die Umfrage aktualisieren und neu veröffentlichen um die Schemaänderung anzuwenden.<\p>
Jetzt hat meine Umfrage ein Feld das ich als Verarbeitungs-Auswahlflag verwenden kann. Ich habe einige Datensätze erstellt um den Integrationsarbeitsbereich zu entwerfen und hier ist er:<\p>

Es ist auch im Blogdownload enthalten. Es führt keine tatsächliche Integration durch - das ist Ihre Aufgabe - aber man kann das Muster erkennen. Lesen Sie Datensätze wo integrate = 'N', machen Sie Ihre Arbeit und aktualisieren dann integrate auf 'Y' und schreiben zurück zum Service mit GlobalID als Schlüsselfeld. Stellen Sie sicher dass Ihre Toolquelle eingebettet ist.<\p>
Wenn viele Mitwirkende an Ihrer Umfrage beteiligt sind und zufällig zwei Umfragen gleichzeitig eingereicht werden spielt es keine Rolle ob eine Ausführung zwei Umfragen verarbeitet und eine keine. Wenn Sie sich Sorgen über Latenzzeiten beim Schreiben der Umfragen in den Feature-Service machen beginnen Sie Ihren Prozess mit einer Creator-Decelerator-FeatureReader-Kombination.<\p>
Ich habe die Verarbeitung manuell getestet bevor ich ein Webtool veröffentlicht habe indem ich Umfragen eingereicht habe und das Tool im Bearbeitungsmodus ausgeführt habe. Dann bin ich bereit das Webtool zu teilen. Führen Sie das Tool aus der Toolbox aus um einen History-Eintrag zu erstellen und teilen es dann. Beachten Sie dass der Service öffentlich sein soll - wenn das bei Ihnen nicht möglich ist nehmen Sie Survey123 in Ihre Enterprise-Infrastruktur auf.<\p>

Machen Sie das Tool zunächst synchron<\/<STRONG>. Wenn Ihre verfügbaren Instanzen nicht mithalten können wechseln Sie zu asynchron.<\p>

Mein Tool hat keine Parameter.<\p>

Wenn es fertig geteilt wurde gehen Sie zur Service-URL und kopieren den Wert hier ist meiner:

Also lautet meine webhook URI: https://dev0014223.esri.com/server/rest/services/WebhookIntegration/GPServer/WebhookIntegration/execute
Jetzt alles, was noch zu tun bleibt, ist die Konfiguration des Webhooks in meiner Umfrage.<\/P>
<\/P>
<\/P>
<\/P>
Jetzt, wenn eine Sandwich-Umfrage eingeht, wird meine Webhook-Integration ausgelöst und Integrated = 'Y'.<\/P>
<\/P>
<\/P>
<\/P>
Echte No-Code-Integration, courtesy of ArcGIS Data Interoperability<\/STRONG>. Wenn Sie mich in lokalen Sandwich-Läden sehen, arbeite ich – ehrlich.<\/P><\/BODY><\/HTML>