タスク操作: 実行(REST)
各ジオプロセシング タスクでは、親サービスの実行タイプ プロパティに基づいて操作がサポートされています。ジオプロセシング サービスの実行タイプが同期である場合、そのサービス内のすべてのジオプロセシング タスクはタスク実行操作のみをサポートします。タスク実行操作の URL は http://<GP タスクの URL>/execute です。
タスクの実行方法
ジオプロセシング タスクを実行するには、次に示すように、クライアントがタスク実行の URL を使ってリクエスト URL を作成し、タスクに必要なすべての入力パラメータの名前と値のペアを追加する必要があります。
http://<タスクの URL>/execute?parameter1=value1¶meter2=value2
parameter1=value1 は名前と値のペアです。ここで parameter1 はタスク パラメータの名前、value1 は JSON 値の ASCII 表現です。リクエスト URL がサーバに送信されると、指定された入力値を使ってタスクがサーバ上で実行されます。実行終了時にタスクが成功した場合は、次の図に示すように、サーバが、出力パラメータの値を含む応答を作成し、クライアントに送信します。タスクが失敗すると、サーバはエラー応答をクライアントに送信します。
成功したタスク結果
クライアントによって送信される応答はジオプロセシング タスク結果と呼ばれ、実行時にジオプロセシング タスクによって生成された出力パラメータ値とメッセージで構成されます。タスク結果には出力パラメータの配列が含まれます。配列内の出力パラメータごとに、paramName、dataType、およびその value が示されます。また、タスク結果にはジオプロセシング messages の配列も含まれます。メッセージの配列内のエレメントごとに、タイプ(esriJobMessageTypeInformative、esriJobMessageTypeWarning、または 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)操作でのみサポートされています。