Aquí encontrará información relativa a la sesión Creando formularios avanzados con Survey123 Connect: La grabación, ejercicios paso a paso y una sección de preguntas frecuentes, con sus respuestas.
Recursos:
¿Qué se va a tratar en esta sesión?
Esta sesión está centrada en Survey123 Connect. Survey123 Connect es una aplicación de escritorio para el diseño y configuración de formularios Survey123 avanzados. Se introducirá esta herramienta, y también la especificación XLSForm.
Se trata de una sesión técnica, aunque cualquier persona que haya seguido las sesiones anteriores de esta serie no debería tener problema ninguno para seguirla. Para aquellos que ya están familiarizados con la herramienta Survey123 Connect y XLSForm, la sesión puede servir como un refresco de conceptos así como una oportunidad para aprender algunas capacidades de reciente introducción.
¿Dónde está la página de registro para atender ?
Si usted ya se ha registrado en otras sesiones, no es necsario que se registre de nuevo. Si quiere compartir el vinculo con otras personas para registrarse, aqui lo tiene:
https://esri.zoom.us/webinar/register/WN_l29X9mi_QISeeijXo7Caqg
¿Cómo me puedo preparar para la sesión?
Es importante que usted este familiarizado con el contenido de las sesiones anteriores. Puede encontrar las grabaciones y ejercicios aquí:
También es recomendable que instale la última versión de:
- La aplicación móvil ArcGIS Survey123 en su teléfono o tableta. Disponible en Apple y Android.
- La aplicación desktop Survey123 Connect, disponible en Microsoft Windows y Mac
¿Cuándo estará disponible la grabación?
El enlace a la grabación estará disponible aquí el 6 de marzo.
Preguntas frecuentes (y sus respuestas)
El listado de preguntas frecuentes se completará una vez finalize el seminario. El listado incuído abajo recoge algunas preguntas que se realizaron en sesiones anteriores.
¿Qué es XLSForm?
XLSForm es una especificación pensada para ayudarle a crear formularios inteligentes utilizando una hoja de cálculo. XLSForm es un estandard ampliamente adoptado y de una gran robustez. Survey123 le permite importar sus documentos XLSForm a ArcGIS a través de la herramienta Survey123 Connect.
¿Qué es Survey123 Connect?
Survey123 Connect es una herramienta de escritorio disponible para Windows y Mac. Con Survey123 Connect usted puede diseñar formularios inteligentes siguiendo la especificación XLSForm y publicarlos a ArcGIS. Survey123 Connect también le permite configurar su formulario con opciones avanzadas no disponibles en el diseñador web de Survey123.
¿Puedo automatizar tareas y crear informes sobre los formularios publicados desde Connect?
Si.
¿Dónde puedo iniciarme en el conocimiento de XLSForm?
Consulte el documento Conceptos básicos de XLSForm en la ayuda de Survey123 como primer paso. También puede ver los video-tutoriales de Survey123 que se han publicado en YouTube.
Cuando intento abrir una sesion en Survey123 Connect con mis credenciales de Gmail me aparece un dialogo como el siguiente ¿Que hago?

El equipo de Survey123 esta investigando el problema. De momento, sigua las instrucciones en este articulo.
¿Puedo editar con Survey123 Connect un formulario inicialmente creado desde el diseñador?
No es recomendable. De hecho, le recomiendo que no lo haga. Es mejor hacer una copia del formulario en Survey123 Connect y publicar uno nuevo.
Si ya poseo un formulario como lo copio para generar otra versión, sin tener que construirlo de nuevo. ¿Como le cambio el nombre a esa copia?
En la galería de Survey123 Connect, expanda el menú de opciones de su formulario y seleccione la opción Guardar como. En ese momento deberá introducir el nombre de su nuevo formulario.
¿Cómo puedo definir el mapa en linea que aparece por defecto en mi formulario?
Hay dos maneras diferentes para hacerlo. Una de las guías paso a paso de esta sesion las describe con detenimiento. Usted puede definir que mapa web se debe mostrar y con que simbologia. También puede definir el nivel de zoom inicial del mapa.
A continuación le describo una de las técnicas, basada en el documento XLSForm.
En la columna body::esri:style puede definir el mapa de una pregunta geopoint, geotrace o geoshape especificando el identificador de su mapa con la propiedad map. Por ejemplo:

Para obtener el identificador de mapa abra su web map con el visor de mapas de ArcGIS. Encontrará el identifidador de mapa en la URL como se muestra a continuación.

