Esta publicación trata sobre aprovechar ArcGIS Enterprise 10.8.1 con la extensión ArcGIS Data Interoperability para compartir herramientas web Spatial ETL dentro de su organización. El aspecto 'avanzado' es que moveremos datos usando una web connection a una web platform habilitada por un FME package, además añadiremos un paso de notificación con webhook por diversión.<\/P>
<\/P>
En mi taller técnico bajo demanda para UC 2020<\/A> demostré cómo crear una herramienta web que realiza una conversión de formato mediante servicio web, un caso clásico de uso para Data Interoperability combinado con el poder de compartir de ArcGIS Enterprise. Sin embargo, Data Interoperability ha evolucionado de ser una fundición de formatos a ser una solución genérica para integración sin código a través de la web, así que en esta publicación mostraré cómo construir una herramienta web que lleva datos no nativos hacia una web platform. Estoy leyendo datos de evento XY de tabla de Microsoft Access y escribiendo en features alojados en ArcGIS Online, pero lea entre líneas y entienda que los datos podrían ir a cualquier plataforma cloud o aplicación con igual facilidad. En cierto modo, mover datos a la web es un mejor ajuste para las herramientas Spatial ETL ya que los lectores y escritores FME trabajan con contenedores o espacios de trabajo, por ejemplo una geodatabase, que no es un parámetro válido de salida de servicio de geoprocesamiento que pueda ser devuelto a un cliente. Se puede hacer, por ejemplo comprimiendo salidas de geodatabase en archivos zip, pero si tiene una web platform disponible, úsela, los datos son más útiles en la web que como archivos locales.<\/P>
<\/P>
Las herramientas web son un nuevo nombre para servicios de geoprocesamiento. El flujo original para publicar servicios de geoprocesamiento usando un elemento histórico y una conexión administrativa a un servidor independiente todavía está disponible en ArcGIS Pro 2.6, pero mostraré el nuevo paradigma de compartir una herramienta web a un portal. Usted comparte una herramienta Spatial ETL como herramienta web desde un elemento histórico igual que cualquier otra herramienta pero con dos consideraciones especiales:<\/P>
<\/P>
- El espacio de trabajo FME fuente del Spatial ETL debe estar embebido, y no externo a la herramienta<\/LI>
- Los parámetros de entrada deben definirse como tipos simples como Filename (Existing), Texto o Elección<\/LI>
<\/UL>
<\/P>
La primera condición ayuda con el empaquetado de la herramienta al momento de publicación, la segunda ayuda a mantener el comportamiento final del parámetro simple. Puede que tenga que refactorizar su herramienta ETL al momento de autoría para lograr estas simplificaciones. Por ejemplo aquí muestro versiones antes y después de un parámetro de entrada Microsoft Access. La configuración predeterminada permite seleccionar múltiples archivos con una gran variedad de extensiones, mi comportamiento deseado es un solo archivo con solo extensiones .mdb y .accdb.<\/P>
<\/P>
Parámetro predeterminado del lector Access Database<\/STRONG><\/P>
<\/P>
<\/P>
Parámetro modificado del lector Access Database<\/STRONG><\/P>
<\/P>
<\/P>
<\/P>
Conceptual y gráficamente mi herramienta ETL es simple. Mi escenario es que trabajo para Fako Mining, quienes hacen planificación de perforaciones con una app Access y registran ubicaciones de perforación como latitud y longitud en una tabla. Haga clic para expandir la captura de pantalla abajo, o edite la herramienta extraída del adjunto del blog. El flujo de datos es:<\/P>
<\/P>
Leer una tabla de base de datos Access que tiene campos XY<\/LI>
Escribir (o reemplazar) una capa feature point alojada en ArcGIS Online<\/LI>
Disparar un webhook que notifica a un canal Microsoft Teams que los nuevos datos están disponibles<\/LI>
<\/UL>
<\/P>
Hay tres marcadores en el espacio de trabajo, en el azul se elimina cualquier servicio feature existente (estoy creando servicios nombrados según la fecha del procesamiento), en el verde se leen los datos Access y se convierten a una clase feature point en una geodatabase comprimida en archivo zip, y en el marrón se publica la geodatabase comprimida y se comparte a un grupo y finalmente se envía el webhook. El concepto es que los miembros Online son miembros de un canal Teams y serán notificados cuando los datos estén disponibles. Mientras inspecciona el espacio de trabajo piense cuánto código tomaría si lo programara...<\/P>
<\/P>
<\/P>
<\/P>
La función clave aquí es el transformador ArcGISOnlineConnector que hace el trabajo de publicar y compartir la geodatabase comprimida en archivo zip. Es una descarga del FME Hub y necesita ser aprovisionada en el servidor, además usa una web connection que también debe ser aprovisionada en el servidor.<\/P>
<\/P>
Primero, configure su servidor. Instale y licencie ArcGIS Data Interoperability for Server, asegúrese que su servidor esté federado a su portal, genere e importe certificados para portal y servidor y demás. No instale ArcGIS Data Interoperability for Pro en su servidor, obtendrá fallos de licencia y herramientas.<\/P>
<\/P>
Una vez tenga instalado Data Interoperability, inicie sesión en el servidor como usuario local ArcGIS Service (por defecto llamado 'arcgis') y confirme que puede abrir la aplicación Workbench en esta ruta:<\/P>
<\/P>
C:\\Program Files\\ESRI\\Data Interoperability\\Data Interoperability AO11\\fmeworkbench.exe<\/STRONG><\/P>
<\/P>
Mientras está conectado al servidor como arcgis, cree un recurso compartido con la ruta abajo y dé control total al usuario dominio (presumiblemente usted) quien publicará la herramienta web y posee la web connection usada en ArcGISOnlineConnector.<\/P>
<\/P>
\\\\<machinename>\\Users\\arcgis\\AppData\\Roaming\\Safe Software\\FME<\/STRONG><\/P>
<\/P>
Desde la máquina autora y como autor publicador, abra el recurso compartido. Así se ve en mi laptop:<\/P>
<\/P>
<\/P>
<\/P>
No importa si los archivos en su recurso compartido son diferentes a los míos, pronto se alinearán.<\/P>
<\/P>
Ahora vamos a aprovisionar el FME Package para ArcGISOnlineConnector y la web connection usada por él al servidor. Descargue la versión actual del paquete a la carpeta compartida. Aún desde la máquina autora, abra Workbench y luego el diálogo FME Tools vista Default Paths. Note (anótelo) el directorio perfil para Data Path, es la carpeta donde se almacenan las conexiones web. Lo cambiará temporalmente después.<\/P>
<\/P>

