実用的なツールには、入力パラメーターと出力パラメーターが必ずあります。入力パラメーターがなければ、ツールが実行されるたびに同じ処理が行われます。入力パラメーターの値を変更することで、異なる結果を得ることができます。また、出力パラメーターを使うことで、ツールは結果を返すことができるようになります。ジオプロセシング サービスを動作させるジオプロセシング サービスでは、入力パラメーターと出力パラメーターが明確に定義されています。以下に説明するこれらのルールは、Web に適したツールを、クライアントが操作する場所で期待どおりに公開するために定められたものです。
入力関連のパラメーター
ジオプロセシング ツールを作成する場合、100 個以上の一意のパラメーター データ型を使用して、ツールに入力を指定することができます。正しいデータ型を選ぶことで、ツールの利用者は正しい入力をツールに提供できるようになります。多くのデータ型は特殊なものであり、ジオプロセシング サービスではサポートされていません。ジオプロセシング サービスとして使用されるツールを構築する場合は、サポートされているデータ型を使ってツールを作成することをお勧めします。自分で作成して仲間内で共有するツールは、ジオプロセシング サービスとして作成し、公開するツールとは若干異なる場合もあります。
サポートされる入力データ型は以下のとおりです。
- フィーチャ セット、フィーチャ レイヤー
- レコード セット、テーブル ビュー
- ラスター データセット、ラスター レイヤー
- ファイル
- double、long
- String (テキスト)
- 日時
- 距離単位
- フィールド
フィールド
メモ:
フィールド データ タイプを使用するには、ArcGIS Pro 2.3 以降または ArcGIS Enterprise 10.7 以降が必要です。複数値フィールド パラメーターはサポートされていません。
作成
入力フィールド パラメーターを使用するツールの場合、そのパラメーターとフィーチャ レイヤー データ タイプを使用するパラメーターとの間に依存関係があることを確認してください。サポートされるのは、フィーチャ レイヤー入力データ タイプだけです。パラメーターの依存関係を設定する方法については、「依存関係」をご参照ください。
実行
公開する前にツールを実行する場合、これらのフィールド パラメーターが依存するフィーチャ レイヤーに対して、ディスクからフィーチャクラスを選択します。フィーチャ レイヤーを入力として使用しないでください。
公開
ツールのプロパティを構成する際は、入力フィーチャとフィールドの両方の [入力モード] が [ユーザー定義値] に設定されていることを確認します。
使用
ArcGIS Pro でジオプロセシング サービスを使用する場合、入力を選択後に、該当するすべてのフィールドがドロップダウン リストに自動的に反映されます。
メモ:
フィールド データ タイプは、ArcGIS Web AppBuilder で作成されたアプリや Portal for ArcGIS の Map Viewer ではサポートされていません。
サポートされていない入力
ツールの構築に使用するパラメーターが上記に含まれていない場合は、ジオプロセシング サービスではサポートされていません。ジオプロセシング サービスを共有する際、サポートされていないパラメーターはサービス内でハードコーディングされるか、サポートされている型に変換されます。この 2 点を理解しておくと、ツールを作成することができるほか、ツール使用者が期待どおりの対話操作を行えるようになります。サポートされていない型がどのように変換されるかは、パラメーターによって異なります。ジオプロセシング サービスを共有する場合、パラメーター変換は [コンテンツ] セクションの [ツール] プロパティ を構成することで検証されます。以下の例では、一般的なパラメーターを使用して、ジオプロセシング サービスで使用するために変更を加える方法を説明します。
たとえば、フィーチャクラス パラメーターは、ディスク上のシェープファイルとフィーチャクラスの両方をサポートしています。しかし、ツールでは、フィーチャ レイヤー パラメーターまたはフィーチャ セット パラメーターを使用できるとします。フィーチャ レイヤー パラメーターは、レイヤーのリストからの選択が可能です。このレイヤー リストは、マップ公開時のレイヤーと同じものです。あるいは、フィーチャ セット パラメーターを使用することもできます。このパラメーターでは、フィーチャの対話型の入力が可能です。入力フィーチャ セットを使用してジオプロセシング サービスを使う Web アプリでは、対話的にフィーチャを作成することができます。こうしたコンセプトは、テーブルやレコード セットにも適用されます。このような方法を取ることで、利用者はフィーチャ入力を指定することができますが、公開するとまったく異なるサービスとなります。最適なデータ型は、ワークフローによって決定されます。
公開したときにハードコーディングされる 2 つの一般的なパラメーター型とは、ワークスペース型とフォルダー型です。ワークフローでは、.sde 接続ファイルやフォルダーを使用し、フォルダー内のアイテムに対して操作を行います。ワークスペースは、クライアントからジオプロセシング サービスに転送することはできません。代わりに、公開されたサービスでハードコーディングされます。このようにハードコーディングされた参照は、データ ストアの設定に応じて、これらのアイテムが参照されているか、コピーされている場所を指定します。公開されたサービスは、公開前と同じようにワークスペースとそのコンテンツを使用します。唯一の相違点は、サービスのユーザーがワークスペースを変更できないことです。
出力関連のパラメーター
一般的なワークフローでは、ジオプロセシング サービスには少なくとも 1 つの出力パラメーターがあります。ジオプロセシング サービスは、出力パラメーターを通じてクライアントに結果を返します。このパラメーターがなければサービスは何も返さないため、サービスが失敗したように見えます。入力パラメーターと同じように、ジオプロセシング サービスは、出力パラメーターとして一部のデータ型のみサポートしています。
ヒント:
作成しているツールの目的が、指定時間に更新や何らかの操作を行うことであるため、出力パラメーターは必要ないと思われる場合は、ジオプロセシング サービスが不要であることもあります。その場合は、スケジュールされたタスクの方がワークフローとして適しているかもしれません。サポートされる出力データ型は、出力データまたは必須データとしてツールで定義され、以下のデータ型に制限されます。
- フィーチャクラス
- テーブル
- ラスター データセット
- ファイル
- double、long
- String (テキスト)
- 日時
- 距離単位
上記のすべての出力データ タイプは複数値をサポートしています。
ハードコーディングされた出力
パラメーターについて特に重要な点とは、すべての出力はサービスのユーザーにとって静的であるということでしょう。デスクトップや Web アプリでジオプロセシング サービスが使用される場合、出力パラメーターに値が指定されることはありません。フィーチャクラスの出力名を設定することができないため、サービスを初めて実行した方は驚かれるかもしれません。ジオプロセシング サービスを共有すると、ジオプロセシング サービスを公開するプロセスが出力を処理します。ArcGIS Proでツールを実行したときの出力名が、サービスの出力結果の名前になります。サービスは、in_memory またはテンポラリの場所 (scratchGDB または scratchFolder) に出力を書き込み、サービスが正常に実行された後にクライアントに出力を返します。
サポートされていない出力
パラメーター型の中には、クライアントに返すことができないためにジオプロセシング サービスでサポートされていないものもあります。たとえば、ワークスペースや、ネットワーク データセットやジオメトリック ネットワークなどの複雑な型が挙げられます。たとえば、ワークスペースにはフォルダー、フィーチャ データセット、または .sde コネクション ファイルがあります。サービスは、フォルダーやアイテムのコンテナーを返すことはできません。複数のアイテムや、複数アイテムで構成される複雑なアイテムを返すことが求められるワークフローの場合、これらのアイテムを ZIP で圧縮し、*.zip ファイルを返す必要があります。あるいは、ワークフローで可能であれば、[フィーチャのコピー (Copy Features)] ツールを使用し、簡易的なフィーチャクラス結果を返すこともできます。