Bproc de Transacción

Bproc de Transacción

¿Qué es?

El bproc de Transacción permite ejecutar procesos personalizados en modo manual (opciones de menú),automática Webhook y Pregrabación, en el contexto de una instancia de un documento donde se encuentra operando un usuario.

¿Cómo funciona?

Modos de ejecución

Si bien la ejecución es externa a GO, el Bproc interactúa con él, posteando al servicio información seleccionada por el usuario en un formato Json determinado.

Se establecen tres modos de ejecución de un Bproc de Transacción: Manual, Webhook y Pregrabación:

Modo Webhook

Al ocurrir un evento monitoreado por un Bproc sobre un documento, se puede disponer de un Webhook para que ejecute automáticamente una operación determinada.

El sistema GO al detectar que ocurre un evento determinado sobre un documento específico, puede ejecutar uno o múltiples Bprocs de Webhooks automáticamente y de forma simultánea.
Es importante remarcar que, a diferencia de las ejecuciones manuales, estas no afectan de ninguna forma a la operación principal del sistema GO, dado que se procesan de forma independiente y asincrónica, y este proceso no atiende ni le importa los resultados de las ejecuciones de estos bprocs. Solo los dispara.
Esto significa que, al guardar un nuevo cliente, incluso si un servicio del Bproc falla, se cuelga, o se ejecutan varios Bprocs al mismo tiempo, los tiempos de grabación de los datos del cliente deben mantenerse iguales a cuando no hay Bprocs de Webhooks en ejecución.

El flujo del webhook funciona de la siguiente manera:

  1. Configuración del Webhook: se establece la aplicación receptora (el servicio que desea recibir la información), se configura una URL que estará a la espera de las solicitudes entrantes
  2. Evento Desencadenante: en la aplicación emisora se desencadenará el webhook. Para que esto ocurra, se debe definir el o los eventos específicos que el sistema debe atender, como por ejemplo:
  • Bproc de Transacción: el alta de un pedido de venta, creación de un despacho, etc.
  1. Disparo del Webhook: Cuando se produce el evento desencadenante:
  • La aplicación emisora envía una solicitud HTTP POST a la URL del webhook configurado en la aplicación receptora.
  1. Procesamiento del Webhook:
  • La aplicación receptora recibe la solicitud del webhook y procesa los datos enviados, realizando las acciones necesarias en función de la información proporcionada por la solicitud.
  1. Acuse de Recibo: La aplicación receptora devuelve de forma inmediata (lo más rápido posible), el acuse de recibo, en el correspondiente Response.

Consideraciones:

  • Solo aplica a Tipos de documentos.
  • La ejecución de los procesos automáticos no debe afectar de ninguna forma a la transacción principal, esto incluye los tiempos de procesamiento
  • Se incluyen los siguientes eventos:
    • Crear / Actualizar / Eliminar / Anulación
  • Un usuario desarrollador puede establecer:
    • Cuales son las categorías de documentos soportadas
  • Un usuario configurador puede habilitar los Webhooks para distintos tipos de documentos, siempre y cuando se encuentren dentro de las categorías de documentos soportados.

Modo Pregrabación

Configuración y Ejecución: Similar al modo Webhook, pero el bproc se ejecuta antes de que ocurra el evento, permitiendo validaciones o modificaciones previas. Este modo es sincrónico. Si recibe algún error no permite ejecutar la acción siguiente.

Consideraciones:

  • Solo aplica a Tipos de documentos.
  • Permite realizar validaciones preventivas antes de confirmar un evento.

Modo Manual

Cuando el usuario ejecuta una acción manualmente dentro de un documento, el sistema GO pierde el control y queda a la espera de que la ejecución del Bproc finalice y devuelva el resultado correspondiente.

Consideraciones:

  • Se incluyen en la consulta o edición de un documento existente, o bien en el alta de uno nuevo. Pero solo estarán disponibles cuando todos los datos se encuentren guardados.
  • Un usuario desarrollador puede establecer:
    • Cuales son las categorías de documentos soportadas
  • Al igual que se ocurre con los Bprocs de Webhook de Transacciones, un usuario configurador puede habilitar el Bproc de Transacciones manuales para distintos tipos de documentos, siempre y cuando se encuentren dentro de las categorías de documentos soportados.

Configuración de un Bproc de Transacción