¿Cómo puedo configurar el mapa para que aparezca más grande en el formulario?
Utilize el parametro height en la columna body::esri:style como se muestra a continuación.

El valor de la altura se expresa en lineas. Por ejemplo, si introduce height=10, el mapa tendra la altura equivalente a diez lineas de texto en el formulario. Para mas informacion, consulte el tema e ayuda Altura de pregunta.
¿Cómo puedo configurar Survey123 para que capture coordenadas Z de altura?
Primero añada una pregunta de tipo geopoint a su diseño XLForm. En esa misma pregunta, busque la columna bind::esri:fieldType y seleccione la opción esriFieldTypePointZ. Cuando su formulario se publique, el campo SHAPE de la geometría ahora guardara puntos 3D. Si su dispositivo tiene un GPS que retorne la altura, esta se introducirá automáticamente en los puntos que capture.
Si usted quiere extraer el valor de la altura en un atributo, añada una nueva pregunta de tipo decimal y calcule su valor con la siguiente formula:
pulldata("@geopoint", ${location}, "z")
Recuerde que en el segundo parametro tiene que introducir el nombre (name) de su pregunta de tipo geopoint. Si su pregunta se llama lugar, tendra que utilizar ${lugar} en lugar de ${location}.
Si quiere que la pregunta de la altura se calcule, pero que quede oculta, utilize el valor hidden en la columna appearance.
Tambien puede controlar el numero de decimales con la función round(). Por ejemplo, para mostrar solamente un decimal:
round(pulldata("@geopoint", ${location}, "z"),1)
Para mayor claridad, aquí va un ejemplo:

¿Se puede lograr que la pregunta de ubicación tome solamente la ubicación GPS? Es decir, que no permita al usuario marcar la ubicación en el mapa.
Si. Simplemente marque la pregunta geopoint en el documento XLSForm como readonly.
¿Cómo puedo configurar un formulario con varios mapas?
Antes de responder la pregunta, es importante comprender como ArcGIS almacena información geográfica. En ArcGIS, sus datos quedan almacenados en una capa de entidades; algo así como una tabla en una base de datos. Estas capas de entidades (tablas), pueden tener un máximo de una columna donde se almacene geometría. La capa de entidades tiene que ser configurada para almacenar puntos, líneas o polígonos, pero no una combinación de estas.
Survey123 utiliza el modelo de capas de entidades de ArcGIS. De esta manera, si usted desea capturar dos o más geometrías en un mismo formulario, debe considerar las limitaciones del modelo de ArcGIS.
Un caso práctico podría ser como sigue: Un formulario donde el usuario debe indicar la ubicación de su residencia, así como la ubicación de un incidente que, podría coincidir o no con la residencia. En este caso, podríamos hacer lo siguiente:
En este caso, la ubicación de la vivienda se almacena en el campo de geometría de la capa de entidades, mientras que la ubicación del incidente queda almacenada en campos numéricos.
Otro caso podría ser el siguiente: Un inspector marca la ubicación de la entrada a una propiedad agraria, y después documenta las ubicaciones donde se han encontrado problemas de erosión y malas prácticas. En este caso, un diseño como el que sigue podría ser más adecuado:

La entrada de la propiedad queda guardada en la capa de entidades principal de la propiedad y los problemas encontrados quedan guardados en una tabla separada y relacionada con la primera. En este caso, no hay ningún problema utilizando dos preguntas geopoint y almacenando la geometría para ambas preguntas.
En este caso, la ubicacion de la vivienda se alamcena en el campo de geometria de la capa de entidades, mientras que la ubicacion del incidente queda almacenada en campos numericos.
¿Dónde se coloca en XLSform que el dato es obligatorio?
Utilice la columna required. Puede marcarla como yes, o también puede escribir una expresión XLSForm. Si la expresión evalúa positivamente (true), entonces la pregunta será obligatoria. Si la expresión evalúa a falso (false), la pregunta no será obligatoria.
¿Ya es posible hacer readonly una pregunta en base a cálculo?
Si.
¿Cómo puedo forzar al usuario a introducir un valor de texto siguiendo un patrón determinado?
Esto se realiza definiendo una máscara de entrada (input mask). Las máscaras de entrada proporcionan un formato definido para la entrada de datos mediante el uso de caracteres y símbolos. Cuando se aplica una máscara de entrada a una pregunta, todas las respuestas deben seguir el patrón definido por la máscara de entrada. Las máscaras se establecen en la columna bind::esri:inputMask. Aquí hay algunos ejemplos de máscaras de entrada:
- 999: Requiere la entrada de tres valores numéricos
- B9.99;- Representa un valor de pH. el número solo puede empezar con un 0 o un 1 y solo puede incluir dos posiciones decimales. Se usa un guion para representar cada carácter que se debe completar.
- 999-99-9999 Fuerza al usuario a introducir 3 números seguidos de un guion, mas dos números, otro guion y 4 números más.
Para más información consulte este tema de la ayuda. Las mascaras de entrada solo esta soportadas en la aplicación móvil de Survey123, pero próximamente se añadirá soporte también en la aplicación web.
Las máscaras de entrada realizan la validación de manera automática cuando el usuario entra los valores. También puede utilizar la columna constraint para validar datos antes de que se envie el formulario. Por ejemplo, utilizando una expresión regular. Las expresiones regulares ofrecen un mayor nivel de flexibilidad. A continuacion se muestra un ejemplo para obligar al usuario a introducir un valor de texto donde todos los caracteres vayan en mayúscula:

