Velneo. Tubos de ficha y lista JavaScript

Anuncio
Velneo. Tubos de ficha y lista JavaScript
Velneo. Tubos de ficha y lista JavaScript
Índice
Velneo. Tubos de ficha y lista JavaScript
Índice
La función velneoDB.tubo
Los parámetros
Ejemplos de tubos de ficha y lista
1. Con capilares especificando campos origen y destino
2. Con capilares declarados en la misma línea
3. Con capilares de campos que se llaman igual en origen y destino
4. Combinando capilares de tipo fórmula con manuales
5. Asumiendo que la tabla destino es igual que la de origen
6. Capilares automáticos de campos con el mismo identificador
7. Combinando capilares automáticos, fórmula y manuales
¿Cómo se implementa en mi solución?
Ejemplo de uso
Consideraciones a tener en cuenta
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
España
velneo.es
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
La función velneoDB.tubo
La función es válida tanto para tubos de ficha como para tubos de lista y reconoce
automáticamente si está recibiendo una ficha o una lista y actúa en consecuencia.
La función retorna una ficha o una lista en función de lo que recibe en el primer parámetro. Si
recibe una ficha retorna la nueva ficha generada (Objeto de clase VRegister) si recibe una lista
retornará una lista con los nuevos registros generados (Objeto de la clase VRegisterLst).
Los parámetros
La función utiliza 3 parámetros. Todos ellos son obligatorios, aunque algunos admiten recibir una
valor nulo o vacío. Son los siguientes:
1. Origen: Objeto de la clave VRegister (ficha o registro) o VRegisterList (lista de registros).
Debemos pasar algún registro en ambos casos. Si pasamos una lista, aunque sea de un
registro se devolverá una lista con el nuevo registro generado.
2. szTablaDestinoIdRef: Todas las tablas tienen un “IdRef”, es decir un identificador de
referencia que se forma con la siguiente estructura “Alias/Identificador”, el alias del
proyecto y el identificador de la tabla. Si queremos lanzar un tubo para duplicar registros,
es decir, que la tabla de origen y destino sea la misma tenemos 2 opciones, una es
especificar explícitamente el idRef y la segunda es dejar el parámetro vacío (“”),
comillas­comillas, de esa forma la función se encargará de asumir que la tabla de destino
es la misma que la que tenga el registro o lista de registros de origen.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
3. aCapilaresParam: Este parámetro debe ser un array que incluya la lista de los capilares
a traspar entre la tabla de origen y la tabla de destino. Cada capilar es un objeto JSON que
consta de 2 datos: el origen y el destino. Vamos a ver que podemos tener diferentes
formas de indicar esta información para ahorrarnos tiempo de programación. Opciones
para pasar capilares:
a. Campo origen y campo destino diferentes: Si los identificadores de los campos
de origen y destino son diferentes se utilizará el formato { “origen” :
“IdCampoOrigen”, “destino” : “IdCampoDestino” }, siendo IdCampo el identificador
del campo origen y destino respectivamente. No es necesario especificar la #
como en la fórmulas V7, simplemente el identificador especificado en la propiedad
del campo, ejemplo “NOMBRE, NAME”.
también se pueden especificar en la misma línea separando cada capilar con una
coma:
b. Campo origen y campo destino iguales: Si los identificadores de los campos de
origen y destino son iguales podemos utilizar la opción anterior repitiendo el mismo
identificador en origen y destino, pero la forma más lógica de hacerlo es la
abreviada que consiste en especificar sólo el identificador de origen, ya que el tubo
JavaScript ya deduce que si no hay destino asume que el identificador del campo
destino es el mismo que el del campo origen.
c. Campos comunes: Si deseamos especificar que de forma automática se pasen
todos los campos cuyos identificadores sean igual en la tabla de origen y la tabla
de destino podemos usar el capilar especial “*” (Asterisco). Este capilar es
procesado por la función que se encarga de leer los campos de ambas tablas y
crear los capilares de aquellos campos cuyo identificador exista en la tabla origen
y destino, teniendo en cuenta que sólo se generan capilares de campos que
tengan persistencia en disco. No se crean capilares de campos fórmula o
punteros sin ocupación en disco. Este tipo de capilar puede combinarse con
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
cualquiera de los otros. Lo que sí debemos tener en cuenta es el orden, es decir,
si ponemos primero este capilar pero luego utilizamos otro capilar manual sobre
alguno de los campos que se capilarizaron de forma automática, al pasar los
datos quedará siempre el valor del último capilar ejecutado.
d. Fórmula JavaScript: Es posible pasar como capilar una fórmula JavaScript. La
función se encargará de ejecutarla y dejar el cálculo de la función en el campo de
destino. La función y el capilar pueden definirse de 2 formas como vamos a ver a
continuación:
Podemos observar que en la función debemos declarar un parámetro. La función
que ejecuta el tubo ya se encarga de llamar a esta función y alimentar ese
parámetro con el registro de entrada. Una vez finalizados los cálculos debemos
retornar el valor calculado.
Modo (A): Función externar al capilar. Es similar a la imagen anterior, es decir
declaramos una variable que contiene la función y esa variable es la que
especificamos en el capilar de origen. Se corresponde con la línea 71 de la
siguiente imagen.
Modo (B): Función declarada en el capilar. Lo podemos ver en la línea 72 de la
imagen anterior. En este caso el destino se especifica igual, pero el origen en lugar
de especificar una variable que contiene una función, directamente incluye la
función. Esta es una forma más rápida de especificar el capilar y es válida
siempre que la función no sea larga o tenga más de una línea, en cuyo caso es
recomendable usar el modo A (externo).
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Ejemplos de tubos de ficha y lista
1. Con capilares especificando campos origen y destino
Los nombre de las variables como aCapilares, listaRetorno o fichaRetorno pueden ser
sustituidos por cualquier identificador que desee utilizar el programador.
En todos los ejemplos se incluye un ejemplo de ejecución de tubo de ficha y tubo de lista que
como se puede apreciar se declaran exactamente igual salvo por el tipo del primer parámetro.
A modo de ejemplo se pone theRegisterListIn y theRegisterIn que se corresponden con el origen
del proceso, pero también podrían ser cualquier objeto de la clase VRegisterList o VRegister
respectivamente.
2. Con capilares declarados en la misma línea
Lógicamente, se pueden especificar en la misma línea capilares de cualquier tipo, automáticos
de campos comunes, funciones, igual identificador de campo origen que destino y combinados.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
3. Con capilares de campos que se llaman igual en origen y destino
Este mismo también se consigue con el capilar automático “*”, pero en alguna ocasión puede
interesarnos ponerlo directamente si se trata sólo de un campo.
En los ejemplos se especifican los capilares línea a línea y no todos en la misma línea para
facilitar su lectura.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
4. Combinando capilares de tipo fórmula con manuales
5. Asumiendo que la tabla destino es igual que la de origen
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
6. Capilares automáticos de campos con el mismo identificador
7. Combinando capilares automáticos, fórmula y manuales
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
¿Cómo se implementa en mi solución?
Existen 2 forma sencillas de implementar los tubos de ficha y lista JavaScript en nuestras
soluciones:
1. Heredar la solución vBase (a partir de su versión 2.5)
2. Instalar el JavaScript en uno de mis proyectos
En ambos casos una vez instalado el fichero JavaScript que contiene la función de tubo ya
podremos usarlo desde nuestros scripts. En función de donde lo tengamos instalado nos
cambiará simplemente la senda del include a efectuar.
En vBase la función está en una fichero JavaScript velneoDB.js dentro de la carpeta database
que a su vez es una subcarpeta de la principal js.
En tu solución puedes importarla donde te interese. Es recomendable instalarlo en un proyecto
que se encuentre lo más bajo posible dentro dentro del árbol de herencia.
Utilizando la opción importar fichero script (menú contextual del árbol de scripts) añadiremos a
nuestro proyecto el fichero velneoDB.js.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Ejemplo de uso
Una vez instalado podremos hacer uso de la función desde cualquier proceso o fórmula
JavaScript de nuestra aplicación. A continuación vemos un ejemplo de uso:
Los procesos JavaScript requieren que se cree un fichero de script que contendrá el código
JavaScript que vemos en la imagen superior.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Este proceso JavaScript tiene declaradas las tablas de entrada y salida para poder
posteriormente gestionar los registros creados por el tubo, así como el fichero de script que
veíamos previamente.
Si queremos usar este proceso JavaScript en tercer plano para conseguir un gran rendimiento,
simplemente debemos crear un proceso V7 que lo ejecute.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Lógicamente este proceso podría tener configurados las mismas propiedades a nivel de tabla
asociada (entrada) y tabla destino (salida)
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Velneo. Tubos de ficha y lista JavaScript
Consideraciones a tener en cuenta
En esta primera versión existe 2 tipos de campos cuyos valores no pueden ser traspasados
desde la tabla origen a destino. Son los campos de tipo objeto dibujo y objeto binario. El campo
objeto binario no dispone aún de funciones fieldTo y setField en el API para poder hacer el
traspaso. El objeto dibujo sí dispone de funciones pero debido a un bug existente en Qt que está
reportado y a la espera de resolución, aún no están operativas.
Pol. Ind. A Granxa, Edificio vCenter Telf. (+34) 902 02 02 61
Rúa D, esquina paralela 3
[email protected]
36400 Porriño (Pontevedra)
velneo.es
España
Velneo, S.A. C.I.F. A36494706 Inscrita en el Reg Mercantil de Pontevedra al tomo 3085, Libro 3085, Folio 90, Hoja PO­37578, Inscr 1ª
Descargar