Creación de Bproc de Transacción

  1. Ir a Menú→ Configuración →Diseño de espacio de trabajo → DICCIONARIOS → Bproc

  1. Muestra la grilla con todos los Bprocs creados separados por “Tipo”. Para crear uno seleccionar en “Nuevo”.

  1. Al ingresar, por default muestra el Bproc de Viewer, ya que en el campo “Tipo” está seleccionado Viewer. Cambiarlo por Transacción y así mostrará todas las secciones con sus campos para completar el Bproc de Transacción.
    Sus secciones son: General y Configuración.

Sección General:

Se deben completar los campos:

  • Nombre: el nombre que le asignamos a nuestro Bprocs de Transacción
  • Código: Identificador único del Bprocs de Transacción.
  • Activo: Se puede activar en el caso de seleccionar el círculo o desactivar en el caso de dejarlo vacío.
  • Tipo: en este campo elegimos el tipo de bproc que estamos creando, en este caso seleccionamos el de “Transacción”.
  • Aplicación: Identificar a qué aplicación standar o a que app custom pertenece.
  • Descripción: una breve descripción de la acción que realiza este bproc de Transacción.

Sección Configuración:

  • Categorías de documento: Elegir la o las categorías de documentos en que queremos que el Bproc funcione:
    • Seleccionar en el botón “+”.
    • Elegir la o las categorías de documentos y seleccionar en “Aceptar”.
  • Modo: Permite diferenciar el modo de ejecución de los Bprocs. Existen tres modos:
    • Webhook: Este modo permite que el BProc se ejecute automáticamente después de que ocurra un evento específico, disparando una URL o microservicio.
    • Manual: Las actividades se configuran manualmente y se dispone un botón accionario para ejecutarlas. Los usuarios deben iniciar las acciones de manera explícita.
    • Pregrabación: Similar al modo webhook, pero el BProc se ejecuta antes de que ocurra el evento. Esto permite realizar validaciones o modificaciones antes de que se confirme el evento.

A continuación comenzaremos viendo el modo “Webhook”.

Webhook

  • URL: La URL que permite a la aplicación emisora acceder a la aplicación receptora.
  • Eventos: Seleccionar el evento en que queremos que se active el bproc:
    • Crear: Se activa cuando se crea un nuevo registro.
    • Actualizar: Se activa cuando un registro existente es modificado.
    • Eliminar: Se activa cuando un registro es eliminado.
    • Anulación: Se activa cuando un registro es anulado.
  • Permite Reprocesado: si activas esta opción el bproc puede ser reprocesado manualmente desde el monitor.
  • Parámetros: Los parámetros no pueden ser editados ni visualizados por el usuario final quien ejecuta la transacción vinculada. Se utiliza solo a efectos de pasarle datos al servicio.

Para agregar Parámetros seleccionar en el + y se abre un pop-up.

Se deben completar los siguientes campos:

  • Nombre: el nombre que le asignamos al parámetro.
  • Descripción: una breve descripción de lo que realiza el parámetro.
  • Tipo Widget: tipo de dato del parámetro (Textbox, Integer, Long, Float, CheckBox, fecha, Selector).
  • Valor Por Defecto: el valor del parámetro.

Pregrabación

  • URL: La URL que permite a la aplicación emisora acceder a la aplicación receptora.
  • Eventos: Seleccionar el evento en que queremos que se active el bproc:
    • Crear: Se activa antes que se cree un nuevo registro.
    • Actualizar: Se activa antes que un registro existente sea modificado.
    • Eliminar: Se activa antes que un registro sea eliminado.
    • Anulación: Se activa antes que un registro sea anulado.
  • Parámetros: Los Parámetros son para una configuración previa pero no son editables por el usuario, solo pueden configurarse a través de la ruedita de configuración en el bproc de transacción.

Para agregar Parámetros seleccionar en el + y se abre un pop-up.

Se deben completar los siguientes campos:

  • Nombre: el nombre que le asignamos al parámetro.
  • Descripción: una breve descripción de lo que realiza el parámetro.
  • Tipo Widget: tipo de dato del parámetro (Textbox, Integer, Long, Float, CheckBox, fecha, Selector).
  • Valor Por Defecto: el valor del parámetro.

Manual

  • Permite Reprocesado: si activas esta opción el bproc puede ser reprocesado manualmente desde el monitor.
  • Actividades: Son las distintas acciones que pueden ejecutarse manualmente desde un documento.

