Skip To Content

Opération de tâche : execute (REST)

Chaque tâche de géotraitement prend en charge une opération en fonction de la propriété du type d'exécution du service parent. Si le type d'exécution du service de géotraitement est synchrone, toutes les tâches de géotraitement du service prennent en charge l'opération Exécuter la tâche uniquement. L'URL de l'opération execute est http://<gp-task-url>/execute.

Procédure d'exécution de la tâche.

Pour exécuter une tâche de géotraitement, le client doit créer une URL de requête avec l'URL d'exécution de la tâche et ajouter les paires nom-valeur de tous les paramètres en entrée obligatoires de la tâche comme suit :

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

parameter1=value1 est une paire nom-valeur dans laquelle parameter1 est le nom du paramètre de tâche et value1 la représentation ASCII de la valeur JSON. Lorsque l'URL de la requête est envoyée au serveur, la tâche s'exécute sur le serveur avec les valeurs en entrée fournies. A la fin de l'exécution, si la tâche a abouti, le serveur crée une réponse avec les valeurs des paramètres en sortie et l'envoie au client comme illustré ci-dessous. Si la tâche échoue, le serveur envoie un message d'erreur au client.

Exécution d'une tâche sur le serveur

Résultat de tâche positif

La réponse envoyée par le client s'appelle un résultat de tâche de géotraitement et comprend les valeurs de paramètres en sortie et les messages générés par la tâche de géotraitement au cours de l'exécution. Le résultat de la tâche comporte un tableau de paramètres en sortie. Chaque paramètre en sortie du tableau est associé à une valeur paramName, dataType et value. Le résultat de la tâche comprend également un tableau de messages de géotraitement. Chaque élément du tableau de messages est défini par un type (esriJobMessageTypeInformative, esriJobMessageTypeWarning ou esriJobMessageTypeError) et une description de message. Les messages renvoyés par le serveur dépendent du niveau de message défini pour le service de géotraitement. Si le niveau de message est défini sur Aucun, le serveur ne renvoie aucun message.

Pour en savoir plus sur les niveaux de message dans les services de géotraitement

Voici un exemple de résultat de tâche au format JSON pour une tâche de bufferisation de points avec le paramètre en sortie Output_Polygons.

Représentation JSON de résultat de tâche de géotraitement. (Les valeurs de tableau de géométrie et de messages ont été tronquées pour les besoins de l'exemple.)

{
 "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
  ]
}

Réponse relative à une erreur

L'exécution de la tâche peut échouer en raison de paramètres non valides ou d'autres défaillances de l'outil de géotraitement. Dans ce cas, le serveur renvoie un message d'erreur de tâche de géotraitement contenant un numéro de code, la chaîne Impossible de terminer l'opération et des informations détaillées sur la défaillance. Le format JSON pour les erreurs est indiqué ci-dessous :

JSON d'erreur renvoyé par une tâche Géotraitement

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

Le niveau de détail de la réponse relative à l'erreur dépend du niveau de message du service de géotraitement. En fonction du niveau de message, les détails incluent les messages pertinents générés au cours de l'exécution de l'outil de géotraitement. Si les paramètres en entrée de l'outil ne sont pas valides ou si la propriété Niveau du message du service de géotraitement est défini sur Aucun, la propriété details de la réponse est vide, comme dans l'exemple ci-dessus.

Remarque :

L'opération d'annulation n’est pas prise en charge pour une opération d'exécution. Cette opération est uniquement prise en charge pour l'opération submitJob.

Rubriques connexes