Tubo de ficha
Se trata de un objeto cuya finalidad es la de transferir información de un origen a un destino. Partiendo de un registro.
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 ficha.
Tabla asociada
Esta propiedad nos permite establecer cuál será la tabla de origen del tubo de ficha. Podremos seleccionar una tabla.
Tabla destino
Esta propiedad nos permite establecer cuál será la tabla de destino del tubo de ficha; es decir, en qué tabla se creará el nuevo registro. Podremos seleccionar una tabla.
Formulario confirmación del alta
Esta propiedad estará disponible en tubos creados en proyectos de aplicación de destino del tubo de ficha, que será presentando al final de su ejecución. El usuario podrá realizar cambios y validar o cancelar el alta del registro como en cualquier formulario. Si no especificamos ningún formulario, cuando ejecutemos el tubo el registro será generado 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).
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.
Los tubos de ficha habitualmente se disparan desde procesos, mediante el comando de instrucción de proceso tubo de ficha.
Cómo pasar información de un proceso al tubo de ficha
En el proceso declararemos y editaremos las variables locales que necesitemos y en el tubo de ficha 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 ficha que crea una cabecera de factura, creamos en el tubo una variable local con el identificador FECHA y la usamos en la resolución del campo FECHA de la tabla.
En el proceso crearemos una variable local con el mismo identificador que la del tubo (FECHA) y le asignaremos el valor deseado antes de disparar el tubo, de este modo, al dispararlo, se pasará la fecha establecida en el proceso.
Notas sobre los contenidos iniciales y 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:
PRECIO
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:
ARTICULO
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.