Para agregar Actividades seleccionar en el + y se abre un pop-up.

Se deben completar los siguientes campos:

  • Nombre: el nombre que le asignamos a nuestra actividad.
  • Descripción: una breve descripción de la actividad que realiza.
  • Actualizar Formulario Al Finalizar: se actualiza el formulario de ejecución, una vez que haya finalizado el proceso.
  • Url: La URL que permite a la aplicación emisora acceder a la aplicación receptora.
    La api también permite abrir una página especificada por el servicio en una pestaña nueva en las actividades de tipo API.
    La api a la que se llame debe devolver una respuesta con Content-Type: application/json y en el cuerpo de la respuesta tiene que enviar un json con una key llamada redirectURL con la url que se va a abrir en una nueva pestaña.
    Ejemplo de respuesta de la API:
    {
    “redirectURL”: “https://finneg.com
    }
  • Parámetros: se pueden agregar parámetros por actividad.

Para agregar Parámetros seleccionar en el + y se abre un pop-up.

Se deben completar los siguientes campos:

  • Orden: orden de cómo aparecen luego los parámetros a la hora de ejecutar el Bproc.
  • Nombre: nombre del parámetro que le asignamos a nuestro parámetro.
  • Editable: permitir o denegar la edición del parámetro. Editable por el usuario ejecutor.
  • Requerido: si es requerido, en cuyo caso al momento de ejecutar la actividad, el sistema valida que se haya ingresado un valor.
  • Tipo Widget: tipo de dato del parámetro (Textbox, Integer, Long, Float, CheckBox, Fecha, Selector).
  • Valor Por Defecto: valor del parámetro.
  • Descripción: una breve descripción de lo que realiza el parámetro.

Sección Equipos:

Esta sección aparecerá para el modo Manual.

La solapa de equipos es para restringir o darle seguridad a este BProc y determinar qué equipos están autorizados a usarlo, en caso de no seleccionar ningún equipo, será visible por todos.

Para agregar equipo/s:

  1. Seleccionar en el botón “+”
  2. Elegir el/los equipo/s que queremos que tengan permiso a nuestro BProc.
  3. Seleccionar en “Aceptar”.

Habilitación a tipos de documentos

Una vez guardado el Bproc, tienes que configurar en qué documento (que se encuentre dentro de la categoría que elegiste al crear el bproc) necesitas que se muestre el bproc.
Para esto, seguir los siguientes pasos:

  1. Ir a Menú→ Configuración →Diseño de espacio de trabajo → DOCUMENTOS → Tipo de Documento

  1. Buscar la categoría que elegiste al momento de crear el Bproc. Luego seleccionar en el documento que quieres configurar el Bproc que se encuentre dentro de esta categoría. En este ejemplo creamos el Bproc en la categoría “Pedido de Venta” y elegimos el documento “Pedido de Venta”.

  2. Seleccionar en “Bproc”, en el cual nos muestra el bproc que creamos recién y los creados anteriormente. Luego hacer click en el/los bproc/s que necesites que se muestren en el documento y ejecutar. Por último guardar los cambios.

Vista de Bproc

Para visualizar el bproc de modo Manual que hayas creado debes ir a:

  1. Ingresar en el documento que hayas seleccionado al crear el bproc (por ejemplo Pedido de Venta).
  2. Al ingresar a “Pedido de Venta” seleccionar sobre el cual quieras ejecutar el bproc. Por ejemplo, seleccionamos en “Pedido de venta - 6481”.
  3. A continuación podemos ver el Bproc creado:

Aclaración: si el documento no tiene ningún Bproc asociado, entonces no se muestra la opción de menú “Bproc”.

Especificación técnica

Bproc de Transacción - URL

En el campo URL de una actividad del BPROC, el desarrollador indica aquí la ubicación del recurso que representa la API, donde puede también, aplicar parámetros del tipo hardcodeado como en cualquier URL.
El sistema al ejecutar el BPROC, envía adicionalmente en el Post información en formato Json. Este dispone de todos los parámetros con los valores ingresados por el usuario, y la lista con todos los campos de los registros seleccionados por el usuario al ejecutar el Bproc.

Es importante a la hora de desarrollar una API que esté preparada para recibir esta estructura de información y darle el debido tratamiento.

El formato JSON dispone:

