У всех работающих инструментов есть входные и выходные параметры. Без входных параметров инструмент будет всегда выполнять одну и ту же процедуру при запуске. При изменении значения входного параметра инструмент будет выдавать разные результаты. Выходные параметры позволяют инструменту вернуть результат. Сервис геообработки, который лежит в основе веб-инструмента включает правила, описывающие входные и выходные параметры. Эти правила приведены ниже, они гарантируют, что инструмент подходит для работы в веб и может быть опубликован на клиентах, которые будут с ним взаимодействовать.
Входные параметры
При создании инструмента геообработки может использоваться более 100 типов данных уникальных параметров, которые могут служить входными данными. Выбор определенного типа данных помогает предоставить инструменту ожидаемые входные данные. Многие типы данных довольно специфические и не поддерживаются сервисом геообработки. При создании инструмента, который впоследствии будет опубликован в качестве сервиса геообработки, лучше всего создавать его с учетом поддерживаемых типов данных. Инструмент, который вы создаете и которым делитесь с коллегами, может быть настроен отлично от создаваемого вами инструмента, который будет опубликован исключительно в виде веб-инструмента.
Поддерживаются следующие типы входных данных:
- Набор объектов, векторный слой
- Набор записей, представление таблицы
- Набор растровых данных, или растровый слой
- Файл
- Двойной, длинное целое
- Строка (Текст)
- Дата
- Линейные единицы измерения
- Поле
За исключением Поля, все вышеперечисленные типы поддерживают множественные значения.
Поле
Примечание:
Чтобы использовать тип данных поля, необходимо установить ArcGIS Pro 2.3 или позднее и ArcGIS Enterprise версии 10.7 или позднее. Параметр поля с множественным значениями не поддерживается.
Создание
Для инструментов, имеющих входной параметр поля, следует убедиться, что этот параметр имеет зависимость от параметра, имеющего тип данных векторного слоя. Поддерживается только входной тип данных векторного слоя. Чтобы задать зависимость от параметра, см. раздел Зависимость.
Выполняется
Если вы запускаете инструмент до публикации, и для векторных слоёв, от которых зависят эти параметры полей, выберите класс объектов с диска. Не используйте векторный слой в качестве входных данных.
Публикация
Когда вы настраиваете свойства инструмента, убедитесь, что режим ввода установлен на Определяемое пользователем значение. Более подробно о режимах ввода при публикации веб-инструментов см. в разделе Содержание.
Использование
При использовании веб-инструмента в ArcGIS Pro, все применимые поля в ниспадающем списке будут автоматически заполнены после того, как вы выберете входные данные.
Примечание:
Тип данных поля не поддерживается в приложениях, созданных в ArcGIS Web AppBuilder или Map Viewer в Portal for ArcGIS.
Неподдерживаемые входные параметры
Если параметр, который вы используете при создании инструмента, не перечислен выше, это значит, что он не поддерживается сервисом геообработки. При публикации веб-инструмента неподдерживаемый параметр будет либо жестко закодирован в сервисе, или преобразован в поддерживаемый тип. Зная это, вы можете создать инструмент и разрешить своим пользователям взаимодействовать с ним так, как вы этого ожидаете. Как неподдерживаемый тип параметра будет преобразован, зависит от самого параметра. При публикации веб-инструмента с преобразованием параметра можно ознакомиться, используя сведения в Настраивая свойства инструмента в разделе Содержание. В примерах ниже приведены популярные параметры и варианты их изменения для работы в сервисе геообработки.
Например, параметр класса пространственных объектов поддерживает как шейп-файлы, так и классы объектов на диске. Однако ваш инструмент может использовать параметр векторного слоя или набора объектов. Параметр векторного слоя поддерживает выборку из списка слоев. Этот список слоев будет тем же самым, что и слои вашей карты на момент публикации. Либо вы можете использовать параметр набор объектов. Этот параметр позволяет интерактивный ввод объектов. Веб-приложение, использующее сервис геообработки с входным набором объектов будет позволять пользователю создавать объекты в сервисе, с которым он взаимодействует. Эти замечания также применимы к таблицам и наборам записей. Эти методы поддерживают ввод объектов пользователем, однако при их публикации можно создать разные сервисы. Ваш рабочий процесс подскажет, какие типы данных больше всего подходят.
Два широко используемых типа параметра, которые становятся жестко закодированными при публикации - это рабочая область и типы папок. Для рабочего процесса может понадобиться файл подключения .sde или папка, после чего он выполнит операцию для элементов данной папки. Рабочую область нельзя перенести с клиента на сервис геообработки. Вместо этого она жестко кодируется внутри публикуемого сервиса. Эта жестко закодированная ссылка указывает на местоположение, содержащее указанные элементы, либо в виде ссылок либо в виде копий, в зависимости от настроек хранилища данных. Опубликованный сервис будет продолжать использовать эту рабочую область и ее содержимое так же, как это делал инструмент до публикации. Единственное различие заключается в том, что пользователь сервиса эту рабочую область поменять не может.
Выходные параметры
В обычном рабочем процессе у вашего веб-инструмента будет как минимум один выходной параметр. Именно с его помощью веб-инструмент возвращает результат клиенту. Без этого параметра сервис ничего не будет возвращать, и может показаться, что его запуск не удался. Так же, как и в случае с входными параметрами, сервисы геообработки поддерживают только определенный перечень типов данных для выходных параметров.
Подсказка:
Если создаваемому вами инструменту не нужен выходной параметр, поскольку целью инструмента является выполнить обновление или действие в определенное время, вам может не понадобиться сервис геообработки. В этом случае рекомендуется создавать запланированные задачи.Поддерживаемые типы выходных данных можно определить в инструменте как либо производные, либо обязательные. Возможно использование следующих типов:
- Класс пространственных объектов
- Таблица
- Набор растровых данных
- Файл
- Двойной, длинное целое
- Строка (Текст)
- Дата
- Линейные единицы измерения
Все вышеперечисленные типы данных поддерживают множественные значения.
Жестко закодированные выходные данные
Возможно наиболее подходящим вариантом будет тот, при котором все выходные результаты будут статичными для пользователей сервиса. Когда сервис геообработки запускается в настольном или веб-приложении, он не требует указать какое-либо значение в качестве выходного параметра. Это может удивить вас в первый раз, когда вы попытаетесь запустить сервис, поскольку вам не будет предоставлена возможность задать выходное имя для класса объектов. При публикации веб-инструмента процесс, который публикует сервис геообработки, отвечает за выходные данные. Выходное имя при запуске инструмента в ArcGIS Pro становится именем выходного результата вашего сервиса. Сервис определяет запись результатов в папку in_memory или временную рабочую область (scratchGDB или scratchFolder) и возвращает результат на клиент после успешного выполнения обработки.
Неподдерживаемые выходные параметры
Некоторые типы параметров не поддерживается в сервисе геообработки и не могут быть возвращены на клиент. Например, это рабочие области и сложные типы данных, например, сетевые наборы данных и геометрические сети. Рабочая область, например, может быть папкой, набором данных объектов или файлом подключения .sde. Сервис не может вернуть в результате своей работы папку или хранилище с элементами. Если в рабочем процессе требуется отправить обратно множество элементов или сложные элементы, состоящие из нескольких компонентов, вам может потребоваться упаковать эти элементы в архив и вернуть файл .zip. Или, если позволяет рабочая область, вы сможете использовать инструмент Копировать объекты и вернуть результат в виде упрощенного класса объектов.