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