Eingabe- und Ausgabeparameter für Geoverarbeitungsservices

Alle erfolgreichen Werkzeuge weisen Eingabe- und Ausgabeparameter auf. Ohne Eingabeparameter würde das Werkzeug bei jeder Ausführung dieselben Verarbeitungsvorgänge durchführen. Durch die Änderung eines Eingabeparameters wird ein anderes Ergebnis erzeugt. Ausgabeparameter ermöglichen einem Werkzeug die Rückgabe des Ergebnisses. Der Geoverarbeitungsservice, auf dem ein Geoverarbeitungsservice basiert, weist gut definierte Regeln für Eingabe- und Ausgabeparameter auf. Anhand der nachfolgend erläuterten Regeln wird sichergestellt, dass für das Web geeignete Werkzeuge veröffentlicht werden können, wobei Clients wie erwartet mit ihnen interagieren.

Eingabeparameter

Beim Erstellen eines Geoverarbeitungswerkzeugs sind mehr als 100 eindeutige Parameterdatentypen verfügbar, die für Eingaben in ein Werkzeug verwendet werden können. Die Möglichkeit, einem bestimmten Datentyp vorzuziehen, kann Benutzern dabei behilflich sein, die erwarteten Eingaben für Ihr Werkzeug bereitzustellen. Viele Datentypen sind speziell und werden in einem Geoverarbeitungsservice nicht unterstützt. Beim Konstruieren eines als Geoverarbeitungsservice zu verwendenden Werkzeugs ist es am besten, wenn das Werkzeug mit unterstützten Datentypen konstruiert wird. Ein Werkzeug, das Sie erstellen und an Kollegen verteilen, kann etwas anders eingerichtet sein als ein Werkzeug, das Sie für die Veröffentlichung als Geoverarbeitungsservice erstellen.

Als Eingabedatentypen in ArcGIS Pro werden die Datentypen in der linken Spalte der folgenden Tabelle unterstützt. Nach ihrer Veröffentlichung werden sie in die entsprechenden Datentypen in ArcGIS Enterprise konvertiert.

Datentyp in ArcGIS ProDatentyp in ArcGIS Enterprise

Feature-Set, Feature-Layer

GPFeatureRecordSetLayer

Raster-Dataset, Raster-Layer

GPRasterDataLayer

Datensatz, Tabellensicht

GPRecordSet

File

GPDataFile

Boolesch, Double, Long, Zeichenfolge (Text)

GPBoolean, GPDouble, GPLong, GPString

Datum

GPDate

Lineare Einheit

GPLinearUnit

Feld

Feld

Wertetabelle

GPValueTable

Verbund

GPComposite

Feld

Ein Feld ist eine Spalte aus einer Tabelle, die Werte eines einzelnen Attributs speichert.

Erstellen

Stellen Sie bei Werkzeugen mit einem Eingabefeldparameter sicher, dass der Feldparameter eine Abhängigkeit von einem Parameter, wie zum Beispiel einem Feature-Layer oder einer Tabelle, aufweist.

Wenn Sie ArcGIS Pro 2.3 bis ArcGIS Pro 2.9 verwenden, werden nur Feature-Set- und Feature-Layer-Eingaben als Abhängigkeit unterstützt. Wenn Sie über ArcGIS Pro 3.0 oder höher in ArcGIS Enterprise 11.0 oder höher veröffentlichen, kann der Felddatentyp von allen unterstützen Feature- und Tabellen-Eingabedatentypen abhängen.

Ausführen des Werkzeugs

Wenn Sie das Werkzeug vor der Veröffentlichung in ArcGIS Pro 2.3 bis ArcGIS Pro 2.9 ausführen, wählen Sie für die Feature-Layer, von denen diese Feldparameter abhängen, eine Feature-Class von der Festplatte aus. Verwenden Sie Feature-Layer nicht als Eingabe.

Bei ArcGIS Pro 3.0 oder höher und beim Veröffentlichen in ArcGIS Enterprise 11.0 oder höher gibt es bezüglich der Wahl Ihrer Eingabedaten keine Beschränkungen. Für Layer, von denen ein Feldparameter abhängt, können Sie einen Feature-Layer, eine Feature-Class auf der Festplatte, eine Tabelle oder eine Tabellensicht verwenden.

