Входные и выходные параметры

У всех работающих инструментов есть входные и выходные параметры. Без входных параметров инструмент будет всегда выполнять одну и ту же процедуру при запуске. При изменении значения входного параметра инструмент будет выдавать разные результаты. Выходные параметры позволяют инструменту вернуть результат. Сервис геообработки, который лежит в основе веб-инструмента включает правила, описывающие входные и выходные параметры. Эти правила приведены ниже, они гарантируют, что инструмент подходит для работы в веб и может быть опубликован на клиентах, которые будут с ним взаимодействовать.

Входные параметры

При создании инструмента геообработки может использоваться много типов данных параметров, которые могут служить входными данными. Выбор определенного типа данных помогает предоставить инструменту ожидаемые входные данные. Некоторые типы данных довольно специфические и не поддерживаются сервисом геообработки. При создании инструмента, который впоследствии будет опубликован в качестве сервиса геообработки, лучше всего создавать его с учетом поддерживаемых типов данных. Инструмент, который вы создаете и которым делитесь с коллегами, может быть настроен отлично от создаваемого вами инструмента, который будет опубликован исключительно в виде веб-инструмента.

Поддерживаемые типы входных данных в ArcGIS Pro могут быть любыми из следующих типов данных в левом столбце приведенной ниже таблицы. После публикации они будут преобразованы в соответствующие типы данных в ArcGIS Enterprise.

Тип данных в ArcGIS ProТип данных в ArcGIS Enterprise

Набор объектов, Векторный слой

GPFeatureRecordSetLayer

Набор растровых данных, Растровый слой

GPRasterDataLayer

Набор записей, Представление таблицы

GPRecordSet

Файл

GPDataFile

Логическое значение (Boolean), Двойное (Double), Длинное (Long), Строка (String) (текст)

GPBoolean, GPDouble, GPLong, GPString

Дата

GPDate

Линейные единицы измерения

GPLinearUnit

Поле

Поле

Таблица значений

GPValueTable

Составная

GPComposite

За исключением Таблицы значений, все типы данных в предыдущей таблице поддерживают мультизначения. См. GPMultivalue для этого типа данных в ArcGIS Enterprise.

За исключением Таблицы значений, все типы из предыдущей таблицы могут быть частью составного параметра. Составной параметр может поддерживать мультизначения. См. GPComposite для этого типа данных в ArcGIS Enterprise.

Тип данных поля

Чтобы использовать тип данных Поле, необходимо установить версию ArcGIS Pro 2.3 или более позднюю и версию ArcGIS Enterprise10.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 или более поздней, нет никаких ограничений на то, как вы выбираете входные данные. Вы можете использовать слой объектов, класс объектов на диске, таблицу или табличное представление для слоев, от которых зависит параметр поля.

Публикация

Когда вы настраиваете свойства инструмента, режим ввода параметра поля будет опцией Списка выбора по умолчанию. Убедитесь, что режим ввода для этого параметра установлен на опции Определяемое пользователем значение. Более подробно о режимах ввода при публикации веб-инструментов см. в разделе Содержание.

Использование

При использовании веб-инструмента в ArcGIS Pro все применимые поля в ниспадающем списке будут автоматически заполнены после того, как вы выберете входные данные.

Примечание:

Тип данных поля не поддерживается в приложениях, созданных в ArcGIS Web AppBuilder или Map Viewer Classic в Portal for ArcGIS.

Тип данных Таблица значений

Таблица значений - это гибкий объект типа таблицы, состоящий из строк и столбцов и содержащий разные значения. Чтобы использовать тип данных поля Таблица значений, необходимо установить ArcGIS Pro 3.0 или более позднюю и ArcGIS Enterprise версии 10.7 или более позднюю. Чтобы узнать больше о таблице значений, посмотрите раздел Таблица значений. Многозначность не поддерживается таблицей значений.

Создание

