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.
Se admiten los siguientes tipos de datos de entrada:
- Conjunto de entidades, capa de entidades
- Conjunto de registros, vista de tabla
- Dataset ráster, capa ráster
- Archivo
- Doble, largo
- Cadena de caracteres (texto)
- Date
- Unidad lineal
- Campo
Campo
Nota:
Para usar el tipo de datos de campo, necesita ArcGIS Pro 2.3 o versiones posteriores y ArcGIS Enterprise 10.7 o versiones posteriores. No se admite ningún parámetro de campo con valores múltiples.
Creación
En el caso de herramientas con un parámetro de campo de entrada, asegúrese de que el parámetro depende de otro parámetro con un tipo de datos de capa de entidades. Tan solo se admite el tipo de datos de entrada de la capa de entidades. Para establecer la dependencia de un parámetro, consulte Dependencia.
Ejecución
Cuando ejecute la herramienta antes de publicar, 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.
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 ni tampoco Map Viewer Classic en Portal for ArcGIS.
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 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 se pueden definir en la herramienta como derivados o requeridos y se limitan a los siguientes:
- Clase de entidad
- Tabla
- Dataset ráster
- Archivo
- Doble, largo
- Cadena de caracteres (texto)
- Date
- Unidad lineal
Todos los tipos de datos de salida anteriores admiten valores múltiples.
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.