Bproc de Viewer

Bproc de Viewers

¿Qué es?

Herramienta de desarrollo que permite integrar el sistema GO con aplicaciones propias o de terceros, permitiendo a un usuario habilitado ejecutarlas dentro del contexto del sistema de forma controlada. Su objetivo es extender las funcionalidades estándar existentes y permitir brindar, de manera eficiente, soluciones personalizadas para aquellos clientes que lo requieran.

¿Cómo funciona?

Un Bproc de Viewer puede ser asignado a una sola vista. Desde la misma, un usuario habilitado al Bproc, a través de opciones de menú específicas, puede acceder a ejecutar las distintas acciones que conforman el Bproc. Estas acciones son independientes entre sí, por lo que pueden ser ejecutadas individualmente

Configuración de un Bproc Viewer

Puede ser asignado usando cualquier tipo de vista de maestros o documentos del sistema, y cuyas acciones pueden aplicarse sobre uno, varios, o todos los registros/filas seleccionados de una vista, dependiendo de la modalidad de selección configurada para cada Bproc de Viewer.

Vistas:

  • Un Bproc solo puede asignarse a una sola Vista a la Vez para su uso.
  • La clase de vista puede ser tanto de Maestros como de Documentos
  • Las acciones del Bproc Veiwer pueden aplicarse sobre uno, varios, o todos los ítems/filas seleccionados de la vista dependiendo si la acción lo soporta o no. Es importante aclarar que los filtros aplicados sobre la vista no afectan ni alteran los datos a procesar.

Equipos:

Se pueden establecer qué usuarios pueden ejecutar o no los Bprocs, a través de sus equipos de pertenencia. Estos equipos se pueden asignar a cada bproc que se desarrolle desde el configurador.

Datos disponibles para la ejecución:

El sistema facilita a la Acción (API/Script) que se ejecuta de los siguientes datos:

  • Todas las columnas de la vista (visibles o no)
  • Todos los parámetros ingresados por pantalla por el usuario, requeridos por el Bproc.
  • Todos los ítems (Filas de la vista) que corresponden según la modalidad del Bproc y/o la selección de ítems efectuados por el usuario

Actividades:

  • Son las distintas acciones que pueden ejecutarse de una vista, perteneciente a un Bproc Viewer determinado.
    Detalle de la configuración de una Actividad:
    • Modalidades de Selección:

      Una Acción quizás está desarrollada para procesar un solo ítem a la vez, o quizás requiere sí o sí de múltiples ítems, entre otros casos, cada uno dependiendo de su concepción y requerimiento. Es por esto que desde el configurador, se puede indicar para cada acción, la modalidad de selección habilitada para cada una de ellas.
      Las opciones pueden ser:

      • Simple: solo se puede realizar sobre una sola entidad seleccionada
      • Múltiple: sobre una o varias entidades seleccionadas.
      • Universal: se aplica sobre la totalidad de la vista y no sobre la selección.
      • Libre: la acción soporta cualquiera de las opciones, y esto le permite al usuario al momento de ejecutar, seleccionar de qué forma hacerlo.
    • Tipo de Acción:

      • Un llamado a una API a la cual se accede a través de una URL configurada en la Acción, donde el sistema envía al ejecutarse la acción, dentro del Post, la lista de los elementos seleccionados y los parámetros ingresados requeridos por el propio Bproc a través de un formulario.
      • Un Script de SQL, cuyo código se escribe como texto en la propia configuración de la Acción del Bproc, el cual debe codificarse siguiendo algunos lineamientos adicionales a SQL.

:round_pushpin:IMPORTANTE

Para que las acciones se desarrollen correctamente, tanto el caso de una API como en el entorno de ejecución de un Script, se requiere que se implemente su desarrollo cumpliendo con la interfaz correspondiente. La misma se describe más adelante en la sección de Información técnica

Caso de Uso del negocio

Un caso de uso de negocio puede ser, por ejemplo, crear un Bproc “Clientes VIP”, cuyas Acciones pueden ser “Pasar a VIP”, “Anular VIP”, habilitado para la vista de Clientes.

Este Bproc opera sobre uno o varios ítems seleccionados de la vista (Modalidad de selección múltiple).

Ejecución de la Acción “Pasar a VIP”:

Al ser ejecutado por el usuario trás seleccionar varios clientes, esta acción realiza múltiples ajustes desarrollados en una API sobre cada uno de los clientes:

  1. Cambiar tipo de cliente a VIP
  2. Habilitar conceptos especiales de bonificación
  3. Ampliar el límite de crédito de CC a los clientes
  4. etc…

Ventajas de disponer de Bproc de Viewers