Хотя имена столбцов параметра таблицы значений могут быть пустыми или дублироваться, при разработке параметров инструмента рекомендуется использовать уникальные и непустые имена столбцов. Уникальные и непустые имена столбцов позволяют пользователям вашего веб-инструмента различать разные столбцы при использовании веб-инструмента, особенно при наличии нескольких столбцов с одинаковыми типами данных.

Публикация

Вы можете опубликовать веб-инструмент с параметром таблицы входных или выходных значений напрямую, используя ArcGIS Pro 3.1 и выше для публикации в ArcGIS Enterprise 11.0 или выше. Если вы публикуете в ArcGIS Enterprise 10.9.1 или более раннюю версию, режим ввода параметра таблицы значений изменяется на постоянный во время публикации. При публикации с помощью скрипта Python вы можете использовать ArcGIS Pro 3.0 или выше. Если столбец в параметре таблицы значений имеет фильтр, процесс публикации будет включать этот фильтр.

Использование

Вы можете применять веб-инструмент с входным или выходным параметром таблицы значений, используя ArcGIS Pro или скрипт Python, если имеете ArcGIS Pro 3.0 или выше. Тип данных поля таблицы значений не поддерживается в приложениях, созданных в ArcGIS Web AppBuilder или Map Viewer Classic в Portal for ArcGIS.

Составной тип данных

В ArcGIS Pro нет истинного составного типа данных; составной тип данных — это просто имя параметра с несколькими типами данных. После публикации в качестве веб-инструмента тип данных можно преобразовать в GPComposite, который является реальным типом данных на сервере. Чтобы преобразовать тип данных параметра в составной, вам потребуется ArcGIS Pro 3.2 или более поздняя версия и ArcGIS Enterprise 11.2.

Создание

Несмотря на то, что перед публикацией в параметре могут быть разные типы данных, убедитесь, что каждый тип данных можно преобразовать и в какой тип данных он будет преобразован после публикации на основе таблицы входных параметров. Вы можете использовать Составной фильтр для составных данных, чтобы установить значения для каждого подтипа. Фильтр будет учитываться при публикации в качестве веб-инструмента. Вы можете определить несколько значений составного элемента, но вы не можете иметь составной элемент, содержащий другой многозначный, составной или ValueTable тип данных, если хотите позже опубликовать его как составной элемент.

Публикация

При публикации с помощью ArcGIS Pro 3.2 отметьте опцию Сохранить тип данных как составной на вкладке Ресурсы панели общего доступа. Используйте эту опцию, чтобы определить, является ли тип данных опубликованного параметра веб-инструмента составным. Эта опция активна только при публикации в ArcGIS Enterprise 11.2 или выше.

При публикации с неотмеченной или неактивной опцией или с помощью скрипта Python тип данных веб-инструмента параметра не является составным. Это единый преобразованный тип данных, основанный на значении, указанном при запуске инструмента перед публикацией. При публикации с отмеченной опцией тип данных веб-инструмента параметра является составным. Отобразятся все доступные опции режима ввода для составных типов данных. Одной из опций является смешанный режим, в котором вы можете выбрать свой режим ввода для каждого типа данных параметра. Смешанный режим недоступен, если тип данных является многозначным составным или если есть фильтр верхнего уровня, который применяется ко всем типам данных параметра.

Во время публикации не все составные типы данных можно преобразовать в типы данных, поддерживаемые на сервере. Если тип данных невозможно преобразовать в тип данных, поддерживаемый на стороне сервера, этот тип данных будет удален или станет типом данных GPString. Если несколько типов данных в составном элементе имеют одинаковые соответствующие преобразованные типы данных, каждый из них преобразуется в этот тип данных индивидуально. Например, если у вас есть входной параметр с типами данных Набор данных LAS, Набор объектов и Векторный слой, после публикации он станет составным из GPFeatureRecordSetLayer и другого GPFeatureRecordSetLayer, учитывая, что набор данных LAS не является поддерживаемым типом данных, а типы данных Набор объектов и Векторный слой преобразуются в один тип на сервере.

