Parámetros de entrada y salida para servicios de geoprocesamiento

Todas las herramientas que funcionan correctamente tienen parámetros de entrada y salida. Sin parámetros de entrada, la herramienta siempre realizaría el mismo procesamiento en cada ejecución. Cambiar el valor de un parámetro de entrada producirá un resultado diferente. Los parámetros de salida permiten que una herramienta devuelva el resultado. El servicio de geoprocesamiento en el que se basa un servicio de geoprocesamiento tiene reglas bien definidas tanto en los parámetros de entrada como en los de salida. Estas reglas, que se explican a continuación, garantizan que se pueden publicar herramientas adecuadas para la web, donde los clientes interactuarán con ellas de una forma predecible.

Parámetro de entrada

Cuando se crea una herramienta de geoprocesamiento, hay más de 100 tipos de datos de parámetros únicos que se pueden usar para suministrar entradas a una herramienta. Elegir un tipo de datos en lugar de otro puede ayudar a quienes utilizan la herramienta a proporcionar las entradas esperadas a la herramienta. Muchos tipos de datos son especializados y no son compatibles con un servicio de geoprocesamiento. Cuando se crea una herramienta que se debe usar como servicio de geoprocesamiento, es mejor que se haga usando tipos de datos compatibles. Una herramienta que se crea y se distribuye a otros usuarios puede ser ligeramente diferente que una herramienta que se crea para publicarla como servicio de geoprocesamiento.

Los tipos de datos de entrada admitidos en ArcGIS Pro pueden ser cualquiera de los siguientes tipos de datos de la columna izquierda de la tabla siguiente. Una vez publicados, se convertirán a los correspondientes tipos de datos en ArcGIS Enterprise.

Tipo de datos en ArcGIS ProTipo de datos en ArcGIS Enterprise

Conjunto de entidades, Capa de entidades

GPFeatureRecordSetLayer

Dataset ráster, Capa ráster

GPRasterDataLayer

Conjunto de registros, Vista de tabla

GPRecordSet

Archivo

GPDataFile

Booleano,Doble,Largo,Cadena de caracteres (texto)

GPBoolean, GPDouble, GPLong, GPString

Fecha

GPDate

Unidad lineal

GPLinearUnit

Campo

Campo

Tabla de valores

GPValueTable

Campo

El campo es una columna de una tabla en la que se almacenan los valores de un solo atributo.

Creación

En el caso de herramientas con un parámetro de campo de entrada, asegúrese de que el parámetro de campo depende de otro parámetro, con una capa de entidades o una tabla.

Si utiliza de ArcGIS Pro 2.3 a ArcGIS Pro 2.9, solo se admiten como dependencias el conjunto de entidades y la entrada de capa de entidades. Si va a publicar desde ArcGIS Pro 3.0 o versiones posteriores a ArcGIS Enterprise 11.0 o versiones posteriores, el tipo de datos de campo puede depender de todos los tipos de datos de entrada de tablas y entidades compatibles.

Ejecutar la herramienta

Cuando ejecute la herramienta antes de publicar entre ArcGIS Pro 2.3 y ArcGIS Pro 2.9, para las capas de entidades de las que dependen dichos parámetros de campo, seleccione una clase de entidad del disco. No use una capa de entidades como entrada.

En ArcGIS Pro 3.0 o versiones posteriores y al publicar en ArcGIS Enterprise 11.0 o versiones posteriores, no hay restricciones sobre cómo elegir los datos de entrada. Puede utilizar una capa de entidades, una clase de entidad en el disco, una tabla o una vista de tabla para las capas de las que depende un parámetro de campo.

Publicación

Al configurar las propiedades de la herramienta, compruebe que el Modo de entrada, tanto de la entidad de entrada como de los campos, esté establecido en Valor definido por el usuario.

Uso

Al usar el servicio de geoprocesamiento en ArcGIS Pro, todos los campos aplicables se rellenarán automáticamente en la lista desplegable después de que seleccione una entrada.

Nota:

El tipo de datos de campo no se admite en aplicaciones creadas en ArcGIS Web AppBuilder o Map Viewer Classic en Portal for ArcGIS.

Tabla de valores

Una tabla de valores es un objeto flexible similar a una tabla, formado por filas y columnas que contienen varios valores. Para usar el tipo de datos Tabla de valores, necesita ArcGIS Pro 3.0 o versiones posteriores y ArcGIS Enterprise 11.0 o versiones posteriores. Para obtener más información sobre la tabla de valores, consulte Tabla de valores. No se admiten valores múltiples de una tabla de valores.

Creación

Aunque los nombres de columna de un parámetro de tabla de valores pueden estar vacíos o duplicados, se recomiendan los nombres de columna únicos y no vacíos al diseñar los parámetros de la herramienta. Los nombres de columna únicos y no vacíos permiten a los usuarios de la herramienta web distinguir distintas columnas cuando utilizan la herramienta web, especialmente cuando hay varias columnas con los mismos tipos de datos.

Publicación

Puede publicar un servicio de geoprocesamiento con un parámetro de tabla de valores de entrada o salida con Python. Si una columna del parámetro de la tabla de valores tiene un filtro, el proceso de publicación incluirá el filtro.

Más información sobre la publicación de servicios de geoprocesamiento en un script de Python

Uso

Puede utilizar un servicio de geoprocesamiento con un parámetro de tabla de valores mediante ArcGIS Pro 3.0 o con Python. El tipo de datos de la tabla de valores no es compatible con Web AppBuilder ni Map Viewer Classic.

Utilizar servicios de geoprocesamiento en scripts de Python

Entradas incompatibles

