Taskvorgang: execute (REST)

Jeder Geoverarbeitungs-Task verfügt über eine unterstützende Operation, basierend auf der Eigenschaft "Ausführungstyp" des übergeordneten Service. Wenn der Ausführungstyp des Geoverarbeitungs-Service synchron ist, unterstützen alle Geoverarbeitungs-Tasks in diesem Service nur die Operation Execute Task. Die URL für die Operation "Execute Task" lautet http://<gp-task-url>/execute.

So führen Sie den Task aus

Um einen Geoverarbeitungs-Task auszuführen, muss der Client eine Anforderungs-URL mit der URL des Execute-Tasks erstellen und Namen-Wert-Paare aller erforderlichen Eingabeparameter des Tasks anhängen, wie nachfolgend dargestellt:

http://<task-url>/execute?parameter1=value1&parameter2=value2

parameter1=value1 ist ein Namen-Wert-Paar, wobei parameter1 für den Namen des Task-Parameters und value1 für die ASCII-Repräsentation des JSON-Wertes steht. Wenn die Anforderungs-URL an den Server gesendet wird, wird der Task mit den angegebenen Eingabewerten auf dem Server ausgeführt. Bei erfolgreicher Task-Ausführung erstellt der Server am Ende der Ausführung eine Antwort mit den Werten der Ausgabeparameter und sendet diese an den Client, wie nachfolgend dargestellt: Wenn der Task fehlschlug, sendet der Server eine Fehlerantwort an den Client.

Task-Ausführung auf dem Server

Task erfolgreich abgeschlossen

Die vom Server gesendete Antwort wird als Ergebnis des Geoverarbeitungs-Tasks bezeichnet und enthält die Ausgabeparameterwerte und Meldungen, die von dem Geoverarbeitungs-Task während der Ausführung erstellt wurden. Das Task-Ergebnis enthält ein Array von Ausgabeparametern. Jeder Ausgabeparameter im Array enthält einen paramName, dataType und einen value. Das Task-Ergebnis enthält auch ein Array von Geoverarbeitungsmeldungen. Jedes Element im Meldungs-Array enthält einen Typ (esriJobMessageTypeInformative, esriJobMessageTypeWarning oder esriJobMessageTypeError) und eine Meldungsbeschreibung. Die vom Server zurückgegebenen Meldungen hängen von der Meldungsebene des Geoverarbeitungs-Service ab. Wenn die Meldungsebene auf Keine festgelegt wurde, gibt der Server keine Meldungen zurück.

Weitere Informationen zu Meldungsebenen in Geoverarbeitungs-Services

Das Task-Ergebnis-JSON für einen Buffer Points-Task mit einem Ausgabeparameter, Output_Polygons, ist unten angegeben:

JSON-Repräsentation des Ergebnisses eines Geoverarbeitungs-Task. (Die Werte für Geometrie- und Meldungs-Array wurden im Beispiel zur Verkürzung abgeschnitten.)

{
 "results":[
  {"paramName": "Output_Polygons",
   "dataType": "GPFeatureRecordSetLayer",
   "value":{
    "displayFieldName": "",
    "geometryType": "esriGeometryPolygon",
    "spatialReference": {"wkid": 102726,"latestWkid": 102726},
    "fields":[{"name": "FID","type": "esriFieldTypeOID","alias": "FID"},
              {"name": "BUFF_DIST","type": "esriFieldTypeDouble","alias": "BUFF_DIST"},
              {"name": "Shape_Length","type": "esriFieldTypeDouble","alias": "Shape_Length"},
              {"name": "Shape_Area","type": "esriFieldTypeDouble","alias": "Shape_Area"},
    "features": [{"attributes": {"FID": 1,"BUFF_DIST": 3280.83333333,"Shape_Length": 20613.401930152133,
    "Shape_Area": 3.381121258723078E7},
    "geometry": {"rings": [[[7643591.49993746,684676.8331969529],[7643683.927544728,684675.5310036689],...more]]},        
    "exceededTransferLimit": false
           }
   }],
 "messages": [{"type":"esriJobMessageTypeInformative","description": "Start Time: Mon Feb 27 15:56:09 2012"},
              {"type":"esriJobMessageTypeInformative","description": "Executing (BufferPoints): BufferPoints.. "}...more
  ]
}

Fehlerantwort

Eine "Execute Task"-Operation kann aufgrund ungültiger Parameter oder anderer Fehler mit Geoverarbeitungswerkzeugen fehlschlagen. Der Server gibt dann einen Geoverarbeitungs-Task-Fehler mit einem Fehlercode, die Zeichenfolge Der Vorgang kann nicht abgeschlossen werden. und detailliertere Fehlerinformationen zurück. Das JSON-Format für den Fehler ist unten angegeben:

Fehler-JSON, das von einem Verarbeitungs-Task zurückgegeben wird

{"error":{"code":400,"message":"Unable to complete operation.","details":[]}}

Die Detaillierungsebene in der Fehlermeldung hängt von der Meldungsebene des Geoverarbeitungs-Service ab. Basierend auf der Meldungsebene enthält die Detaileigenschaft entsprechende Meldungen des Geoverarbeitungswerkzeugs, die bei der Ausführung erstellt wurden. Wenn die Eingabeparameter des Werkzeugs ungültig sind, oder wenn die Meldungsebene des Geoverarbeitungs-Service auf Keine festgelegt ist, bleibt die Eigenschaft Details der Fehlerantwort leer, wie im obigen Beispiel dargestellt.

HinweisHinweis:

Die Operation Cancel wird bei der Operation "Execute" nicht unterstützt. Dieser Vorgang wird nur bei der Operation "submitJob" unterstützt.

Verwandte Themen

9/23/2013