La ayuda para comprender como utilizar expresiones regulares se encuentra aquí.
¿Si tengo unas coordenadas previas y deseo que estos puntos se vean el el mapa de la encuesta por que son puntos que se deben visitar, como los cargo al mapa base y que una vez se van visitando se marquen en otro color una vez se elege ese punto como visitado??
Esto lo veremos en la última sesión (6/6) de esta serie.
Es posible tener dos listas CSV que dependan una de otra; es decir, ¿que cuando el usuario seleccione un valor de la primera lista se se filtren los valores que se muestran de la segunda lista?
Necesito configurar mi formulario con una lista que tiene más de 10.000 elementos ¿Tiene alguna recomendación?
Suvey123 puede trabar con listas con miles de elementos si se configura apropiadamente. Comúnmente, las listas en Survey123 Connect se definen a través de la hoja choices dentro del diseño XLSForm y utilizando los tipos de pregunta select_one o select_multiple. Cuando se trabaja con listas de tamaño mediano y grande (más de 300 elementos), es recomendable guardar las listas en un archivo .csv y utilizar los tipos de pregunta select_one_from_file y select_multiple_from_file. De esta manera, Survey123 podrá trabajar cómodamente con listas de tamaños superiores a 50.000 elementos. En el paquete de ejercicios de esta sesión encontrará un ejercicio con instrucciones paso a paso al respecto.
Es posible tener dos listas CSV que dependan una de otra; es decir, ¿que cuando el usuario seleccione un valor de la primera lista se filtren los valores que se muestran de la segunda lista?
Si. Consulte el ejercicio Cascading Selects que se incluye en el paquete de guías paso a paso para esta sesión.
¿Puedo definir los elementos de una lista a través de una consulta a una base de datos?
No se puede realizar la consulta directamente a la base de datos, pero estamos trabajando para que pueda hacer la consulta a través de una capa de entidades publicada con ArcGIS Enterprise. Puede consultar la documentación en nuestro sitio web Survey123 Early Adopter.
¿Se pueden enlazar listas? Es decir, ¿que una vez seleccione un elemento de una lista este despliegue otra lista condicionada por la primera, y así hasta cinco niveles?
Si. Cinco niveles y tantos como quieras. Esto se denomina cascading select. Consulte la guía paso a paso cascading select que se ofrece en el paquete de ejercicios de esta sesión.
¿Cómo puedo añadir una single choice grid en el XLSForm? No veo esa opción en los tipos de pregunta en el XLSForm?
Primero cree un grupo para la colección de preguntas select_one que comparten la lista. Después utilice el valor table-list para la columna appearance,

¿Cómo puedo crear una opción “Otro” para que el usuario introduzca un valor que no existe en la lista?
Es relativamente sencillo. Primero añada una opción en la lista que diga “Otro” y después cree una pregunta de texto para que el usuario pueda introducir la categoría nueva. Utilizando una regla de visibilidad, puede mostrar la pregunta “Otro” solo cuando sea necesario. Por ejemplo:

La técnica que se ha descrito creará dos campos en su capa de entidades: Uno para los idiomas de la lista, y otro campo que nunca tendrá valores excepto cuando el usuario selecciona la opción Otro en la lista. Si usted quiere almacenar todos los valores en un campo único, puede optar por el diseño que se muestra a continuación.