Veröffentlichen

Stellen Sie beim Konfigurieren der Werkzeugeigenschaften sicher, dass der Eingabemodus des Eingabe-Features und des Feldes oder der Felder auf Benutzerdefinierter Wert festgelegt ist.

Verwendung

Bei Verwendung des Geoverarbeitungsservice in ArcGIS Pro werden alle anwendbaren Felder nach der Auswahl einer Eingabe in der Dropdown-Liste automatisch ausgefüllt.

Hinweis:

Der Felddatentyp wird in Apps, die in ArcGIS Web AppBuilder oder Map Viewer Classic in Portal for ArcGIS erstellt wurden, nicht unterstützt.

Wertetabelle

Eine Wertetabelle ist ein flexibles tabellenähnliches Objekt, das aus Zeilen und Spalten besteht, die verschiedene Werte enthalten. Zur Verwendung des Datentyps Wertetabelle benötigen Sie ArcGIS Pro 3.0 oder höher und ArcGIS Enterprise 11.0 oder höher. Weitere Informationen zum Datentyp "Wertetabelle" finden Sie unter ValueTable. Eine Wertetabelle mit mehreren Werten wird nicht unterstützt.

Erstellen

Obwohl die Spaltennamen eines Wertetabellenparameters leer oder doppelt vorhanden sein können, werden eindeutige und nicht leere Spaltennamen empfohlen, wenn Sie Werkzeugparameter entwerfen. Eindeutige und nicht leere Spaltennamen ermöglichen den Benutzern Ihrer Web-Werkzeuge, die verschiedenen Spalten voneinander zu unterscheiden, wenn sie das Web-Werkzeug verwenden, insbesondere wenn mehrere Spalten mit denselben Datentypen vorhanden sind.

Veröffentlichen

Sie können einen Geoverarbeitungsservice mit einem Eingabe- oder Ausgabe-Wertetabellenparameter mit Python veröffentlichen. Wenn eine Spalte im Wertetabellenparameter einen Filter aufweist, wird dieser in den Veröffentlichungsprozess aufgenommen.

Weitere Informationen über das Veröffentlichen von Geoverarbeitungsservices in einem Python-Skript

Verwendung

Sie können einen Geoverarbeitungsservice mit Wertetabellenparameter über ArcGIS Pro 3.0 oder mit Python verwenden. Der Wertetabellen-Datentyp wird in Web AppBuilder und Map Viewer Classic nicht unterstützt.

Verwenden von Geoverarbeitungsservices in Python-Skripten

Verbund-Datentyp

In ArcGIS Pro gibt es keinen echten Verbund-Datentyp. Ein Verbund-Datentyp ist einfach ein Name für einen Parameter mit mehreren Datentypen. Nach der Veröffentlichung als Geoverarbeitungsservice kann der Datentyp in GPComposite konvertiert werden, der ein realer Datentyp auf dem Server ist. Um einen Parameterdatentyp in einen Verbund-Datentyp zu konvertieren, benötigen Sie ArcGIS Pro 3.2 oder höher und ArcGIS Enterprise 11.2.

Erstellen

Auch wenn der Parameter vor der Veröffentlichung verschiedene Datentypen enthalten kann, müssen Sie sicherstellen, dass jeder Datentyp konvertiert werden kann, und prüfen, in welchen Datentyp er nach der Veröffentlichung konvertiert wird (basierend auf der Tabelle der Eingabeparameter). Sie können den Filter "Verbund" verwenden, um die Werte für jeden Subtype festzulegen. Der Filter wird bei der Veröffentlichung als Service berücksichtigt. Sie können einen mehrwertigen Verbund definieren, aber Sie können keinen Verbund haben, der einen anderen mehrwertigen, Verbund- oder ValueTable-Datentyp enthält, wenn Sie ihn später als Verbund veröffentlichen möchten.

Veröffentlichen

