Tubo de lista

Se trata de un objeto cuya finalidad es la de transferir listas de información de un origen a un destino. Partiendo de una lista de una tabla de destino. Por tanto, la entrada como la salida del objeto es una lista.
Este objeto puede ser creado tanto en un proyecto de datos como en un proyecto de aplicación.

Propiedades

Identificador

Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.

Nombre

Etiqueta alfanumérica que servirá como descriptor del objeto. Es el texto que se presentará al usuario final de la aplicación para referenciar al objeto. Podemos definir una etiqueta por cada idioma presente en el proyecto.

Estilos

Podemos definir el estilo siguiente:

Privado

Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.

Comentarios

Esta propiedad nos permite documentar el uso del tubo de lista.

Tabla asociada

Esta propiedad nos permite establecer cuál será la tabla de origen del tubo de lista. Podremos seleccionar una tabla.

Tabla destino

Esta propiedad nos permite establecer cuál será la tabla de destino del tubo de lista; es decir, en qué tabla se crearán los nuevos registros. Podremos seleccionar una tabla.

Usar contenido inicial en campos destino

Cuando disparamos el tubo de lista, si esta propiedad está desactivada, únicamente se evalúan los contenidos iniciales que dependen de otros campos. Si está activada, se evalúan todos los contenidos iniciales, estáticos o los que dependen de otros campos.

Formulario de petición de datos destino

Esta propiedad estará disponible en tubos creados en proyectos de aplicación de destino del tubo de lista, que será presentando al inicio de su ejecución. El usuario podrá realizar cambios y contenidos iniciales el alta de los registros. Este formulario se mostrará una sola vez para todos los registros. Si no especificamos ningún formulario, cuando ejecutemos el tubo los registros serán generados directamente en la tabla de destino.

Resolución de campos en destino

En el panel central de Velneo vDevelop podremos asignar valores a los campos. Para ello pulsar el botón que aparece al editarlo. Los comandos disponibles son:
Añadir un nuevo capilar (control + N).
Borrar un capilar (Supr).carácter
Capilares automáticos. Esta opción generará un capilar por cada campo de la tabla de destino del tubo. En el caso de que tanto en la tabla de origen como en la de destino coincida el identificador de un campo, entonces el capilar será resuelto automáticamente con el campo análogo de la tabla de origen.
Subir un capilar una posición.
Bajar un capilar una posición.

Alta de maestro en destino

No es funcional en la versión actual. Esta propiedad estará disponible en tubos creados en proyectos de aplicación. Esta propiedad nos permite establecer si se dispararán las altas en las tablas enlazadas en los registros de destino. Los posibles valores son:

Falso

No se producirá el alta del registro enlazado si este no existe.

Verdadero

Se realizará el alta del registro enlazado.

Campo enlazado a tabla maestra en destino

No es funcional en la versión actual. Esta propiedad nos permite seleccionar uno de los campos punteros a tablas en la tabla de destino, para su alta.

Formulario de tabla maestra

No es funcional en la versión actual. Esta propiedad nos permite especificar un formulario de destino del tubo de lista, que será presentando al inicio de su ejecución. El usuario podrá validar el alta del maestro. Esta propiedad estará disponible solo si se selecciona Verdadero en la propiedad alta de maestro en destino.
Los tubos de lista habitualmente se disparan desde procesos, mediante los comandos de instrucción de proceso tubo de lista o tubo de lista inducido.

Cómo pasar información de un proceso a un tubo de lista

En el proceso declararemos y editaremos las variables locales que necesitemos y en el tubo de lista crearemos variables locales idénticas (mismo identificador y tipo) y las usaremos para resolver los campos del tubo que correspondan.
Por ejemplo, para un tubo de lista que crea líneas de una factura, creamos en el tubo una variable local con el identificador ID_FACTURA y la usamos en la resolución del campo enlazado a facturas de la tabla de líneas.
En el proceso crearemos una variable local con el mismo identificador que la del tubo (ID_FACTURA), y le asignaremos el valor deseado antes de disparar el tubo, de este modo, al dispararlo, se pasará el ID de la factura establecido en el proceso.

Notas sobre los contenidos iniciales y los tubos

En los tubos solamente se disparan los contenidos iniciales que dependen de otros campos de la tabla de destino

Esto quiere decir que si el campo tiene un contenido inicial que no depende de otros campos, por ejemplo: currentDate() en un campo de tipo fecha, el contenido inicial no se disparará al ejecutar el tubo. Por tanto, si queremos que tenga un contenido, tendremos que crear el capilar correspondiente en el tubo y asignarle un valor.
Si el campo tienen un contenido inicial que depende de otro campo que también se asigna en el tubo, entonces se disparará cuando se asigne ese campo en el tubo. Un ejemplo:
Supongamos que, entre otros, tenemos estos dos campos en una tabla de Líneas de venta:
ARTICULO (campo enlazado a tabla Artículos).
PRECIO (con contenido inicial : #ARTICULO.PRECIO).
Si en el tubo no creamos capilar para el campo PRECIO y creamos un capilar para el campo ARTICULO, entonces se disparará el contenido inicial del campo PRECIO al ejecutar el tubo.

El orden de los capilares influye

Siguiendo con el ejemplo anterior:
Tenemos un articulo A cuyo precio es 22.
En una línea de venta selecciono el artículo A (se dispara el contenido inicial: 22) y cambio el precio de la línea por 11.
Disparo un tubo desde esa línea de venta:
Si el orden de los capilares del tubo es:
  1. 1.
    PRECIO
  2. 2.
    ARTICULO
El registro de salida del tubo tendrá PRECIO 22. ¿Por qué? Porque los capilares se ejecutan secuencialmente así que primero asigna el precio: 11. Luego asigna el artículo, que hace que se dispare el contenido inicial del precio, con lo que le asigna 22.
Si el orden de los capilares es este:
  1. 1.
    ARTICULO
  2. 2.
    PRECIO
Al asignar el artículo se disparará el contenido inicial del precio (22) luego se ejecuta el capilar del precio, con lo que le asigna un 11.
Última actualización 7mo ago