Использование

Вы можете использовать веб-инструменты с составным параметром, используя ArcGIS Pro 3.2 или скрипт Python. При использовании более ранней версии ArcGIS Pro можно использовать только тип данных, предоставленный для параметра перед публикацией. Составной тип данных не поддерживается в приложениях, созданных в ArcGIS Web AppBuilder или Map Viewer Classic в Portal for ArcGIS.

При использовании ArcGIS Pro 3.2 вы можете использовать веб-инструмент со всеми поддерживаемыми типами данных составного параметра. Поскольку на сервере есть некоторые неподдерживаемые типы, типов данных, которые вы можете использовать, может быть меньше, чем было до публикации. Чтобы проверить поддерживаемые типы данных параметра, выберите веб-инструмент на панели Ресурсы Каталога, щелкните задачу правой кнопкой мыши и выберите Информация о задаче, чтобы открыть конечную точку REST. Поддерживаемые типы данных параметра GPComposite находятся в атрибуте информации о параметре.

Если фильтры установлены для каждого типа данных перед публикацией, они будут учитываться при запуске веб-инструмента. Если существует несколько преобразованных типов данных с одинаковым именем и каждый из них имеет свой собственный фильтр, использование веб-инструмента будет соответствовать первому доступному значению для каждого фильтра.

Неподдерживаемые входные параметры

Если параметр, который вы используете при создании инструмента, не перечислен выше, это значит, что он не поддерживается сервисом геообработки. При публикации веб-инструмента неподдерживаемый параметр будет либо жестко закодирован в сервисе, или преобразован в поддерживаемый тип. Зная это, вы можете создать инструмент и разрешить своим пользователям взаимодействовать с ним так, как вы этого ожидаете. Как неподдерживаемый тип параметра будет преобразован, зависит от самого параметра. При публикации веб-инструмента с преобразованием параметра можно ознакомиться, используя сведения в Настраивая свойства инструмента Редактирование в разделе Содержание. В примерах ниже приведены популярные параметры и варианты их изменения для работы в сервисе геообработки.

Например, параметр класса пространственных объектов поддерживает как шейп-файлы, так и классы объектов на диске. Однако ваш инструмент может использовать параметр векторного слоя или набора объектов. Параметр векторного слоя поддерживает выборку из списка слоев. Этот список слоев будет тем же самым, что и слои вашей карты на момент публикации. Либо вы можете использовать параметр набор объектов. Этот параметр позволяет интерактивный ввод объектов. Веб-приложение, использующее сервис геообработки с входным набором объектов будет позволять пользователю создавать объекты в сервисе, с которым он взаимодействует. Эти замечания также применимы к таблицам и наборам записей. Эти методы поддерживают ввод объектов пользователем, однако при их публикации можно создать разные сервисы. Ваш рабочий процесс подскажет, какие типы данных больше всего подходят.

Два широко используемых типа параметра, которые становятся жестко закодированными при публикации - это рабочая область и типы папок. Для рабочего процесса может понадобиться файл подключения .sde или папка, после чего он выполнит операцию для элементов данной папки. Рабочую область нельзя перенести с клиента на сервис геообработки. Вместо этого она жестко кодируется внутри публикуемого сервиса. Эта жестко закодированная ссылка указывает на местоположение, содержащее указанные элементы, либо в виде ссылок либо в виде копий, в зависимости от настроек хранилища данных. Опубликованный сервис будет продолжать использовать эту рабочую область и ее содержимое так же, как это делал инструмент до публикации. Единственное различие заключается в том, что пользователь сервиса эту рабочую область поменять не может.

Выходные параметры

В обычном рабочем процессе у вашего веб-инструмента будет как минимум один выходной параметр. Именно с его помощью веб-инструмент возвращает результат клиенту. Без этого параметра сервис ничего не будет возвращать. Так же, как и в случае с входными параметрами, сервисы геообработки поддерживают некоторые типы данных для выходных параметров.

