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.
Die folgenden Eingabedatentypen werden unterstützt:
- Feature-Set, Feature-Layer
- Datensatz, Tabellensicht
- Raster-Dataset, Raster-Layer
- Datei
- Double, Long
- Zeichenfolge (Text)
- Datum
- Lineare Einheit
- Feld
Feld
Hinweis:
Zur Verwendung des Datentyps "Feld" benötigen Sie ArcGIS Pro 2.3 oder höher und ArcGIS Enterprise 10.7 oder höher. Ein Feldparameter mit mehreren Werten wird nicht unterstützt.
Erstellen
Stellen Sie bei Werkzeugen mit einem Eingabefeldparameter sicher, dass der Parameter eine Abhängigkeit von einem Parameter mit einem Feature-Layer-Datentyp aufweist. Nur der Eingabe-Datentyp des Feature-Layers wird unterstützt. Informationen zum Einrichten der Abhängigkeit eines Parameters finden Sie unter Abhängigkeit.
Wird ausgeführt
Wenn Sie das Werkzeug vor der Veröffentlichung 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.
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 in Portal for ArcGIS erstellt wurden, nicht unterstützt.
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 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.Unterstützte Ausgabedatentypen können im Werkzeug als abgeleitet oder erforderlich definiert werden und sind auf Folgendes beschränkt:
- Feature-Class
- Tabelle
- Raster-Dataset
- Datei
- Double, Long
- Zeichenfolge (Text)
- Datum
- Lineare Einheit
Alle oben aufgeführten Typen unterstützen mehrere Werte.
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.