Tanto para Documentos como para Transacciones, el Json es similar al usado en el Modo Webhook, salvo por el campo evento que representa la actividad del Bproc que el usuario ha ejecutado a través de la opción del menú.

Ejemplo con un Documento (Transacciones):

267x316

Bproc de aplicación estándar

Para realizar modificaciones y ajustes sobre un Bproc de aplicación estándar se realiza desde el botón de ajustes que se encuentra en el menú del bproc seleccionado.
Esta opción también está habilitada para aplicaciones no estándar.

Bproc de Transacción - Modo Webhook / Modo Pregrabación

General:

  • Se puede activar y desactivar el Bproc completamente.
  • Dentro de la lista de maestros definidos como estándar, permite a un usuario del cliente, deshabilitar y volver a activar si lo desea una o varias opciones.

Parámetros:

  • Se puede modificar el valor de los parámetros creados.

Equipos:

  • Se puede agregar y/o quitar equipos.

Bproc de Transacción - Modo Manual

General:

  • Se puede activar y desactivar el Bproc completamente.
  • Dentro de la lista de maestros definidos como estándar, permite a un usuario del cliente, deshabilitar y volver a activar si lo desea una o varias opciones.

Parámetros:

Para la actividad seleccionada:
Permite configurar parámetros de a una actividad estándar seleccionada a la vez

  • Actividad: seleccionas la actividad que necesites modificar.
  • Activo: habilitar/deshabilitar por actividad.
  • Actualizar formulario al finalizar: habilitar/deshabilitar por actividad.
  • Parámetros: permite configurar los parámetros de cada actividad del Bproc, todos los valores por defecto de sus parámetros, e indicar si estos pueden ser modificados por el usuario ejecutor.

Equipos:

  • Se puede agregar y/o quitar equipos.

Caso de Uso

Modo Manual:
Caso de Uso de Ejemplo

Notificar a un cliente, acerca de los productos del pedido de venta que ya se encuentran preparados:
Un usuario que prepara pedidos para ser entregados a grandes clientes, en su proceso de edición del pedido, necesita ir informando cuales de todos los pedidos, ya se encuentran listos, para ir planificando una entrega parcial programada. viendo vendedor, avanzado crea un Bproc “Cliente VIP”, cuyas acciones son “Pasar a VIP”, “Anular VIP”, el cual se habilita para la transacción de edición/modificación de un Cliente.

Ejecución de la Acción “Notificar productos disponibles”:

Al ser ejecutada esta acción por el usuario, el Bproc realiza múltiples ajustes en el sistema usando una API específica desarrollada solo para este fin.
La misma aplica los siguientes cambios al cliente activo:

  1. Toma todos los productos no notificados como disponibles, (código/nombre/cantidad disponible)
  2. Genera y envía un mail de notificación, conteniendo la información en un archivo adjunto al mail
  3. Marca los ítems del pedido como notificados, guardando la cantidad notificada de cada uno de ellos en el atributo adicional
  4. Fin

Modo Webhook:
Caso de Uso de Ejemplo

Se detalla a continuación un caso de uso que puede llegar a implementarse con esta herramienta:

Liberación de un pedido de venta por cancelación de deuda crediticia

Actualmente al dar de alta un nuevo pedido de venta, existe una bpm que valida el estado de la cuenta corriente del cliente, si la misma se encuentra dentro de los límites, entonces lo indica como Ok, caso contrario lo deja en estado “Pendiente de Firma”, esperando que el responsable de firmar lo autorice.

El problema con este flujo, es que el firmante no quiere autorizar la venta hasta que el cliente no cancele su deuda, pero luego pasado un tiempo, cuando el cliente cancela esta deuda, el firmante demora un tiempo en accionar, validando el estado de la CC del cliente y aprobando de forma tardía el pedido de venta.

Solución propuesta:

Se crea el siguiente webhook “Aviso Pago para Liberación de PV”

Cuando se ejecuta:
Al realizar una cobranza sobre un cliente, cuando este último tiene al menos un pedido de venta en estado “Pendiente de firma” siempre que el estado de la cuenta corriente resultante del pago no siga siendo deudor.

Qué hace el webhook:
Manda un aviso a los firmantes correspondientes, avisandoles de la cancelación de deuda, para que le liberen el/los pedidos. En el cuerpo del mensaje se detallan algunos datos del cliente, el nuevo saldo de su CC, y el detalle de los pedidos de ventas que debe firmar.

Ver más
2 Me gusta