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

Compuesta

GPComposite

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 ValueTable. 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

Tipo de datos Compuesto

En ArcGIS Pro no existe un verdadero tipo de datos compuesto; un tipo de datos compuesto es simplemente un nombre para un parámetro con múltiples tipos de datos. Tras la publicación como servicio de geoprocesamiento, el tipo de datos puede convertirse a GPComposite, que es un tipo de datos real en el servidor. Para convertir un tipo de datos de parámetro a compuesto, se requiere ArcGIS Pro 3.2 o posterior y ArcGIS Enterprise 11.2.

Creación

Aunque puede haber tipos de datos diferentes en el parámetro antes de publicar, asegúrese de que cada tipo de datos pueda convertirse y verifique a qué tipo de datos se convertirá tras la publicación en función de la tabla parámetros de entrada. Puede usar el filtro Compuesto para establecer los valores para cada subtipo. El filtro se respetará durante la publicación como servicio. Puede definir un valor múltiple para un compuesto, pero un compuesto no puede contener otro tipo de datos multivalor, compuesto o ValueTable si desea publicarlo como compuesto posteriormente.

Publicación

Al publicar con ArcGIS Pro 3.2, marque la casilla Mantener tipo de datos como Compuesto en la pestaña Contenido del panel compartido. Use esta opción para determinar si el tipo de datos del parámetro del servicio publicado es compuesto. Esta casilla solo está activa al publicar en ArcGIS Enterprise 11.2 o posterior.

Si se publica con la casilla inactiva o no marcada, o con un script de Python, el tipo de datos del servicio del parámetro no será compuesto. Es un tipo de datos compuesto único basado en el valor proporcionado al ejecutar la herramienta antes de publicar. Al publicar con la casilla marcada, el tipo de datos del servicio del parámetro será compuesto. Se muestran todas las opciones de modo de entrada disponibles para los tipos de datos compuestos. Una de las opciones es el modo mezcla, en el que puede seleccionar un modo de entrada diferente para cada tipo de datos del parámetro. El modo mezcla no está disponible si el tipo de datos es un compuesto multivalor o si hay un filtro de nivel alto que se aplica a todos los tipos de datos para el parámetro.

Durante la publicación, no todos los tipos de datos compuestos pueden convertirse a los tipos de datos admitidos en el servidor. Si un tipo de datos no puede convertirse en un tipo de datos admitido en el lado del servidor, ese tipo de datos se eliminará o se convertirá en un tipo de datos GPString. Si varios tipos de datos en el compuesto tienen los mismos tipos de datos correspondientes, cada uno de ellos se convertirá en ese tipo de datos de forma individual. Por ejemplo, si tiene un parámetro de entrada con los tipos de datos dataset LAS, conjunto de entidades y capa de entidades, se convertirá en un compuesto de GPFeatureRecordSetLayer y otro GPFeatureRecordSetLayer una vez publicado, puesto que dataset LAS no es un tipo de datos admitido y los tipos de datos conjunto de entidades y capa de entidades se convierten al mismo tipo en el servidor.

Uso

Puede usar servicios con un parámetro compuesto mediante ArcGIS Pro 3.2 o con un script de Python. Si está consumiendo de una versión anterior de ArcGIS Pro, solo puede usarse el tipo de datos del valor proporcionado para el parámetro antes de la publicación. El tipo de datos compuesto no es compatible con aplicaciones creadas en ArcGIS Web AppBuilder o Map Viewer Classic en Portal for ArcGIS.

Use ArcGIS Pro 3.2 para utilizar un servicio con todos los tipos de datos admitidos del parámetro compuesto. Puesto que hay algunos tipos no admitidos en el servidor, es posible que los tipos de datos que puede usar sean menos de los que había disponibles antes de la publicación. Para comprobar los tipos de datos admitidos del parámetro, seleccione el servicio de la conexión de ArcGIS Server en el panel Catálogo. Haga clic con el botón derecho del ratón en la tarea del servicio y seleccione Ver metadatos para abrir el panel y compruebe el tipo de datos del parámetro. Servicios de geoprocesamiento disponibles

Si se establecen filtros para cada tipo de datos antes de la publicación, se respetarán al ejecutar el servicio. Si existen varios tipos de datos convertidos con el mismo nombre y cada uno tiene su propio filtro, al consumir el servicio el valor disponible se asignará a cada filtro.

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 de la Tabla de valores

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

Compuesta

GPComposite

Tipo de datos Compuesto

Al publicar con ArcGIS Pro 3.2, marque la casilla Mantener tipo de datos como Compuesto en la pestaña Contenido del panel compartido. Use esta opción para determinar si el tipo de datos del parámetro del servicio publicado es compuesto. Esta casilla solo está activa al publicar en ArcGIS Enterprise 11.2 o posterior.

Si se publica con la casilla inactiva o no marcada, o con un script de Python, el tipo de datos del servicio del parámetro no será compuesto. Es el tipo de datos compuesto único basado en el valor proporcionado al ejecutar la herramienta antes de publicar. Al publicar con la casilla marcada, el tipo de datos de la herramienta web del parámetro será compuesto.

Durante la publicación, no todos los tipos de datos compuestos del parámetro pueden convertirse a los tipos de datos admitidos en el servidor. Si un tipo de datos no puede convertirse en un tipo de datos admitido en el lado del servidor, ese tipo de datos se eliminará o se convertirá en GPString. Si varios tipos de datos en el parámetro tienen los mismos tipos de datos convertidos correspondientes, cada uno de ellos se convertirá a ese tipo de datos individualmente.

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.