Prueba Velneo Gratis

Te ofrecemos todo el poder de Velneo durante 1 mes para desarrollar la aplicación que tu empresa necesita.

Saber más
Thank you! Check your email for confirmation.

Tubos JSON

Como proceso de mejora de la documentación y ejemplos en Velneo, hemos mejorando la versión de los tubos de ficha/lista JavaScript. Estos scripts mejoraban la funcionalidad de los objetos nativos de la plataforma, pero tenían el inconveniente de obligar a crear un script y un proceso por cada tubo.Posteriormente lanzamos una 2º versión cuya mejora consistía en usar siempre el mismo script (que daba Velneo desarrollado), pero seguía siendo necesario crear un proceso para cada tubo.Coincidiendo con la salida de la revisión 17.1 de Velneo vERP hemos terminado el desarrollo del tubo JSON (versión 3ª). Esta versión no requiere crear un proceso para cada tubo, tan solo ejecutar un único proceso llamado TUBO_JSON (que entrega Velneo ya desarrollado) al que pasaremos los parámetros necesarios para ejecutar el tubo de ficha o lista deseado.En esta versión desaparece el concepto de tubo de ficha y tubo de lista, ya que todo son tubos y un tubo de ficha no deja de ser un caso particular de tubo de lista de un único registro.Para conseguir esta simplificación hemos creado las siguientes piezas de código:

  • En el proyecto vERP_dat, en la carpeta de scripts js/database/ encontraremos el script llamado velneoTuboJSON.js
  • El script velneoTuboJSON.js es llamada únicamente desde el proceso V7 con el identificador TUBO_JSON. Este proceso es el que será llamado desde todos los puntos de nuestra aplicación que quieran ejecutar un tubo JSON.

Veamos un ejemplo concreto tomado del proceso que duplica plantillas de asientos.En el alternador de vistas PLA_ASI_C encontaremos el manejador de evento DUP que es el encargado de duplicar una plantilla de asientos. Si nos fijamos en el código que se ejecuta en ese manejador podremos comprobar que se usan los comandos de ejecución de maneadores de objetos para llamar al proceso TUBO_JSON en diferentes ocasiones para crear registros. En todo los casos se usa un formato similar al siguiente formato.

Como vemos se ejecuta el proceso TUBO_JSON pasándole una variable local con el objeto JSON que define el tubo a ejecutar, sobre donde le pasaremos los registros y donde queremos recibir los registros generados.

Básicamente este código siempre es el mismo en todos los tubos JSON, solo debemos cambiar 3 cosas:

  • La cestaOrigen indicando el identificador de referencia (Alias/Objeto) de la cesta donde están los registro de origen.
  • La cestaDestino indicando el identificador de referencia (Alias/Objeto) de la cesta donde el tubo dejará los registros generados.
  • Por último configuraremos los capilares del tubo con los siguientes criterios:
  • auto para indicar capilares automáticos, es decir se traspasan todos los campos cuyo identificador es igual en la tabla de origen y la de destino.
  • campo para pasar el valor de un campo de origen a uno de destino. En destino pondremos el identificador del campo que recibirá el dato en el registro a crear. En origen pondremos el identificador del campo que tendrá el dato a pasar al campo de destino.
  • valor para pasar un valor calculado al campo de destino. En destino pasaremos el identificador del campo del registro a crear que recibirá el dato. En origen podremos o bien un valor constante o, por ejemplo, el resultado de llamar a una función theRegister.varTo... para obtener el valor de una variable local donde previamente habremos calculado el dato a grabar. Si usamos capilares automáticos debemos tener en cuenta que salvo que deseemos que el nuevo registro se genere con el mismo código (ID) debemos incluir un capilar de este tipo para inicializar el valor del campo ID del registro destino con un valor nulo (cero o en blanco) para asegurarnos de que se le asignará el siguiente código válido

Para conseguir esta abstracción hacemos uso de cestas para pasar los registros de origen al proceso y para recibir los registros generados. Lógicamente debemos tener creadas las cestas de origen y destino correspondientes. En vERP a estas cestas se las nombra con el identificador de la tabla más el sufijo _TUB para indicar que se usarán en tubos.Como vemos en el código una vez finalizado el tubo podremos procesar la cesta de destino donde tendremos él o los registros generados en el tubo.Aprovechando las nuevas funciones del API añadidas en la versión 17 de la plataforma, estos tubos ya pueden traspasar campos objetos de tipo imagen y objeto binario.Tal y como hemos comentado al principio de este artículo, los objetos necesarios para conseguirlo están incluidos en el vERP de la nueva revisión 17.1 pero si todavía no eres suscriptor de vERP, ponte en contacto con nosotros a través del centro de soporte.Un saludo.

Regístrate ahora y nuestro equipo se pondrá en contacto muy pronto