Método para compartir conexiones web y base de datos es que el propietario copia los archivos fme_connections.data y fme_publicKey.jceks desde el Data Patha una carpeta compartida (en nuestro caso la carpeta compartida arriba mencionada, que también es la ubicación predeterminada donde el usuario'arcgis') almacenará conexiones web), redirige elData Path a usar esta nueva ubicación, abre la vistaWeb Connections dentroFME Tools y selecciona las conexiones web para hacerlas públicas. Después revierte elData Path a su valor predeterminado original para el usuario autor. El usuario del servidorarcgis debe tener acceso escritura a estos datos copiados. Si su servidor no está dentro de su red puede ser más fácil usar metodología exportar/importar para compartir credenciales.
Tools>Web Connections<\/STRONG> ve la conexión web a ArcGIS Online. Crea un espacio de trabajo de prueba que haga una conexión web y use un ArcGISOnlineConnector para listar el contenido de una carpeta de contenidos - la descarga del blog tiene un ejemplo <STRONG>TestWebConnection.fmw<\/STRONG>. ¡Si todo funciona, el servidor está listo para la acción!<\/P>
<P> <\/P>
<P>Ejecuta tu herramienta Spatial ETL como una herramienta para que se cree un elemento de historial. Luego haz clic derecho en el elemento de historial y compártelo como una herramienta web. Aquí está mi experiencia:<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-8" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503874_pastedImage_6.png" border="0" \/><\/P>
<P> <\/P>
<P>Permite cargas, hazlo asincrónico, establece el nivel de mensaje <STRONG>Info<\/STRONG>, esto mostrará mensajes de procesamiento del espacio de trabajo.<\/P>
<P> <\/P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="image-9 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503875_pastedImage_7.png" border="0" \/><\/P>
<P> <\/P>
<P>No olvides editar el(los) parámetro(s) de la herramienta - haz clic en el icono del lápiz. Puede que tengas que hacer esto dos veces para que se "pegue".</P>
<P> </P>
<P><IMG style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-10" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503876_pastedImage_8.png" border="0" \/></P>
<p> </p>
<p>>Se analizará con una advertencia, esto es normal para las herramientas Spatial ETL.</p>
<p> </p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" class="image-11 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503878_pastedImage_9.png" border="0" \/></p>
<p> </p>
<p>>Después de publicar la herramienta web, abre el panel Catálogo en los contenidos del portal y ejecuta tu herramienta. La mía lanza una advertencia relacionada con el manejo de algún sistema de coordenadas, pero me quedo con la victoria. Por diseño no hay entidades mostrando como salida ya que no hay escritor en el espacio de trabajo, mis datos fueron a ArcGIS Online gracias al ArcGISOnlineConnector. El registro muestra que el procesamiento intermedio funcionó como se esperaba.</p>
<p> </p>
<p>><img style="display: block; margin-left: auto; margin-right: auto;" class="image-12 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503960_pastedImage_1.png" border="0" \/></p>
<p> </p>
<p>><STRONG>Teams</STRONG> me muestra que el webhook se activó, que es la última parte del procesamiento de la herramienta web, y me da una URL de servicio así que <EM>algo</EM> está ahí.... Echa un vistazo a lo que hay en el transformador <STRONG>HTTPCaller</STRONG> para ver cómo puse una imagen en la carga útil del webhook (es un elemento de imagen público en Online).</p>
<p> </p>
<p>><img style="display: block; margin-left: auto; margin-right: auto;" class="j-img-centered jive-image image-14" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503962_pastedImage_3.png" border="0" \/></p>
<p> </p>
<p>>Bingo, ¡mis datos se cargan en mi mapa!</p>
<p> </p>
<p>><img style="display: block; margin-left: auto; margin-right: auto;" class="image-13 j-img-centered jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/503961_pastedImage_2.png" border="0" \/></p>
<p> </p>
<p>>Así que ese es el viaje completo, tengo una herramienta web que cualquiera en mi organización puede usar para publicar capas de entidades alojadas desde una tabla de base de datos Access, con el toque adicional de notificaciones automatizadas.</p>