Observe que en este caso, se uttiliza el valor null en la columna body::esri:esriFieldype para que los valores de las preguntas listaidioma y otro_idioma no se almacenen en la base de datos. En su lugar, inroducimos una tercera pregunta oculta que calculamos con la funcion coalesce(). La función coalesce requiere dos parámetros y retorna el valor del primer parámetro que no esté vacío. Este es el valor que realmente almacenaremos en la capa de entidades.
Conforme a la especificación XLSForm, existe una tercera opción que permite utilizar el tipo de pregunta select_one lista or_other. Esta opción añade automáticamente la opción Other a su lista y también muestra una entrada de texto cuando el usuario seleccione Other. El problema de esta opción es que no hay manera de traducirla del inglés.
¿Cómo puedo añadir imágenes a una lista?
Si quiere acompañar a los elementos de una lista con una pequeña imagen, lo puede hacer así:
- Copie sus imágenes en formato .png o .jpg en la carpeta media
- En la hoja choices, indique el nombre de la imagen que quiere mostrar utilizando la columna image. Asegúrese de incluir la extensión del archivo y que el nombre del archivo coincida exactamente con el que tiene en la carpeta media.
Es recomendable que usted mantenga el tamano de estas imagenes pequeno para no sobrecargar el tamano del formulario.
Es recomendable que usted mantenga el tamaño de estas imágenes pequeño para no sobrecargar el tamaño del formulario. Haga pruebas en su dispositivo hasta que encuentre un buen equilibrio entre calidad y tamaño.
¿Se puede colocar una imagen ilustrativa dentro del formulario para facilitar que los usuarios elijan una opción?
Si. Esta es una opción avanzada que solo funciona en la aplicación móvil, pero se puede. Survey123 le permite representar una lista de elementos utilizando un archivo .svg interactivo. Cuando usted hace clic en el diagrama o foto SVG, el elemento o elementos correspondientes en su lista quedan seleccionados. A esto lo denominamos listas pictóricas y se soportan a partir del valor image-map de la columna appearance. Aquí tiene un ejemplo donde utilizamos una imagen del cuerpo humano para habilitar selecciones sobre la lista.

La creación del archivo .svg es el aspecto mas complicado. Consulte este articulo para mas información. También puede ver ejemplos en el formulario de muestra llamado Image-map:
- En Survey123 Connect, haga clic en Nueva Encuesta
- Seleccione Muestras y después seleccione el formulario Image-map
- Cree el formulario y explore el ejemplo.
Cuando se usan listas de selección múltiple, el resultado se guarda en un solo campo como una lista de texto separada por comas. ¿cómo hago para guardar la selección de una manera que pueda consultar más cómodamente?
Una posibilidad es crear un campo para cada una de las opciones en su lista, y almacenar un valor 0 o 1 para expresar si el valor ha sido seleccionado. Utilizando la columna calculation usted puede rellenar el valor. Aqui va un ejemplo:

Aqui encontrara una discusion mas detallada.
Una vez publicada la encuesta y al editarla y agregar una nueva alternativa en la página de choices, al volver a publicarla no me reconoce en el feature layer esa nueva alternativa creada. ¿Como puedo solucionar este problema?
Survey123 Connect no actualiza los dominios de su geodatabase cuando hace modificaciones en la lista. Estamos valorando opciones para resolver esto en algún momento.
Quiero usar la función EXIF que extrae datos de coordenadas de una foto desde el formulario, pero al momento de usar una foto ya existente en mi dispositivo móvil Android, no me calcula las coordenadas, mientras que al tomar la foto directamente desde la aplicación Survey123 si me calcula las coordenadas con EXIF. ¿A qué se debe esto??
Esto se debe a que su dispositivo móvil no es capaz de escribir las coordenadas de ubicación en la foto. La aplicación Survey123 sí puede. Si usted desea asegurar que esta información este disponible, puede configurar su formulario para evitar que los usuarios puedan seleccionar fotos desde su dispositivo. Para ello utilice la columna body::esri:style como se muestra:

Mas detalles sobre como trabajar con datos EXIF en este artículo.
¿Cabría la posibilidad de numerar sucesivamente un campo automáticamente a medida que se van rellenando los formularios?
Si, con ciertas limitaciones que se describen en este artículo.
¿Es posible capturar información acerca de la persona completando el formulario?
Se pueden capturar ciertos aspectos. Si el usuario está logeado en la aplicación, Survey123 siempre almacena de manera automática el nombre de usuario (username) en un campo llamado Creator. Usted también puede utilizar la función pulldata("@property", 'username') para extraer dinámicamente el usuario que esta logeado en la aplicación. Esta función la puede utilizar para calcular un campo o de cualquier otra manera, para ocultar preguntas, por ejemplo.

