Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
| Doc. Ref. 29064 Título: Interacción en dos partes relacionadas en Hexa 9 Autor: Soltec Última actualización: 09/02/2026#datos #script #proceso #parametrización #comprobacion #interaccion |
Interacciones con recogida y comprobación de datos
El objeto "Interact" permite realizar interacciones con el usuario en el mismo momento en que se ejecutan scripts parametrizados, lo que aporta una mayor flexibilidad y control sobre el flujo de ejecución.
En este ejemplo se muestra cómo se pueden solicitar datos al usuario en varios pasos consecutivos, de manera que cada solicitud depende de la respuesta obtenida en el paso anterior. Esto permite construir flujos de interacción más complejos y guiados, donde cada decisión condiciona la siguiente, facilitando así la recogida de información estructurada y coherente antes de ejecutar las acciones finales.
Sub Main (Criterio, Orden, Opciones)
If Not Interact.Aceptado Then
'Primera ejecución del script o aceptación desvalidada por incoherencia de los datos
Interact.Reinicia "EscogeFamilia", "Ejemplo de interacción con doble introducción de datos" : Interact.Cancelable = True
Interact.NuevoValor "Familia", "Escoje una Familia de Articulos", "Texto", 0, "","Articulo","Familia"
Else
'El usuario ha pulsado el botón aceptar: se vuelve a ejecutar el script
If Interact.Identificador = "EscogeFamilia" Then
'Lo que ha hecho el usuario es escoger una familia, ahora reiniciamos la interacción para que escoja un artículo de esta familia
FamiliaEscogida = Interact.Valor ("Familia")
Interact.Reinicia "EscogeArticulo", "Has escogido la familia " & FamiliaEscogida : Interact.Cancelable = True
Interact.NuevoValor "Articulo", "Escoje un Articulo de esta familia", "Texto", 0, "","Movimiento","Articulo"
Interact.AplicaFiltroAyuda "Articulo", "Familia=" & fpc.sqlt ("" & FamiliaEscogida)
Else
'Lo que ha hecho el usuario es escoger un artículo de la familia que escogió primero,
'ahora simulamos un proceso que es contar y mostrar la cantidad de movimientos que tiene este artículo
ArticuloEscogido = Interact.Valor ("Articulo")
Movimientos = fpc.Vac(BD.Cmp ("Movimiento", "COUNT(Codigo)", "Articulo=" & fpc.sqlt(ArticuloEscogido), false))
Interact.Reinicia "Resultado", "Has escogido el articulo " & ArticuloEscogido & " que se ha movido " & Movimientos & " veces."
End If
End If
End Sub
Desarrollo
El script es un ejemplo de solicitud de datos en tres pasos: primero escoger una familia de artículos, después un artículo de la familia (aplicando un filtro) y, finalmente mostrar la cantidad de movimientos que ha tenido el artículo.
- Recordar que los scripts repiten su ejecución en el caso en que haya una interacción iniciada y pendiente de aceptar o cancelar por parte del usuario.
- La propiedad "Acptado" del objeto Interact indica si el usuario ha introducido datos y pulsado el botón [Aceptar]. En caso de que no, el script inicia los datos de la interación y muestra el formulario de introducción de datos.
- Si el usuario ha introducido datos y pulsado el botón [Aceptar], se ejecuta las segunda parte.
- Si en cualquier solicitud de datos, el usuario pulsa el botón [Cancelar], el script ya no se vuelve a ejecutar y finaliza el proceso específico.
- La inciación de la interacción con un texto introductorio y su posterior reinicio con unos datos solicitados diferentes, permite solictar datos cada vez que se muestra el formulario de introducción de datos con los botones [Aceptar] y [Cancelar]
