Casos de uso - Bproc de tipo Evento para blanquear formulario

1. ¿Qué es un Bproc de tipo Evento?

Los Bproc de tipo evento son procesos diseñados para disparar la ejecución automática de acciones cuando ocurre una actividad específica dentro del sistema.

A diferencia de los de tipo “Viewer”, que se asocian a grillas de datos, los de evento están vinculados directamente a la estructura de los formularios (maestros y transacciones).

Características principales:

  • Ámbito de aplicación: Se asocian a widgets dentro de formularios de tipo maestros (como productos, clientes o depósitos) y a transacciones (como facturas de venta o pedidos).

  • Ejecución automática: Se activan mediante acciones como dar de alta un nuevo registro, modificar datos existentes o eliminarlos.

  • Naturaleza asincrónica: Su ejecución no afecta el tiempo de procesamiento de la operación principal del usuario, permitiendo que múltiples acciones se realicen de forma simultánea en segundo plano.

  • Lógica de negocio: Se utilizan frecuentemente para reglas de autocompletado (por ejemplo, que al seleccionar una moneda se asigne automáticamente una condición de pago específica).

  • Configuración técnica: Generalmente utilizan scripts a partir de la herramienta Guest Code, ya que es el lenguaje empleado para los eventos en esta modalidad.

2. Caso de Uso: Botón para Blanquear Campos

Este caso de uso propone la creación de un comando rápido que permite resetear o limpiar masivamente los datos de un formulario en pantalla.

Funcionamiento técnico

El desarrollo requiere diseñar un componente visual (widget) y un script (utilizando Guest code) que responda al evento de presionar el botón. Al activarse, el script borra el contenido de los campos del formulario, dejando el formulario como si se acabara de crear un registro nuevo.

A. Disponer el widget particularizado

El primer paso consiste en disponer de un componente visual (como un botón) en el formulario correspondiente que servirá como disparador de la acción.

B. Desarrollar la lógica de limpiado del formulario utilizando Guest Code

Ingresamos a la app de Guest code y generamos un nuevo microservicio.

¿Cómo funciona paso a paso?

  1. Recibe y lee los datos (Paso 1): Obtiene el cuerpo de la solicitud (request.get_body()) que envía Finnegans ante un evento y lo transforma de texto/bytes a un objeto JSON (un diccionario de Python). Si el JSON está roto o mal armado, frena y devuelve un error 400.

  2. Valida la estructura (Paso 2): Se asegura de que dentro de los datos exista una sección llamada “widgets” (que es donde Finnegans guarda los campos del formulario: cajas de texto, números, desplegables, etc.). Si no existe, frena con un error 400.

  3. Vacía los campos inteligentemente (Paso 3): El script recorre cada widget y busca la propiedad “value”. Si la encuentra, analiza qué tipo de información tiene y la “limpia” siguiendo estas reglas de equivalencia:

Tipo de Dato Regla de Equivalencia (Limpieza)
Texto (str) Lo convierte en un texto vacío (“”)
Número entero (int) Lo convierte en 0
Número decimal (float) Lo convierte en 0.0
Número decimal (float) Lo cambia a falso (False)
Listas/Tablas (list) Las deja vacías ()
Objetos/Buscadores (dict) Mantiene las propiedades pero limpia sus datos dejándolos en nulo (ej. {“id”: None, “caption”: None})
  1. Devuelve el formulario limpio (Paso 4): Retorna una respuesta exitosa (HTTP 200) enviando de vuelta todo el JSON original, pero con todos los campos reseteados a sus valores por defecto.

C. Dar de alta el Bproc de tipo Evento

En su configuración seleccionamos el Tipo “Evento” el cual nos va a solicitar un campo URL en el que debemos pegar el Endpoint del Guest code.

Por último, en la configuración del formato del formulario, al hacer click derecho en el botón vamos a poder acceder a la configuración del widget en el que asociaremos el Bproc para que se ejecute la función del Guest Code.

Para este caso vamos a disponer únicamente la opción OnClick para el tipo de evento, ya que esta es la utilizada en widgets de tipo Botón. Esta configuración se ejecutará cuando el usuario haga click en el widget particularizado, haciendo que se cumpla la lógica generada en el script.

3. Ventajas de implementar el Blanqueo de Campos

La implementación de esta funcionalidad ofrece beneficios operativos críticos:

  • Eficiencia en la edición compleja: Es ideal para usuarios que trabajan con registros maestros extensos y necesitan cambiar una gran cantidad de datos sin procesar cada campo manualmente.

  • Reutilización de registros: En lugar de eliminar un registro existente y dar de alta uno nuevo, el usuario puede simplemente “resetearlo”, lo que permite aprovechar la instancia de edición actual para cargar nueva información.

  • Facilitación de Plantillas: Al dejar el formulario totalmente vacío de forma rápida, se simplifica la posterior aplicación de plantillas predefinidas de datos.

  • Agilidad frente a errores: Permite al usuario volver a empezar de manera sencilla si comete errores durante la carga de datos, sin las fricciones de tener que salir y volver a entrar al formulario.