Si la persona no ha introducido sus credenciales, no es posible extraer ningún tipo de información sobre la persona.
¿Puede haber más de un valor en la columna appearance?
Si. Separe los valores con un espacio.
¿Como hacer para que no salgan tantos decimales cuando metes una fórmula en Connect?
Utilice la función round(). Por ejemplo, si quiere solo dos decimales:
round(${valornumerico},2)
¿Como hago para repetir una sesión de preguntas de acuerdo con el número de personas en la vivienda?
Esto se hace utilizando la columna repeat_count, como se muestra a continuación.

No veo la opción Scripts en Survey123 ¿A qué se debe?
Instale la última versión de Survey123 Connect.
¿Tengo que crear un nuevo archivo .js por cada función?
No. Puede incluir más de una función en su archivo .js
¿Dónde puedo aprender más sobre las funciones JavaScript?
Aquí hay un blog, y esta es la documentación oficial.
¿Como puedo configurar la pestaña Scripts de Survey123 Connect para que utilice un editor determinado?
Survey123 Connect le permite abrir y editar sus archivos JavaScript desde el entorno de desarrollo (IDE) que usted tenga configurado en su computador para trabajar con archivos en formato .js. Por lo tanto, usted no debe configurar Survey123 Connect, sino su sistema operativo. En la siguiente imagen le muestro como puede cambiar el editor de archivos JavaScript en un Windows. Simplemente haga clic con el boton derecho de su raton en un archivo .js y configure la opcion Abrir con:

¿Hay la posibilidad de añadir un icono de información adicional / aclaración para mostrar aclaraciones al usuario antes de responder a la pregunta?
Si. Utilice la columna guidance_hint, una vez haya añadido contenido también a la columna hint. Mas detalles aquí.
¿Como le dicen en Colombia a las chuletas de examen españolas?
Soplete. Machete.

¿Qué pasa con los cambios de zona horaria al configurar la fecha con la función now()? Me pasa acá en chile que la diferencia horaria varia de +3 a +4, esto hace que la hora ingresada queden desfasadas.
La función now() captura el tiempo del dispositivo y la guarda en ArcGIS en formato UTC. Cuando usted consulta los datos, estos se ajustan automáticamente a su horario local. Por ejemplo, supongamos que una persona captura datos a las 5 de la tarde, hora local en Santiago de Chile, y otra persona también captura datos a las 5 de la tarde, hora local, en Buenos Aires. Dado que hay una gran diferencia horario entre Santiago y Buenos Aires, cuando usted consulte los datos vera esa diferencia horaria reflejada de conforme a su propia hora local.
Si usted no desea estos ajustes, entonces debería guardar la fecha como texto. Esto lo puede hacer con una expresión como la siguiente:
format-date(${mifecha},'%H:%M')
Puede utilizar la expresión en la columna calculation de una pregunta oculta de tipo texto, por ejemplo. También puede encontrar más información sobre fechas y tiempo aquí.
¿Se pueden insertar preguntas para leer código QR?
Si. Puede utilizar el tipo de pregunta barcode, que esta soportado en la apliacion movil Survey123. Lea este articulo para mas detalles.
¿Cómo configuro mi formulario para calcular automáticamente la ciudad y país donde queda la ubicación del usuario?
Esto se puede hacer con la herramienta de geo-codificación inversa, a través de un servicio web. Este articulo lo describe con detalle.
¿Consume créditos de ArcGIS Online la geo-codificación inversa?
Si, si utiliza el servicio de geocodificacion de Esri, pero también puede utilizar el suyo propio si tiene ArcGIS Enterprise.
¿Es posible capturar datos con ArcGIS QuickCapture y Survey123 sobre una misma capa de entidades?
Si. El flujo recomendado es el siguiente:
- Diseñe su formulario con Survey123 primero.
- Publique el formulario.
- Desde el diseñador web de QuickCapture, cree un nuevo proyecto sobre la capa de entidades de su formulario Survey123
¿Como quedo la encuesta de los deportes?

¿Es posible configurar la pantalla de agradecimiento (Thank You screen) de una encuesta en línea con información introducida por el usuario?
Si. Esto se hace con una pregunta de tipo note, como se muestra abajo. Debe darle a la nota, como nombre: generated_note_prompt_submitted. El contenido de la etiqueta se utilizará como contenido en la pantalla de agradecimiento de la encuesta en línea. Observe que puede utilizar notación HTML e introducir referencias a preguntas en su formulario.
