Ruta | Duración | Nivel | Antes de empezar |
🟣 Configurador · Nivel 2 | 75 min | Avanzado |
Las consultas son la herramienta más potente de Mairu y también la que más cuesta al principio. Sirven para una idea muy simple: no volver a pedir un dato que ya está registrado en algún sitio. Con ellas rellenarás campos solos, calcularás indicadores y mostrarás listados dentro de un formulario o un dashboard.
🎯 Al terminar sabrás
Elegir el tipo de consulta adecuado según dónde la vas a usar.
Leer y escribir la estructura de una consulta:
select,from,where,aggregate,order.Crear parámetros para que la consulta dependa de lo que el usuario elige.
Probar una consulta antes de usarla.
Montar un formulario de Masterdata para guardar datos que los maestros no admiten.
🧠 La idea: una pregunta a tus formularios
Una consulta es una pregunta del tipo:
Dame este dato (select) del formulario X (from) de las respuestas que cumplan estas condiciones (where).
{
"select": "ID del campo que quieres",
"from": "ID del formulario",
"where": [ ...condiciones... ],
"aggregate": "average",
"order": { ... }
}
Fíjate en que todo se escribe con IDs. Por eso en la lección 5 insistimos tanto en elegirlos bien.
⚠️ Las consultas leen respuestas de formularios, no los maestros de Configuración. Una consulta de tipo Asset devuelve los Assets seleccionados en un campo de algún formulario, no el listado completo de Assets. Si necesitas datos adicionales de un Producto o un Proveedor, guárdalos en un formulario de Masterdata (lo harás en esta lección).
El tipo depende de dónde la usarás
Tipo | Devuelve | Se usa en |
Dato único | Un solo valor (el primero que encuentra) | Campos de texto corto, texto largo y numérico |
Indicador | Un número calculado ( | Campos numéricos y widget KPI |
Listado | Varias respuestas con los campos que elijas | Selector y Listado de respuestas, widget Listado, Cargar subformulario, Programaciones |
Asset / Producto / Usuario / Entidad | Valores filtrados para un selector | El selector del mismo tipo |
Fichero | Archivos de las respuestas | Componentes Multimedia y Galería |
Al configurar un campo, Mairu solo te ofrece las consultas compatibles con ese tipo de campo.
Valor fijo o parámetro
"value": "NO OK"→ la consulta filtra siempre por ese valor."value": "producto"(nombre de un parámetro) → el valor llega desde un campo del formulario cada vez que se ejecuta. El tipo del parámetro debe coincidir con el del campo que filtra.
🛠️ Práctica guiada
Crea antes una carpeta Envasado en Configuración > Consultas para guardar ahí todas las de esta lección.
Consulta 1 · El peso medio de las pesadas (Indicador)
Calcularás el peso medio de las cinco pesadas de cada control.
Nueva consulta Peso medio del control, tipo Indicador.
Crea un parámetro de tipo Texto llamado
padre.Configúrala así:
{
"select": "peso",
"aggregate": "average",
"from": "pesadas",
"where": [
{
"allConditions": {
"conditions": [
{ "field": "parent_answer_id", "operation": "=", "value": "padre" }
],
"type": "and"
},
"type": "and"
}
]
}
4. En el Control de envasado añade un campo Peso medio (g), numérico, ID peso_medio, deshabilitado. En su configuración elige esta consulta y, como valor del parámetro padre, la opción Id del formulario.
parent_answer_id es el identificador que cada pesada guarda de su control. Así la consulta solo promedia las pesadas de este control.
Consulta 2 · Datos del producto desde un Masterdata (Dato único)
El producto no tiene un atributo de vida útil ni de peso nominal. En lugar de escribirlos a mano, los guardarás una sola vez en un formulario de Masterdata.
Crea el formulario Ficha de producto (ID
ficha_producto) con: Producto (Selector de productos,producto), Peso nominal (g) (peso_nominal) y Vida útil (días) (vida_util). Publícalo solo para Calidad y crea una respuesta para cada producto.Crea la consulta Vida útil del producto, tipo Dato único, con un parámetro de tipo Producto llamado
producto:
{
"select": "vida_util",
"from": "ficha_producto",
"where": [
{
"allConditions": {
"conditions": [
{ "field": "producto", "operation": "=", "value": "producto" }
],
"type": "and"
},
"type": "and"
}
]
}
3.En el Control de envasado, abre el campo vida_util (lección 7), quítale el valor por defecto, asígnale esta consulta y relaciona el parámetro producto con el campo Producto del control.
💡 Una consulta configurada en el propio campo se ejecuta cada vez que se abre la respuesta. Si necesitas que se ejecute justo cuando el usuario cambia el producto, lánzala desde una regla (Cuando producto cambia el valor → ejecutar consulta).
Consulta 3 · Los últimos rechazos de la línea (Listado)
Consulta NO OK por línea, tipo Listado, con un parámetro de tipo Asset llamado
linea. Seleccionacreated_at,lote,producto,motivo_rechazoyaccion_correctoradecontrol_envasado, con las condicioneslinea = lineayresultado = "NO OK", ordenado porcreated_atdescendente ("type": -1).En el Control de envasado añade un Listado de respuestas con esta consulta y su parámetro unido al campo
linea. Así el operario ve los últimos problemas de su línea mientras hace el control.
Probar antes de usar
Antes de enlazar cada consulta, ábrela y usa Testing: elige valores de prueba para los parámetros y pulsa Ejecutar. El resultado aparece en JSON.
Ves… | Significa |
Un resultado vacío | La consulta funciona, pero no hay datos con esos valores de prueba |
Error – Status 500 o similar | Hay un problema en la configuración: un ID que no existe, una estructura mal escrita… |
🔍 Comprueba que funciona
Abre un control con pesadas de 248, 250, 252, 251 y 249 g: el peso medio muestra 250.
Al elegir Conserva 500 g, la vida útil se rellena sola con el valor de su ficha.
En un control de la Línea 1 aparecen los últimos NO OK de la Línea 1, y ninguno de la Línea 2.
⚠️ Errores habituales
Poner el título del campo en vez de su ID. Es la causa más frecuente de errores. Copia los IDs desde la pestaña Campos extra del Form Builder.
El tipo del parámetro no coincide con el del campo. Comparar un Asset con un parámetro de tipo Fecha no funciona.
"La consulta no aparece en el campo." El tipo de consulta no es compatible con ese campo: un selector de usuarios solo admite consultas de tipo Usuario, y los listados de respuestas solo admiten consultas de tipo Listado.
Intentar consultar el maestro de Productos o Assets directamente. Las consultas leen campos de formularios: usa un formulario de Masterdata.
Confundir "vacío" con "error". Un resultado vacío en el Testing no siempre es un fallo: prueba con otros valores.
🏋️ Reto
Calidad quiere ver en el control la tolerancia del producto y que, si el peso medio queda fuera de peso nominal ± tolerancia, el resultado pase a NO OK automáticamente. Necesitarás ampliar la Ficha de producto, una nueva consulta de dato único y una regla. Cuando funcione, revisa: ¿se dispara el email de la lección 9?
📚 Para saber más
Solución de problemas cuando una Consulta no devuelve datos · FAQs Consultas y Listado
➡️ Siguiente lección: Programaciones - el trabajo planificado


