タスク操作: 実行(REST)

各ジオプロセシング タスクでは、親サービスの実行タイプ プロパティに基づいて操作がサポートされています。ジオプロセシング サービスの実行タイプが同期である場合、そのサービス内のすべてのジオプロセシング タスクはタスク実行操作のみをサポートします。タスク実行操作の URL は http://<GP タスクの URL>/execute です。

タスクの実行方法

ジオプロセシング タスクを実行するには、次に示すように、クライアントがタスク実行の URL を使ってリクエスト URL を作成し、タスクに必要なすべての入力パラメータの名前と値のペアを追加する必要があります。

http://<タスクの URL>/execute?parameter1=value1&parameter2=value2

parameter1=value1 は名前と値のペアです。ここで parameter1 はタスク パラメータの名前、value1 は JSON 値の ASCII 表現です。リクエスト URL がサーバに送信されると、指定された入力値を使ってタスクがサーバ上で実行されます。実行終了時にタスクが成功した場合は、次の図に示すように、サーバが、出力パラメータの値を含む応答を作成し、クライアントに送信します。タスクが失敗すると、サーバはエラー応答をクライアントに送信します。

サーバでのタスク実行

成功したタスク結果

クライアントによって送信される応答はジオプロセシング タスク結果と呼ばれ、実行時にジオプロセシング タスクによって生成された出力パラメータ値とメッセージで構成されます。タスク結果には出力パラメータの配列が含まれます。配列内の出力パラメータごとに、paramNamedataType、およびその value が示されます。また、タスク結果にはジオプロセシング messages の配列も含まれます。メッセージの配列内のエレメントごとに、タイプ(esriJobMessageTypeInformativeesriJobMessageTypeWarning、または esriJobMessageTypeError)とメッセージの説明が示されます。サーバから返されるメッセージは、ジオプロセシング サービスのメッセージ レベルによって異なります。メッセージ レベルがなしに設定されている場合、サーバはメッセージを返しません。

ジオプロセシング サービスのメッセージ レベルの詳細

1 つの出力パラメータ Output_Polygons を含む、バッファ ポイント タスクのタスク結果の JSON を次に示します。

ジオプロセシング タスク結果の JSON 表現(この例では、簡潔にするため、ジオメトリとメッセージの配列の値が切詰められています。)

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

エラー応答

無効なパラメータまたは他のジオプロセシング ツールの障害のため、タスク実行操作が失敗することがあります。このような場合、サーバは、コード番号と文字列 Unable to complete operation.(操作を完了できません。)、および失敗の詳細を示すジオプロセシング タスク エラーを返します。エラーの JSON フォーマットを次に示します。

ジオプロセシング タスクによって返されるエラーの JSON

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

エラー応答の詳細レベルは、ジオプロセシング サービスのメッセージ レベルによって異なります。メッセージ レベルに基づいて、詳細プロパティに、実行時に生成された該当するジオプロセシング ツール メッセージが含まれます。ツールの入力パラメータが無効な場合やジオプロセシング サービスのメッセージ レベル プロパティがなしに設定されている場合、エラー応答の詳細プロパティは、上記の例で示したように空になります。

注意注意:

キャンセル操作は実行操作でサポートされていません。キャンセル操作はジョブの送信(submitJob)操作でのみサポートされています。

関連トピック

9/14/2013