入力および出力パラメーター

すべての Web ツールには、入力パラメーターと出力パラメーターが必ずあります。 入力パラメーターがなければ、ツールが実行されるたびに、毎回同じ処理が行われます。 入力パラメーターの値を変更することで、異なる結果を得ることができます。 また、出力パラメーターを使うことで、ツールは結果を返すことができるようになります。 Web ツールを動作させるジオプロセシング サービスでは、入力パラメーターと出力パラメーターが明確に定義されています。

入力関連のパラメーター

Web ツールを作成する場合、ツールに入力を指定できるパラメーター データ タイプが多数あります。 正しいデータ タイプを選ぶことで、ツールの利用者は、正しい入力をツールに提供できるようになります。 一部のデータ タイプは特殊なものであり、ジオプロセシング サービスではサポートされていません。 ジオプロセシング サービスとして使用されるツールを構築する場合は、サポートされているデータ タイプを使って、ツールを作成することをお勧めします。 自分で作成して仲間内で共有するツールは、Web ツールとして作成し、公開するツールとは若干異なる場合もあります。

ArcGIS Pro でサポートされている入力データ タイプには、次のテーブルの左の列に示すデータ タイプを使用できます。 これらのデータ タイプを公開すると、ArcGIS Enterprise で対応するデータ タイプに変換されます。

ArcGIS Pro のデータ タイプArcGIS Enterprise のデータ タイプ

[Feature Set][Feature Layer]

GPFeatureRecordSetLayer

[Raster Dataset][Raster Layer]

GPRasterDataLayer

