Cada tarea de geoprocesamiento tiene una operación compatible basada en la propiedad de tipo Ejecución del servicio principal. Si el tipo Ejecución del servicio de geoprocesamiento es sincrónico, todas las tareas de geoprocesamiento dentro del servicio admitirán la operación Ejecutar tarea. La dirección URL para la operación de tarea ejecutar http://<gp-task-url>/execute.
Cómo ejecutar la tarea
Para ejecutar una tarea de geoprocesamiento, el cliente debe construir una dirección URL de solicitud con la URL de la tarea Ejecutar e incorporar los pares de nombre-valor de todos los parámetros de entrada de la tarea como se muestra a continuación:
http://<task-url>/execute?parameter1=value1¶meter2=value2
Parameter1=value1 es un nombre-valor en el que parameter1 es el nombre del parámetro de tarea y value1 la representación ASCII del valor JSON. Cuando la dirección URL de solicitud se envía al servidor, la tarea se ejecuta en el servidor con los valores de entrada. Al final de la ejecución, si la tarea es satisfactoria el servidor construirá una respuesta con los valores de los parámetros de salida y se la enviará al cliente como se ilustra a continuación. Si la tarea falla, el servidor enviará una respuesta de error al cliente.
Resultado de tarea satisfactorio
La respuesta enviada por el cliente se denomina resultado de tarea de geoprocesamiento e incluye valores de parámetros de salida y mensajes generados por la tarea de geoprocesamiento durante la ejecución. El resultado de la tarea tendrá un conjunto de parámetros de salida. Cada parámetro de salida en el conjunto tendrá un paramName, un dataType y su valor. El resultado de la tarea tendrá también un conjunto de mensajes de geoprocesamiento. Cada elemento en el mensaje conjunto tendrá un tipo (esriJobMessageTypeInformative, esriJobMessageTypeWarning o esriJobMessageTypeError) y una descripción de mensaje. Los mensajes devueltos por el servidor dependen del nivel de mensaje del servicio de geoprocesamiento. Si el nivel de mensaje se establece en Ninguno, el servidor no devolverá ningún mensajes.
Más información acerca de los niveles de mensajes en los servicios de geoprocesamiento
El resultado de tarea JSON para una tarea de Puntos de zona de influencia con un parámetro de salida, Output_Polygons, se muestra a continuación.
Representación JSON de resultado de tarea de geoprocesamiento. (La geometría y los valores del conjunto de mensajes se han truncado en el ejemplo para que fueran más breves).
{ "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 ] }
Respuesta de error
Una operación de tarea de ejecución puede fallar debido a otros parámetros no válidos o fallos de la herramienta de geoprocesamiento. En tales casos, el servidor devolverá un error de tarea de geoprocesamiento con un número de código, la cadena de caracteres No se pudo completar la operación. y los detalles del fallo. El formato JSON para el error se proporcionan a continuación:
Error JSON devueltos por una tarea de geoprocesamiento
{"error":{"code":400,"message":"Unable to complete operation.","details":[]}}
El nivel de detalle en la respuesta de error depende del nivel del mensaje de error del servicio de geoprocesamiento. Basándose en el mensaje, el la propiedad nivel incluirá los mensajes de la herramienta de geoprocesamiento adecuados generados durante la ejecución. Si los parámetros de entrada de la herramienta no es válida o si la propiedad nivel de mensaje del servicio de geoprocesamiento se establece en Ninguno, la propiedad detalles de la respuesta de error estará vacía como se muestra en el ejemplo de arriba.