La integración de aplicaciones con Bproc puede ofrecer varios beneficios significativos para una organización. Aquí hay algunos de los beneficios clave de utilizar una herramienta sistémica para lograr esta integración:

  • Ampliación de funcionalidad: Puedes agregar nuevas características y funcionalidades a tu propia aplicación sin tener que desarrollarlas desde cero. Esto te permite ofrecer más valor a tus usuarios o clientes de manera más rápida y eficiente.
  • Ahorro de tiempo y recursos: En lugar de construir todas las funciones internamente, puedes aprovechar las aplicaciones existentes que ya han sido desarrolladas y probadas por terceros y reutilizarlas. Esto ahorra tiempo, dinero y esfuerzo en desarrollo.
  • Mejora de la experiencia del usuario: La integración de aplicaciones de terceros puede enriquecer la experiencia del usuario al proporcionarles acceso a servicios y características adicionales de uso muy particular y especial, que de otro modo no estarían disponibles en GO.
  • Acceso a datos y servicios externos: Puedes conectarte a fuentes de datos externas o servicios para enriquecer tus propios datos o proporcionar servicios adicionales a tus usuarios. Esto es especialmente valioso en aplicaciones que requieren acceso a información en tiempo real o datos actualizados constantemente.
  • Flexibilidad y adaptabilidad: Las herramientas sistémicas de integración a menudo permiten una mayor flexibilidad y adaptabilidad en la aplicación. Puedes cambiar o actualizar las aplicaciones de terceros que se quiere utilizar sin tener que realizar cambios significativos en tu aplicación principal.
  • Escalabilidad: A medida que tu negocio crece y necesitas más funciones, muchas de ellas muy particulares de cada cliente, el Bproc permite agregar nuevas integraciones con aplicaciones de terceros para satisfacer esas necesidades, sin necesidad de obligar a los clientes a navegar entre miles de parámetros y funcionalidades innecesarias para la gran mayoría.
  • Mayor competitividad: La capacidad de integrar rápidamente nuevas funciones y servicios especializados, puede hacer que tu aplicación sea más competitiva en el mercado, ya que puedes adaptarte más rápidamente a las demandas cambiantes de los usuarios y las tendencias.

Aspectos a tener en cuenta

Es importante señalar que la integración con aplicaciones, sobre todo cuando estas son de terceros, puede presentar desafíos en términos de seguridad y mantenimiento, por lo que es crucial brindar soporte a los clientes respecto de las aplicaciones que quieren integrar, para que las mismas se gestionen adecuadamente y no afecten la integridad del sistema.

Los clientes deben ser informados de las implicaciones de seguridad y privacidad que representa compartir datos sensibles o no con otras aplicaciones.

Pasos a seguir:

Bproc de Viewer del tipo Script

  1. Creación del Bproc
    Se crea un Bproc de View del tipo Script a modo de ejemplo, que inserta un registro en el log del sistema.

  2. Seleccionar la opción de menú de GO:
    Configuración →Diseño de espacio de trabajo → DICCIONARIOS → Bproc

  3. Seleccionamos crear un bproc nuevo y completamos los campos necesarios para el tipo View

  4. Agregamos una nueva actividad y seleccionamos tipo de actividad “Script”

  5. Se indica los parámetros requeridos por el script
    |553.440029433407x345

  6. Se define el script a través del botón de edición que inserta un nuevo registro en el log del sistema (ver configuración de un script Especificación técnica)

  7. Vamos a la vista seleccionada “Factura de Ventas”, seleccionamos uno o varios ítems de la lista que despliega y elegimos la nueva opción de menú “Bproc2461”

  8. El sistema abre un popup donde pide que se ingresen los parámetros requeridos por el Bproc

  9. Cuando el usuario de clic en Aceptar, se ejecuta finalmente el Bproc, procesando los ítems seleccionados

  10. Si se ejecuta el script correctamente insertando un nuevo registro en el log del sistema.


    En este caso vemos que el script se ejecutó correctamente

Bproc de Viewer del tipo API

  1. Creación del Bproc

Se crea un Bproc de Viewer del tipo API, que hace algo y devuelve un mensaje de código 200 de proceso exitoso.

  1. Seleccionar la opción de menú de GO:
    Configuración →Diseño de espacio de trabajo → DICCIONARIOS → Bproc

  2. Seleccionamos crear un bproc nuevo y completamos los campos necesarios para el tipo View

  3. Agregamos una nueva actividad y seleccionamos tipo de actividad “API”

  4. Se indica la URL de la API, y los parámetros requeridos por la misma

  5. Vamos a la vista seleccionada “Factura de Ventas”, seleccionamos uno o varios ítems de la lista que despliega y elegimos la nueva opción de menú “Bproc461”

  6. El sistema abre un popup donde pide que se ingresen los parámetros requeridos por el Bproc

  7. Cuando el usuario de clic en Aceptar, se ejecuta finalmente el Bproc, ejecutando la API y procesando los ítems seleccionados

  8. Tras ejecutar el script, el Bproc informa si se ejecutó correctamente o no en base a la respuesta dada por la propia API.