[Record Set[Table View]

GPRecordSet

ファイル

GPDataFile

[Boolean][Double][Long][String]

GPBoolean、GPDouble、GPLong、GPString

Date

GPDate

Linear Unit

GPLinearUnit

面積単位

GPArealUnit

フィールド

フィールド

値テーブル

GPValueTable

コンポジット

GPComposite

[空間参照][座標系]

GPSpatialReference、GPCoordinateSystem

[範囲][エンベロープ]

GPExtent、GPEnvelope

[文字列非表示][SQL 式]

GPStringHidden

SQL 式

GPSQLExpression

[値テーブル] データ タイプを除く、上の表のすべてのデータ タイプは、複数の値 (GPMultiValue) および複合パラメーター (GPComposite) をサポートしています。

フィールドのデータ タイプ

[フィールド] データ タイプを使用するには、ArcGIS Pro 2.3 以降または ArcGIS Enterprise 10.7 以降を使用します。

作成

入力フィールド パラメーターを使用するツールの場合、そのフィールド パラメーターとパラメーター (フィーチャ レイヤーやテーブルなど) との間に、依存関係があることを確認してください。

ArcGIS Pro 2.3ArcGIS 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 ArcGISMap Viewer Classic ではサポートされていません。

Value Table データ タイプ

値テーブルは、さまざまな値を含む行と列で構成される、柔軟なテーブルのようなオブジェクトです。 [Value Table] データ タイプを使用するには、ArcGIS Pro 3.0 以降および ArcGIS Enterprise 11.0 以降を使用します。 値テーブルの詳細については、ValueTable をご参照ください。 値テーブルでは、複数値はサポートされていません。

作成

値テーブル パラメーターの列名は、空でも重複していてもかまいませんが、ツール パラメーターを設計する際は、空白ではない一意の列名を使用することをお勧めします。 特に同じデータ タイプの列が複数ある場合に、空白ではない一意の列名を使用することで、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 ArcGISMap Viewer Classic ではサポートされていません。

コンポジット データ タイプ

ArcGIS Pro には、真の複合データ タイプは存在しません。複合データ タイプとは、複数のデータ タイプを持つパラメーターの名称に過ぎません。 Web ツールとして公開した後のデータ タイプは、サーバー上の実際のデータ タイプである GPComposite に変換できます。 パラメーター データ タイプをコンポジットに変換するには、ArcGIS Pro 3.2 以降と ArcGIS Enterprise 11.2 を使用します。

作成

公開前のパラメーターには、異なるデータ タイプが存在することができますが、各データ タイプが変換できることと、入力パラメーター テーブルに基づいて、公開後にどのデータ タイプに変換されるかを確認する必要があります。 コンポジット用のコンポジット フィルターを使用し、各サブタイプの値を設定できます。 このフィルターは、Web ツールとして公開する際に適用されます。 複数値のコンポジットを定義できますが、後からコンポジットとして公開する場合は、別の複数値、コンポジット、または ValueTable データ タイプを含むコンポジットを持つことはできません。

公開

ArcGIS Pro 3.2 で公開する場合、共有ウィンドウの [コンテンツ] タブの [データ タイプをコンポジットのままにする] チェックボックスをオンにします。 このオプションを使用し、公開された Web ツール パラメーター データ タイプがコンポジットであるかどうかを決定します。 このチェックボックスは、ArcGIS Enterprise 11.2 以降に公開する場合にのみ、アクティブになります。

チェックボックスがオフであるかアクティブではない状態、または Python スクリプトを使用して公開する場合、パラメーターの Web ツール データ タイプは、コンポジットになりません。 公開前にツールを実行したときに指定された値に基づく、単一の変換済みデータ タイプになります。 チェックボックスをオンにして公開すると、パラメーターの Web ツール データ タイプは、コンポジットになります。 コンポジット データ タイプで、使用可能なすべての入力モード オプションが表示されます。 オプションの 1 つとして混合モードがあり、パラメーターのデータ タイプごとに、異なる入力モードを選択できます。 混合モードは、データ タイプが複数値のコンポジットであるか、パラメーターのすべてのデータ タイプに適用される上位レベル フィルターが存在する場合は使用できません。

公開時に、すべての複合データ タイプをサーバー上でサポートされているデータ タイプに変換できるわけではありません。 データ タイプをサーバー側でサポートされているデータ タイプに変換できない場合、そのデータ タイプは削除されるか、GPString データ タイプになります。 コンポジット内にある複数のデータ タイプについて、対応する変換後データ タイプが同一である場合、そのそれぞれが個別にそのデータ タイプに変換されます。 たとえば、LAS Dataset、Feature Set、Feature Layer データ タイプを持つ入力パラメーターがある場合、LAS Dataset がサポートされていないデータ タイプであり、Feature Set と Feature Layer データ タイプの両方が、サーバー上で同じタイプに変換されることから、入力パラメーターを公開すると、GPFeatureRecordSetLayerGPFeatureRecordSetLayer のコンポジットになります。

使用

ArcGIS Pro 3.2 または Python スクリプトを使用し、コンポジット パラメーターを持つ Web ツールを使用できます。 ArcGIS Pro の旧バージョンを使用する場合、公開前にパラメーターに指定された値のデータ タイプのみ使用できます。 コンポジット データ タイプは、ArcGIS Web AppBuilder で作成されたアプリや Portal for ArcGISMap Viewer Classic ではサポートされていません。

ArcGIS Pro 3.2 を使用する場合、コンポジット パラメーターでサポートされているすべてのデータ タイプで、Web ツールを使用できます。 サーバーでサポートされていないデータ タイプもあるため、使用できるデータ タイプは、公開前よりも少ない場合があります。 パラメーターでサポートされているデータ タイプを確認するには、[カタログ][コンテンツ] ウィンドウで Web ツールを選択し、タスクを右クリックして、[タスク情報] 選択し、REST エンド ポイントを開きます。 GPComposite パラメーターでサポートされているデータ タイプは、[パラメーター情報] の属性の下にあります。

公開前に、各データ タイプに対してフィルターが設定されている場合、Web ツールの実行時に適用されます。 同じ名前を持つ変換されたデータ タイプが複数存在し、そのそれぞれが独自のフィルターを持つ場合、Web ツールを使用すると、最初に使用可能な値とフィルターが一致されます。

Areal Unit データ タイプ

[Areal Unit] データ タイプを使用するには、Web ツールを ArcGIS Pro 3.3 以降から ArcGIS Enterprise 11.3 以降に公開します。 データ タイプを文字列として維持するオプションもあります。 GeoprocessingSharingDraft オブジェクトを使用してサービスをステージングして公開する場合は、ArcGIS Pro 3.4 以降から公開します。 GeoprocessingSharingDraft オブジェクトの作成時に GPStringValues プロパティを使用し、データ タイプを文字列として維持するオプションもあります。

空間参照、座標系、範囲、エンベロープ、文字列非表示、および SQL 式のデータ タイプ

[空間参照][座標系][範囲][エンベロープ][文字列表示]、および [SQL 式] のデータ タイプを使用するには、Web ツールを ArcGIS Pro 3.4 以降から ArcGIS Enterprise 11.4 以降に公開します。 データ タイプを文字列として維持するオプションもあります。 geoprocessingSharingDraft オブジェクトを使用してサービスをステージングして公開する場合は、ArcGIS Pro 3.4 以降から公開します。また、geoprocessingSharingDraft オブジェクトを定義するときに GPStringValues プロパティを使用し、それを文字列データとして維持するオプションもあります。

サポートされていない入力

ツールの構築に使用するパラメーターが上記に含まれていない場合は、ジオプロセシング サービスでは、サポートされていません。 Web ツールを共有する際、サポートされていないパラメーターは、サービス内でハードコーディングされるか、サポートされている型に変換されます。 この 2 点を理解しておくと、ツールを作成することができるほか、ツール使用者が期待どおりの対話操作を行えるようになります。 サポートされていない型がどのように変換されるかは、パラメーターによって異なります。 Web ツールを共有する場合、パラメーター変換は、[コンテンツ] セクションの [ツール プロパティの構成] 編集 を使用して検証できます。 以下の例では、一般的なパラメーターを使用して、ジオプロセシング サービスで使用するために、変更を加える方法を説明します。

たとえば、フィーチャクラス パラメーターは、ディスク上のシェープファイルとフィーチャクラスの両方をサポートしています。 しかし、ツールでは、フィーチャ レイヤー パラメーターまたはフィーチャ セット パラメーターを使用できるとします。 フィーチャ レイヤー パラメーターは、レイヤーのリストからの選択が可能です。 このレイヤー リストは、マップ公開時のレイヤーと同じものです。 あるいは、フィーチャ セット パラメーターを使用することもできます。 このパラメーターでは、フィーチャの対話型の入力が可能です。 入力フィーチャ セットを使用して、ジオプロセシング サービスを使う Web アプリでは、対話的にフィーチャを作成することができます。 こうした概念は、テーブルやレコード セットにも適用されます。 このような方法を取ることで、ユーザーはフィーチャ入力を指定することができますが、公開するとまったく異なるサービスとなります。 最適なデータ タイプは、ワークフローによって決定されます。

公開したときにハードコーディングされる 2 つの一般的なパラメーター型とは、ワークスペース型とフォルダー型です。 ワークフローでは、.sde コネクション ファイルまたはフォルダーを使用し、そのフォルダー内のアイテムに対して、操作を実行することができます。 ワークスペースは、クライアントからジオプロセシング サービスに転送することはできません。 代わりに、公開されたサービスで、ハードコーディングされます。 このようにハードコーディングされた参照は、データ ストアの設定に応じて、これらのアイテムが参照されているか、コピーされている場所を指定します。 公開されたサービスは、公開前と同じように、ワークスペースとそのコンテンツを使用します。 唯一の相違点は、サービスのユーザーがワークスペースを変更できないことです。

出力関連のパラメーター

一般的なワークフローでは、Web ツールには、少なくとも 1 つの出力パラメーターがあります。 Web ツールは、出力パラメーターを通じて、クライアントに結果を返します。 このパラメーターがなければ、サービスは何も返しません。 入力パラメーターと同じように、ジオプロセシング サービスは、出力パラメーターとして一部のデータ タイプをサポートしています。

ヒント:
作成しているツールの目的が、指定時間に更新や何らかの操作を行うことであるため、出力パラメーターは必要ないと思われる場合は、ジオプロセシング サービスが不要であることもあります。 その場合は、スケジュールされたタスクの方が、ワークフローとして適しているかもしれません。

サポートされる出力データ タイプでは、パラメーター タイプは出力または必須であり、次のテーブルの左の列に示す ArcGIS Pro のデータ タイプを使用できます。 これらのデータ タイプを公開すると、ArcGIS Enterprise で対応する右の列のデータ タイプに変換されます。

サポートされている出力データ タイプ

ArcGIS Pro のデータ タイプArcGIS Enterprise のデータ タイプ

フィーチャクラス

GPFeatureRecordSetLayer

Raster Dataset

GPRasterDataLayer

テーブル

GPRecordSet

ファイル

GPDataFile

[Boolean][Double][Long][String]

GPBoolean、GPDouble、GPLong、GPString

Date

GPDate

Linear Unit

GPLinearUnit

面積単位

GPArealUnit

フィールド

フィールド

値テーブル

GPValueTable

コンポジット

GPComposite

[空間参照][座標系]

GPSpatialReference、GPCoordinateSystem

[範囲][エンベロープ]

GPExtent、GPEnvelope

文字列非表示

GPStringHidden

SQL 式

GPSQLExpression

上記のすべての出力データ タイプは、[ValueTable] 以外は、複数値をサポートしています。 ArcGIS Enterprise のデータ タイプについては、GPMultiValue をご参照ください。

テーブルで、[Value Table] 以外のすべての上記のタイプは、コンポジット パラメーターの一部になることができます。 複数値をサポートするコンポジット パラメーターもあります。 ArcGIS Enterprise のデータ タイプについては、GPComposite をご参照ください。

[値テーブル] データ タイプを除く、上の表のすべての出力データ タイプは、複数の値 (GPMultiValue) および複合パラメーター (GPComposite) をサポートしています。

コンポジット データ タイプ

ArcGIS Pro 3.2 で公開する場合、共有ウィンドウの [コンテンツ] タブの [データ タイプをコンポジットのままにする] チェックボックスをオンにします。 このチェックボックスは、ArcGIS Enterprise 11.2 以降に公開する場合にのみ、アクティブになります。

チェックボックスがオフであるかアクティブではない状態、または Python スクリプトを使用して公開する場合、パラメーターの Web ツール データ タイプは、コンポジットになりません。 公開前にツールを実行したときに指定された値に基づく、単一の変換済みデータ タイプになります。 チェックボックスをオンにして公開すると、パラメーターの Web ツール データ タイプは、コンポジットになります。

公開時に、パラメーターのすべてのコンポジット データ タイプを、サーバー上でサポートされているデータ タイプに変換できるわけではありません。 データ タイプをサーバー側でサポートされているデータ タイプに変換できない場合、そのデータ タイプは、削除されるか、GPString になります。 パラメーター内にある複数のデータ タイプについて、対応する変換後データ タイプが同一である場合、そのそれぞれが個別に、そのデータ タイプに変換されます。

ハードコーディングされた出力

すべての出力は、サービスのユーザーにとって静的です。 デスクトップや Web アプリで、ジオプロセシング サービスが使用される場合、出力パラメーターに値が指定されることはありません。 フィーチャクラスの出力名を設定することができないため、サービスを初めて実行した方は、驚かれるかもしれません。 Web ツールを共有すると、ジオプロセシング サービスを公開するプロセスが出力を処理します。 ArcGIS Pro でツールを実行したときの出力名が、サービスの出力結果の名前になります。 サービスは、メモリや、テンポラリ フォルダーテンポラリ GDBテンポラリ ワークスペース環境などのテンポラリの場所に出力を書き込みます。 サービスは、サービスが正常に実行された後に、クライアントに出力を返します。

空間参照、座標系、範囲、エンベロープ、文字列非表示、および SQL 式のデータ タイプ

[空間参照][座標系][範囲][エンベロープ][文字列表示]、および [SQL 式] のデータ タイプを使用するには、Web ツールを ArcGIS Pro 3.4 以降から ArcGIS Enterprise 11.4 以降に公開します。 データ タイプを文字列として維持するオプションもあります。 geoprocessingSharingDraft オブジェクトを使用してサービスをステージングして公開する場合は、ArcGIS Pro 3.4 以降から公開します。また、geoprocessingSharingDraft オブジェクトを定義するときに GPStringValues プロパティを使用し、それを文字列データとして維持するオプションもあります。

サポートされていない出力

パラメーター型の中には、クライアントに返すことができないために、ジオプロセシング サービスでサポートされていないものもあります。 たとえば、ワークスペースや、ネットワーク データセットやジオメトリック ネットワークなどの複雑な型が挙げられます。 たとえば、ワークスペースにはフォルダー、フィーチャ データセット、または .sde コネクション ファイルがあります。 サービスは、フォルダーやアイテムのコンテナーを返すことはできません。 複数のアイテムや、複数アイテムで構成される複雑なアイテムを返すことが求められるワークフローの場合、出力パラメーター タイプをファイルに変更し、これらのアイテムを ZIP で圧縮して、.zip ファイルを返す必要があります。 あるいは、ワークフローで可能であれば、[フィーチャのコピー (Copy Features)] ツールを使用し、簡易的なフィーチャクラス結果を返すこともできます。