Wenn Sie über ArcGIS Pro 3.2 veröffentlichen, müssen Sie das Kontrollkästchen Datentyp als Verbund beibehalten auf der Registerkarte Inhalt des Freigabebereichs verwenden. Verwenden Sie diese Option, um zu bestimmen, ob der veröffentlichte Service-Parameterdatentyp ein Verbund ist. Das Kontrollkästchen ist nur bei Veröffentlichung in ArcGIS Enterprise 11.2 oder höher verfügbar.

Wenn die Veröffentlichung mit einem nicht aktivierten oder inaktiven Kontrollkästchen oder mit einem Python-Skript erfolgt, ist der Service-Datentyp des Parameters kein Verbund. Er ist ein einzelner konvertierter Datentyp, der auf dem Wert basiert, der beim Ausführen des Werkzeugs vor der Veröffentlichung angegeben wurde. Wenn die Veröffentlichung mit einem aktivierten Kontrollkästchen erfolgt, ist der Service-Datentyp des Parameters ein Verbund. Es werden alle verfügbaren Eingabemodus-Optionen für die Verbund-Datentypen angezeigt. Eine der Optionen ist der Mischmodus, bei dem Sie für jeden Datentyp des Parameters einen anderen Eingabemodus auswählen können. Der Mischmodus ist nicht verfügbar, wenn der Datentyp ein mehrwertiger Verbund ist oder wenn es einen Filter auf oberster Ebene gibt, der für alle Datentypen des Parameters gilt.

Nicht alle Verbund-Datentypen können während der Veröffentlichung in die unterstützten Datentypen auf dem Server konvertiert werden. Wenn ein Datentyp nicht in einen serverseitig unterstützten Datentyp konvertiert werden kann, wird dieser Datentyp ignoriert oder zu einem GPString-Datentyp. Wenn mehrere Datentypen im Verbund dieselben zugehörigen konvertierten Datentypen haben, wird jeder von ihnen einzeln in diesen Datentyp konvertiert. Wenn Sie beispielsweise einen Eingabeparameter mit den Datentypen "LAS-Dataset", "Feature-Set" und "Feature-Layer" haben, wird er nach der Veröffentlichung zu einem Verbund aus GPFeatureRecordSetLayer und einem anderen GPFeatureRecordSetLayer, da "LAS-Dataset" kein unterstützter Datentyp ist, und sowohl der Feature-Set- als auch der Feature-Layer-Datentyp werden auf dem Server in denselben Typ konvertiert.

Verwendung

Sie können Services mit einem Verbund-Parameter in ArcGIS Pro 3.2 oder mit einem Python-Skript verwenden. Wenn Sie eine frühere Version von ArcGIS Pro verwenden, kann nur der Datentyp des bereitgestellten Wertes für den Parameter vor der Veröffentlichung verwendet werden. Der Komposit-Datentyp wird in Apps, die in ArcGIS Web AppBuilder oder Map Viewer Classic in Portal for ArcGIS erstellt wurden, nicht unterstützt.

Bei Verwendung von ArcGIS Pro 3.2 können Sie einen Service mit allen unterstützten Datentypen des Verbund-Parameters verwenden. Da es einige nicht unterstützte Typen auf dem Server gibt, können die Datentypen, die Sie verwenden können, weniger sein als die vor der Veröffentlichung. Um die unterstützten Datentypen des Parameters zu überprüfen, wählen Sie den Service aus der ArcGIS Server-Verbindung im Bereich Katalog aus. Klicken Sie mit der rechten Maustaste auf den Service-Task, wählen Sie "Metadaten anzeigen", um den Bereich zu öffnen, und prüfen Sie den Datentyp des Parameters. Verfügbare Geoverarbeitungsservices

Wenn die Filter für jeden Datentyp vor der Veröffentlichung festgelegt werden, werden sie bei der Ausführung des Services beachtet. Wenn es mehrere konvertierte Datentypen mit demselben Namen gibt und jeder seinen eigenen Filter hat, gleicht der Service den verfügbaren Wert mit jedem Filter ab.

Nicht unterstützte Eingaben