Si el parámetro que está usando para crear la herramienta no aparece en la lista anterior, no es compatible con un servicio de geoprocesamiento. Al compartir el servicio de geoprocesamiento, un parámetro no compatible se codificará en el servicio o se convertirá en un tipo compatible. Entender estos dos puntos le permitirá crear una herramienta y los consumidores de esta podrán tener con ella la interacción deseada. La manera en que se transforma un tipo de parámetro no compatible depende del parámetro. Al compartir el servicio de geoprocesamiento, la transformación del parámetro se puede examinar mediante Configurar las propiedades de la herramienta Edición en la sección Contenido. Los siguientes ejemplos incluyen algunos de los parámetros más habituales y la forma de modificarlos para que funcionen en un servicio de geoprocesamiento.

Por ejemplo, el parámetro de clase de entidad admite tanto shapefiles como clases de entidad en el disco. Sin embargo, la herramienta podría usar el parámetro de capa de entidades o de conjunto de entidades. El parámetro de capa de entidades admite la selección desde una lista de capas. La lista de capas coincidirá con las capas del mapa en el momento de la publicación. Alternativamente, puede usar el parámetro de conjunto de entidades. Este parámetro permite la entrada interactiva de entidades. Una aplicación web que usa un servicio de geoprocesamiento con un conjunto de entidades de entrada permitirá al usuario crear entidades con las que interactuará el servicio. Estos conceptos también son válidos para las tablas y los conjuntos de registros. Estos métodos permiten a un usuario suministrar una entrada de entidad; sin embargo, crean servicios muy diferentes al publicar. El flujo de trabajo ayudará a decidir qué tipo de datos es más apropiado.

Dos tipos de parámetros muy utilizados que se codifican al publicar son los tipos de espacio de trabajo o carpeta. Un flujo de trabajo puede tomar una carpeta o un archivo de conexión de .sde y llevar a cabo una operación en los elementos de la carpeta. Un espacio de trabajo no se puede transportar al servicio de geoprocesamiento desde el cliente. En cambio, se codifica en el servicio publicado. Esta referencia codificada apunta a una ubicación con estos elementos referenciados o copiados dependiendo de la configuración del data store. El servicio publicado seguirá usando el espacio de trabajo y su contenido de la misma forma que antes de la publicación. La única diferencia es que el usuario del servicio no puede cambiar el espacio de trabajo.

Parámetros de salida

En un flujo de trabajo habitual, el servicio de geoprocesamiento tendrá al menos un parámetro de salida. Un servicio de geoprocesamiento devuelve un resultado al cliente a través de un parámetro de salida. Sin este parámetro, el servicio no puede devolver nada y parecerá que el servicio ha fallado. De un modo muy similar a los parámetros de entrada, los servicios de geoprocesamiento solo admiten un subconjunto de tipos de datos para los parámetros de salida.

Sugerencia:
Si la herramienta que está creando no necesita ningún parámetro de salida porque la finalidad de la herramienta es realizar una actualización o una acción en un momento especificado, puede que no necesite un servicio de geoprocesamiento. En este caso, una tarea programada puede ser un flujo de trabajo más adecuado.

Los tipos de datos de salida admitidos pueden tener un tipo de parámetro derivado o requerido y pueden ser cualquiera de los siguientes tipos de datos en la columna izquierda de la tabla siguiente en ArcGIS Pro. Una vez publicada, se convertirán en los correspondientes tipos de datos en la columna de la derecha en ArcGIS Enterprise.

Tipo de datos en ArcGIS ProTipo de datos en ArcGIS Enterprise

Clase de entidad

GPFeatureRecordSetLayer

Dataset ráster

GPRasterDataLayer

Tabla

GPRecordSet

Archivo

GPDataFile

Booleano,Doble,Largo,Cadena de caracteres (texto)

GPBoolean, GPDouble, GPlong, GPString

Fecha

GPDate

Unidad lineal

GPLinearUnit

Campo

Campo

Tabla de valores

GPValueTable

Salidas codificadas

Probablemente, el aspecto más importante para los parámetros es que todas las salidas pasan a ser estáticas para el consumidor del servicio. Cuando un servicio de geoprocesamiento se consume en una aplicación de escritorio o web, no se suministra ningún valor para el parámetro de salida. Esto puede resultar sorprendente la primera vez que se intenta ejecutar el servicio, ya que no se ofrece la posibilidad de definir el nombre de salida de una clase de entidad. Al compartir un servicio de geoprocesamiento, el proceso que publica el servicio de geoprocesamiento se encarga de la salida. El nombre de salida al ejecutar la herramienta en ArcGIS Pro se convierte en el nombre del resultado de salida del servicio. El servicio escribe la salida en in_memory o en una ubicación temporal (scratchGDB o scratchFolder) y devolverá la salida al cliente una vez que el servicio se haya ejecutado correctamente.

Salida no compatible

Algunos tipos de parámetros no son compatibles con un servicio de geoprocesamiento, ya que no se pueden devolver al cliente. Los espacios de trabajo y tipos complejos como los datasets de red y las redes geométricas son ejemplos de esto. Un espacio de trabajo, por ejemplo, puede ser una carpeta, un dataset de entidades o un archivo de conexión de .sde. El servicio no puede devolver una carpeta o un contenedor de elementos. Si el flujo de trabajo requiere devolver varios elementos o elementos complejos compuestos por varios elementos, puede ser necesario comprimir esos elementos y devolver el archivo .zip. Como alternativa, si su flujo de trabajo lo permite, puede usar la herramienta Copiar entidades y devolver un resultado de clase de entidad simplificado.