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]

Volver a la búsqueda anterior