Подсказка:
Если создаваемому вами инструменту не нужен выходной параметр, поскольку целью инструмента является выполнить обновление или действие в определенное время, вам может не понадобиться сервис геообработки. В этом случае рекомендуется создавать запланированные задачи.

Поддерживаемые типы выходных данных могут иметь тип параметра производный или требуемый и могут быть любыми из следующих типов данных в левом столбце приведенной ниже таблицы в ArcGIS Pro. После публикации они будут соответствовать типам данных в правом столбце в ArcGIS Enterprise.

Тип данных Таблица значений

Тип данных в ArcGIS ProТип данных в ArcGIS Enterprise

Класс пространственных объектов

GPFeatureRecordSetLayer

Набор растровых данных

GPRasterDataLayer

Таблица

GPRecordSet

Файл

GPDataFile

Логическое значение (Boolean), Двойное (Double), Длинное (Long), Строка (String) (текст)

GPBoolean, GPDouble, GPlong, GPString

Дата

GPDate

Линейные единицы измерения

GPLinearUnit

Поле

Поле

Таблица значений

GPValueTable

Составная

GPComposite

Все вышеперечисленные типы выходных данных, отличные от ValueTable поддерживают мультизначения. См. GPMultivalue для этого типа данных в ArcGIS Enterprise.

За исключением Таблицы значений, все типы из предыдущей таблицы могут быть частью составного параметра. Составной параметр может поддерживать мультизначения. См. GPComposite для этого типа данных в ArcGIS Enterprise.

Составной тип данных

При публикации с помощью ArcGIS Pro 3.2 отметьте опцию Сохранить тип данных как составной на вкладке Ресурсы панели общего доступа. Эта опция активна только при публикации в ArcGIS Enterprise 11.2 или выше.

При публикации с неотмеченной или неактивной опцией или с помощью скрипта Python тип данных веб-инструмента параметра не является составным. Это единый преобразованный тип данных, основанный на значении, указанном при запуске инструмента перед публикацией. При публикации с отмеченной опцией тип данных веб-инструмента параметра является составным.

Во время публикации не все составные типы данных параметра можно преобразовать в типы данных, поддерживаемые на сервере. Если тип данных невозможно преобразовать в тип данных, поддерживаемый на стороне сервера, этот тип данных будет удален или станет GPString. Если несколько типов данных в параметре имеют одинаковые соответствующие преобразованные типы данных, каждый из них будет преобразован в этот тип данных индивидуально.

Жестко закодированные выходные данные

Все выходные результаты будут статичными для пользователей сервиса. Когда сервис геообработки запускается в настольном или веб-приложении, он не требует указать какое-либо значение в качестве выходного параметра. Это может удивить вас в первый раз, когда вы попытаетесь запустить сервис, поскольку вам не будет предоставлена возможность задать выходное имя для класса объектов. При публикации веб-инструмента процесс, который публикует сервис геообработки, отвечает за выходные данные. Имя выходных данных при запуске инструмента в ArcGIS Pro используется для результатов работы сервиса. Сервис обрабатывает запись выходных данных либо в память, либо во временное место, такую как Временная папка, Временная база геоданных или Временная рабочая область. Сервис возвращает результат на клиент после успешного выполнения обработки.

Неподдерживаемые выходные параметры

Некоторые типы параметров не поддерживается в сервисе геообработки и не могут быть возвращены на клиент. Например, это рабочие области и сложные типы данных, например, сетевые наборы данных и геометрические сети. Рабочая область, например, может быть папкой, набором данных объектов или файлом подключения .sde. Сервис не может вернуть в результате своей работы папку или хранилище с элементами. Если в рабочем процессе требуется отправить обратно множество элементов или сложные элементы, состоящие из нескольких компонентов,, вам может потребоваться изменить тип выходного параметра на файл, заархивировать эти элементы и возвратить файл .zip. Или, если позволяет рабочая область, вы сможете использовать инструмент Копировать объекты и вернуть результат в виде упрощенного класса объектов.