Especificación técnica:

Bproc de Viewer del tipo Script

En el campo Script, se debe codificar un fragmento de código en Java que interactúa con la base de datos y realiza operaciones a través de llamadas de mensajes SQL.

Ejemplo de aplicación:

En el siguiente ejemplo se realizan operaciones de inserción en una tabla llamada “FAFAuditoria” con un mensaje específico y una fecha y hora del sistema. Este mensaje se forma concatenando el texto “BPROC de Script funciona! “ con el número de componente del primer registro seleccionado de la vista de Pedidos de Venta. Si el usuario ejecuta el Bproc sin haber seleccionado ningún registro, se concatena al texto anterior el valor ingresado por el usuario en uno de los parámetros del Bproc.

Codificación:

String sessionID = params.getSessionID();

DBHelper dbh = params.getDBHelper();

try {

selectedRecords = params.get("selectedRecords");

String message = params.get("MENSAJEPARAMETRO");

if (selectedRecords.size() > 0) {

String newMessage = String.valueOf(selectedRecords.get(0).get("NUMERODOCUMENTO").getAsInt());

dbh.executeCommad("insert into FAFAuditoria (Mensaje, Fecha) VALUES('BPROC de Script funciona! " + newMessage + "', GETDATE())");

} else {

dbh.executeCommad("insert into FAFAuditoria (Mensaje, Fecha) VALUES('BPROC de Script funciona! " + message + "', GETDATE())");

}

} catch (Exception e) {

throw e;

}
Descripción de instrucciones relevantes:

Se usan para para poner o informar la ejecución del código dentro del contexto de una sesión y base de datos. Ambos siempre deben informarse

String sessionID = params.getSessionID();

DBHelper dbh = params.getDBHelper();

Se asigna al objeto selectedRecords de la clase List, los elementos seleccionados por el usuario al momento de ejecutar el Bproc

selectedRecords = params.get("selectedRecords");

Continúa…

Se asigna al objeto message el valor de texto ingresado por el usuario en el parámetro “Mensaje”, cuyo nombre interno. es “MENSAJEPARAMETRO”

String message = params.get("MENSAJEPARAMETRO")

Este método devuelve la cantidad de registros seleccionados

selectedRecords.size();

Se toma a continuación el valor del documento de identidad del primer registro seleccionado

  • get(0) → Apunta al primer registro seleccionado, dado que el contador comienza con el cero
  • NUMERODOCUMENTO → Es el nombre interno configurado para la columna de la vista “Nro Comprobante”
  • El texto lo toma como entero numérico y lo convierte a Texto para que pueda ser concatenado luego

String newMessage = String.valueOf(selectedRecords.get(0).get("NUMERODOCUMENTO").getAsInt());

Este comando permite ejecutar una sentencia SQL, en este caso inserta en la tabla de log un texto y la fecha y hora del sistema

dbh.executeCommad("insert into FAFAuditoria(Mensaje, Fecha) VALUES('BPROC de Script funciona! " + newMessage + "', GETDATE())");

Este ejemplo hace referencia a esta vista de Pedidos de Venta y campo de documento de comprobante:

Bproc de Viewer del tipo API

En el campo URL 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 de tres atributos principales:

  • actividadID: es el ID asociado a la actividad del Bproc que se usa para llamar a la API
  • params: contiene todos los parámetros y los valores ingresados por el usuario por pantalla previo a ejecutar el Bproc
  • selectedRecords: contiene una lista de registros, cada registro contiene a su vez todos los datos de columna de la vista, identificándose a través de su nombre interno.

Ejemplo:

Incluye 7 parámetros cuyos datos fueron ingresados por pantalla por el usuario, y una vista con 5 columnas visibles

{

"actividadID": 1046,

"params": {

"ParamText": "textodefault",

"ParamCheckBox": "true",

"ParamLong": "11",

"ParamSelector": "486",

"ParamFecha": "2023-10-03T03:00:00.000Z",

"ParamInt": "45",

"ParamFloat": "1.2"

},

"selectedRecords": [

{

"TRANSACCIONTIPONOMBRE": "Operación",

"TRANSACCIONID": "12365",

"NUMEROINTERNO": "159",

"EMPRESAID": "16",

"FECHA": "08-10-2023",

},

{

"TRANSACCIONTIPONOMBRE": "Operación",

"TRANSACCIONID": "12366",

"NUMEROINTERNO": "160",

"EMPRESAID": "16",

"FECHA": "08-10-2023"

}

]

}

Nombres Internos de Columnas de Vistas

Recordemos que los nombres internos de las columnas se pueden obtener desde la opción de configuración de cada campo de la vista:

1 me gusta