Verificar la lógica de la encuesta - Avanzado
From LimeSurvey Manual
Generales
Una opción importante que le ayuda a crear y mantener fácilmente encuestas complejas es Verificar la lógica de la encuesta.
Durante el desarrollo y prueba de la encuesta, y antes de activarla, es muy importante validar la lógica de la encuesta. Esto es especialmente cierto cuando utiliza ecuaciones complejas de relevancia, adaptación y validación; debe asegurarse de que nada se rompa cuando ejecute la encuesta.
Esta función le permite validar rápidamente la precisión de su encuesta, grupo(s) y pregunta(s). Se puede acceder a él desde las opciones del menú de la barra superior ubicadas en la configuración relacionada con la encuesta. Está disponible a través del menú Herramientas:
Como puede observar arriba, puede ejecutar esta opción cuatro veces, para cada idioma utilizado en una encuesta.
Descripción
La opción Verificar lógica de la encuesta muestra todo lo que especificó para cada pregunta y grupo (por ejemplo, nombre, texto, ayuda, condiciones/relevancia, reglas de validación, valores predeterminados, subpreguntas, respuestas) en un conveniente formato tabular. Resalta los errores y le permite hacer clic en las ID de preguntas y grupos (o variables utilizadas dentro de las ecuaciones) para abrir nuevas pestañas del navegador y editar esas preguntas o grupos. Esto facilita editar rápidamente cualquier error y actualizar la página de verificación lógica para confirmar la precisión de la encuesta antes de activarla.
La pantalla también está diseñada para que sea legible por los investigadores y patrocinadores del estudio, de modo que puedan validar la precisión del diseño y la lógica de la encuesta. Al verificar la lógica de la encuesta, se actualiza el caché de todas las expresiones utilizadas dentro de una encuesta activa.
Incluye las siguientes columnas:
- #: muestra el recuento de secuencias de grupos y preguntas, comenzando desde 0.
- Nombre [ ID]: muestra el código de pregunta para el grupo/pregunta/subpregunta. Estos códigos se pueden utilizar como variables dentro de expresiones. ID es el ID de la pregunta (QID) o el ID del grupo (GID). Este campo también muestra el tipo de pregunta (por ejemplo, opción múltiple [M])).
- Relevancia [ Validación] (Predeterminado): muestra lo siguiente:
- Relevancia: la ecuación de relevancia resaltada con sintaxis para la pregunta o el grupo. Si siempre es verdadero (para mostrarse en cualquier escenario), el valor será 1.
- Validation - ExpressionScript genera automáticamente la validación ecuación en función de los atributos de la pregunta seleccionada (por ejemplo, número mínimo/máximo de respuestas, valores mínimo/máximo/suma igual, valores individuales mínimo/máximo o validación de expresión regular). Esta sección muestra la ecuación de validación generada para que pueda detectar si hay algún error (como variables no definidas).
- La validación a nivel de pregunta muestra la ecuación necesaria para verificar los atributos de la pregunta descritos anteriormente.
- **La validación a nivel de subpregunta muestra la ecuación necesaria para implementar array_filter, array_filter_exclude y exclusive_option
- Predeterminado - si la pregunta tiene un valor predeterminado, se muestra aquí, con la sintaxis resaltada (ya que el valor predeterminado podría ser una expresión).
- Texto [ Ayuda] (Consejo): muestra lo siguiente:
- Texto: el texto del grupo, pregunta, subpregunta o respuesta. Su sintaxis está resaltada para mostrar cualquier adaptación incrustado, lo que le permite verificar que ha declarado todas las variables que planea usar en la adaptación.
- Ayuda : muestra el texto de ayuda para la pregunta, también resaltado con sintaxis.
- Consejo: muestra el consejo de validación generado internamente, según los atributos de la pregunta. Este mismo consejo se utiliza en todos los estilos de encuesta, además de en las pantallas imprimibles de encuesta y entrada de datos.
- Atributos de la pregunta: muestra una tabla de todos los atributos relevantes para esta pregunta. Los atributos que podrían ser ecuaciones están resaltados en sintaxis para que pueda validar su precisión.
Las filas están codificadas por colores de la siguiente manera:
- Grupos - se muestran con un fondo gris claro
- Preguntas - se muestran con un fondo verde claro
- ' Subpreguntas' - se muestran con un fondo amarillo pálido
- Respuestas' - se muestran con un fondo blanco liso
Las respuestas tienen un atributo adicional en la columna Relevancia:
- Valor: este es el valor interno predeterminado utilizado en los cálculos. Si está utilizando Evaluaciones, este será el valor de la evaluación. De lo contrario, será el mismo que el nombre de la respuesta.
Uso
En la parte superior de la página, hay un mensaje de resumen. Si todo está bien, dirá "No se detectaron errores de sintaxis en esta encuesta", o "Este grupo" o "Esta pregunta", "por sí sola, no contiene ningún error de sintaxis". Si ocurre lo contrario, dirá "X preguntas tienen errores de sintaxis que deben corregirse".
Cada pregunta que tiene errores de sintaxis obtiene el fondo de su columna más a la izquierda (es decir, #) codificada en color rojo. Además, se mostrará una advertencia que indica el número mínimo de errores de una pregunta debajo de la columna Nombre [ID]. Los siguientes errores son comunes:
- Variable no definida - si no ha definido todas sus variables o ha escrito mal array_filter (o diferentes conjuntos de opciones de respuesta para array_filter), algunas de sus preguntas de validación mostrarán errores . Las variables no definidas se muestran en texto rojo, encuadradas con una línea roja.
- Sintaxis incorrecta - a medida que comience a utilizar ecuaciones de relevancia, es posible que utilice demasiados o muy pocos paréntesis. Estos problemas de sintaxis están resaltados y recuadrados en rojo. Si pasa el mouse sobre dicho texto en cuadro rojo, una información sobre herramientas describirá el error.
Colores en la sintaxis de ExpressScript
Las condiciones y ecuaciones están resaltadas sintaxis para determinar más fácilmente lo que estás viendo:
- Verde / Azul claro: ¡una variable que hace referencia a una pregunta anterior en la encuesta
- Azul : ¡Una función
- Gris: ¡Una expresión de cadena
- Marrón: ¡Una expresión TOKEN (datos del participante)
- Negro: Operador
Cosas a verificar:
- Púrpura: Una variable que hace referencia a pregunta más adelante en la encuesta. Por lo general, esto es un error y es necesario verificarlo.
- Marco rojo o rojo: una variable inexistente o una referencia a una pregunta anterior o un error de sintaxis; generalmente es necesario verificarlo.
Variables no definidas
Si se utilizan variables no definidas, el nombre de la variable respectiva estará codificado en color rojo y rodeado por una línea roja. Si pasa el mouse sobre el nombre de la variable, dirá "variable no definida":
}}
Mala sintaxis
La mayoría de los errores relacionados con las expresiones están relacionados con una mala sintaxis. Esto está relacionado con el hecho de que los administradores de encuestas generalmente omiten agregar una llave, hacer uso correcto de los paréntesis o usan expresiones incorrectamente:
Aquí hay muchos buenos ejemplos sobre el uso de resaltado de sintaxis.
JavaScript personalizado incorrecto
Los errores de JavaScript también se resaltarán en la verificación de la lógica de la encuesta:
Acelerar la edición y validación
Todo el texto resaltado con sintaxis tiene información sobre herramientas incrustada, en la que se puede hacer clic:
- Tooltips
- Funciones: al pasar el mouse, podrá ver el propósito y la definición de sintaxis de la función;
- Nombres de variables: Al pasar el mouse, podrá ver la posición (grupo, secuencia de preguntas), el texto de la pregunta y las respuestas permitidas para la pregunta.
- Actions
- Nombres de variables: al hacer clic en el nombre de la variable, se abre una nueva ventana que le permite para editar la pregunta. Esto facilita la navegación y la verificación de la lógica: simplemente siga haciendo clic en los nombres de las variables relevantes o en los criterios de validación de la pregunta para ver de dónde provienen y cómo se utilizan.
Ejemplos
Los siguientes ejemplos están tomados de las Encuestas de muestra de ExpressionScript. Puede encontrar capturas de pantalla de encuestas en ejecución, explicaciones y descargas en esa página.
Índice de masa corporal
Aquí hay capturas de pantalla de este ejemplo.
Esta es la vista de reordenamiento de preguntas del cálculo del índice de masa corporal. Puede ver las ecuaciones de relevancia para el peso, la altura y el IMC en la columna Pregunta:
Para obtener una mejor descripción general de la encuesta, consulte la página de lógica de la encuesta:
Este ejemplo de encuesta también es un buen ejemplo de declaraciones if() anidadas para generar el "estado de peso".
Lógica en cascada
Aquí hay capturas de pantalla de este ejemplo.
Muestra la lógica de validación de subpreguntas que se genera automáticamente cuando usas array_filter y array_filter_exclude. Este ejemplo también muestra cómo se puede sustituir el valor personalizado "Otro" (la respuesta para Q02_other es Q01_other).
Q05 en este ejemplo muestra el uso simultáneo de array_filter y array_filter_exclude en Q01 y Q02, respectivamente. Este ejemplo demuestra las capacidades de array_filter en cascada. Tenga en cuenta que una de las razones principales para mostrar los criterios de validación del nivel de pregunta y subpregunta es ayudar a garantizar que no haya cometido ningún error tipográfico al especificar los nombres de las variables array_filter o array_filter_exclude (o en caso de que utilice nombres de variables diferentes para su lista de subpreguntas filtradas). Si tiene tales errores tipográficos, todos los nombres de variables no válidos aparecerán en rojo, lo que indica que no están definidos, lo que le permitirá solucionar el problema rápidamente.
Relevancia dinámica
Este ejemplo demuestra una lógica de relevancia dinámica en cascada para controlar la visualización de la visibilidad de las preguntas. Puedes descargar este ejemplo aquí.
Tenga en cuenta también que las preguntas se muestran solo si se cumplen ciertos criterios de validación. Por ejemplo, si una persona afirma que tiene 2 hijos, el encuestado debe completar ciertas preguntas (niño1 y niño2).
Relevancia a nivel de grupo
Este ejemplo muestra cómo aparece la relevancia a nivel de grupo en la verificación lógica. A continuación se muestran capturas de pantalla del ejemplo que se describe a continuación.
Como puede ver, la ecuación de relevancia a nivel de grupo (cohabs > 1 && p1_rel != "") aparece en la fila gris Persona 2 para G-2.
También notarás que todas las preguntas son obligatorias. Sin embargo, si el grupo es irrelevante, también lo son todas sus preguntas. Como resultado, esas preguntas sólo son verdaderamente obligatorias si el grupo es relevante.
También puede observar que ciertas preguntas se muestran solo si la respuesta a la pregunta anterior no está vacía. Puede ver a continuación que si no se completa p2_sex, p2_name no se mostrará, aunque sea una pregunta obligatoria. La pregunta obligatoria p2_age tampoco se mostrará si no se completa p2_name. Estas preguntas pueden considerarse "condicionalmente obligatorias".
Además, tenga en cuenta que los mensajes consejos también se crean automáticamente para usted. Están organizados por rango de valores (mín./máx.), rango de valores de suma (mín./máx./igual), número de respuestas (mín./máx.), etc. (depende del tipo de pregunta utilizada y los atributos activos). A veces desea validar un rango de respuestas pero no desea mostrar al usuario lo que podrían parecer consejos de validación tontos. En tales casos, puede utilizar la opción de pregunta hide_tip (como en este caso, para evitar decirle al usuario que la edad debe estar entre 0 y 115 a menos que intente ingresar un valor incorrecto; consulte p2_age ).
Coma como separador de base (decimal)
Aunque LimeSurvey admite totalmente el uso de coma como separador de base (decimal) en tiempo de ejecución, aún debe usar un decimal como separador de base en tiempo de diseño (por ejemplo, al especificar valores mínimos/máximos en atributos de preguntas avanzadas). El ejemplo de trabajo puede ser que se encuentra aquí.
Además, recuerde que la lógica de validación se crea automáticamente a partir de los atributos de pregunta habilitados. Las ecuaciones pueden parecer abrumadoras, pero no es necesario que te preocupes por ellas.