Wenn der Parameter, den Sie zum Konstruieren des Werkzeugs verwenden, nicht oben aufgeführt ist, wird er für einen Geoverarbeitungsservice nicht unterstützt. Wenn Sie Ihren Geoverarbeitungsservice freigeben, wird ein nicht unterstützter Parameter im Service hart codiert oder in einen unterstützten Typ konvertiert. Das Verständnis dieser beiden Punkte ermöglicht Ihnen die Erstellung eines Werkzeugs und den Nutzern Ihres Werkzeugs dennoch die von Ihnen gewünschte Interaktion einzuräumen. Wie ein nicht unterstützter Parametertyp transformiert wird, hängt vom jeweiligen Parameter ab. Beim Freigeben Ihres Geoverarbeitungsservice kann die Transformation der Parameter unter Konfigurieren der Werkzeugeigenschaften Bearbeitung im Abschnitt Inhalt überprüft werden. Die folgenden Beispiele umfassen einige der gängigen Parameter und deren Änderung für die Verwendung in einem Geoverarbeitungsservice.

Der Feature-Class-Parameter unterstützt beispielsweise Shapefiles und Feature-Classes auf der Festplatte. Ihr Werkzeug verwendet jedoch ggf. den Feature-Layer- oder Feature-Set-Parameter. Der Feature-Layer-Parameter unterstützt die Auswahl aus einer Layer-Liste. Diese Layer-Liste entspricht den Layern Ihrer Karte zum Zeitpunkt der Veröffentlichung. Sie können auch den Feature-Set-Parameter verwenden. Dieser Parameter ermöglicht die interaktive Eingabe von Features. Eine Web-App, die einen Geoverarbeitungsservice mit einem Eingabe-Feature-Set verwendet, ermöglicht dem Benutzer das Erstellen von Features, mit denen der Service interagiert. Diese Konzepte gelten auch für Tabellen und Datensätze. All diese Methoden ermöglichen einem Benutzer die Bereitstellung einer Feature-Eingabe, jedoch werden damit sehr verschiedene Services beim Veröffentlichen erstellt. Anhand Ihres Workflows können Sie entscheiden, welcher Datentyp am besten geeignet ist.

Zu den häufig verwendeten Parametertypen, die beim Veröffentlichen hart codiert werden, zählen der Workspace- und der Ordnertyp. Ein Workflow kann auf eine .sde-Verbindungsdatei oder einen Ordner zugreifen und für die Elemente im Ordner einen Vorgang ausführen. Workspaces können nicht vom Client in den Geoverarbeitungsservice transportiert werden. Vielmehr werden sie im veröffentlichten Service hart codiert. Diese hart codierte Referenz verweist auf einen Speicherort, wobei diese Elemente je nach Data-Store-Setup referenziert oder kopiert werden. Der veröffentlichte Service verwendet den Workspace und dessen Inhalt weiterhin genauso wie vor der Veröffentlichung. Der einzige Unterschied besteht darin, dass der Benutzer des Service den Workspace nicht ändern kann.

Ausgabeparameter

In einem typischen Workflow weist der Geoverarbeitungsservice mindestens einen Ausgabeparameter auf. Geoverarbeitungsservices geben Ergebnisse über einen Ausgabeparameter an den Client zurück. Ohne diesen Parameter erfolgt keine Rückgabe durch den Service und scheint der Service fehlgeschlagen zu sein. Ähnlich wie bei Eingabeparametern unterstützen Geoverarbeitungsservices nur eine Teilmenge von Datentypen für Ausgabeparameter.

Tipp:
Wenn das Werkzeug, das Sie erstellen, keinen Ausgabeparameter benötigt, da es dazu dient, eine Aktualisierung oder Aktion zu einem vorgegebenen Zeitpunkt durchzuführen, benötigen Sie möglicherweise keinen Geoverarbeitungsservice. In diesem Fall ist ein geplanter Task möglicherweise ein geeigneterer Workflow.

Als Ausgabe-Datentypen, die Parameter der Typen "Abgeleitet" oder "Erforderlich" aufweisen können, werden in ArcGIS Pro die Datentypen in der linken Spalte der folgenden Tabelle unterstützt. Nach ihrer Veröffentlichung werden sie in die entsprechenden Datentypen in ArcGIS Enterprise in der rechten Spalte konvertiert.

Datentyp "Wertetabelle"

Datentyp in ArcGIS ProDatentyp in ArcGIS Enterprise

Feature-Class

GPFeatureRecordSetLayer

Raster-Dataset

GPRasterDataLayer

Tabelle

GPRecordSet

File

GPDataFile

Boolesch, Double, Long, Zeichenfolge (Text)

GPBoolean, GPDouble, GPLong, GPString

Datum

GPDate

Lineare Einheit

GPLinearUnit

Feld

Feld

Wertetabelle

GPValueTable

Verbund

GPComposite

Verbund-Datentyp

Wenn Sie über ArcGIS Pro 3.2 veröffentlichen, müssen Sie das Kontrollkästchen Datentyp als Verbund beibehalten auf der Registerkarte Inhalt des Freigabebereichs verwenden. Verwenden Sie diese Option, um zu bestimmen, ob der veröffentlichte Service-Parameterdatentyp ein Verbund ist. Das Kontrollkästchen ist nur bei Veröffentlichung in ArcGIS Enterprise 11.2 oder höher verfügbar.

Wenn die Veröffentlichung mit einem nicht aktivierten oder inaktiven Kontrollkästchen oder mit einem Python-Skript erfolgt, ist der Service-Datentyp des Parameters kein Verbund. Er ist der einzelne konvertierte Datentyp, der auf dem Wert basiert, der beim Ausführen des Werkzeugs vor der Veröffentlichung angegeben wurde. Wenn die Veröffentlichung mit einem aktivierten Kontrollkästchen erfolgt, ist der Web-Werkzeug-Datentyp des Parameters ein Verbund.

Nicht alle Verbund-Datentypen des Parameters können während der Veröffentlichung in die unterstützten Datentypen auf dem Server konvertiert werden. Wenn ein Datentyp nicht in einen serverseitig unterstützten Datentyp konvertiert werden kann, wird dieser Datentyp ignoriert oder zu GPString. Wenn mehrere Datentypen im Parameter dieselben zugehörigen konvertierten Datentypen haben, wird jeder von ihnen einzeln in diesen Datentyp konvertiert.

Hart codierte Ausgaben

Der wichtigste Punkt für Parameter ist möglicherweise, dass alle Ausgaben für den Nutzer des Service statisch werden. Wenn ein Geoverarbeitungsservice in einer Desktop- oder Web-App verwendet wird, wird niemals ein Wert für den Ausgabeparameter bereitgestellt. Dies ist bei der erstmaligen Ausführung des Service möglicherweise überraschend, da Sie keine Möglichkeit haben, den Ausgabenamen einer Feature-Class festzulegen. Beim Freigeben eines Geoverarbeitungsservice erfolgt die Ausgabe durch den Prozess, der den Geoverarbeitungsservice veröffentlicht. Der Ausgabename bei der Werkzeugausführung in ArcGIS Pro wird zum Namen des Ausgabeergebnisses des Service. Der Service schreibt die Ausgabe in in_memory oder in einen Scratch-Ordner (scratchGDB oder scratchFolder) und gibt die Ausgabe an den Client zurück, nachdem der Service erfolgreich ausgeführt wurde.

Nicht unterstützte Ausgabe

Einige Parametertypen werden in einem Geoverarbeitungsservice nicht unterstützt, da sie nicht an den Client zurückgegeben werden können. Beispiele hierfür sind Workspaces und komplexe Typen wie Netzwerk-Datasets und geometrische Netzwerke. Ein Workspace kann beispielsweise ein Ordner, ein Feature-Dataset oder eine .sde-Verbindungsdatei sein. Der Service kann nicht an einen Ordner oder Container mit Elementen zurückgesendet werden. Wenn Ihr Workflow das Zurücksenden mehrerer Elemente oder komplexer Elemente aus mehreren Elementen erfordert, müssen Sie diese Elemente möglicherweise komprimieren und die .zip-Datei zurückgeben. Wenn es Ihr Workflow zulässt, können Sie möglicherweise das Werkzeug Features kopieren verwenden und ein vereinfachtes Feature-Class-Ergebnis zurückgeben.