Capitulo VIII
Procesos y funciones
Para la confección de este capítulo se ha utilizado la versión 7.2.1.8377 de vDevelop y teniendo esto en cuenta, es posible (casi seguro), que hay diferencias entre este asistente y el que pueda estar utilizando actualmente, ya que Velneo hace públicas las nuevas versiones cada 4 meses.
¿Que son y para que sirven los procesos?
Un proceso es una lista de sentencias o instrucciones que se ejecutan en orden secuencial y que nos permiten realizar tareas completas con la base de datos, tareas que no son posible realizarlas desde la propia Caja de datos, en la misma estructura de tablas.
Como todos los objetos en V7, los procesos tienen una Entrada y una Salida. La Entrada puede ser de tipo Ficha, Lista o Sin origen y la Salida dependerá del resultado del proceso.
En esta ocasión creo que es más útil que veas el V.T. Antes de comenzar a leer todas las sentencias disponibles para los procesos y utilices la información que se detalla a continuación para hacerte una idea de las posibilidades que tienen
• V.T. Los procesos
• V.T. Las funciones de usuario
8 .1. Procesos y funciones
Antes de comenzar a explicar las diferentes sentencias que vamos a poder utilizar en los procesos y funciones, creo que se hace necesario escribir unas lineas indicando el modo de operar con el editor de procesos que nos muestra la siguiente apariencia:
En la barra superior del editor, tenemos las opciones necesarias para agregar, insertar (en Azul) o eliminar lineas (en Rojo) en los procesos (en la parte izquierda), para comentar (en Verde) y a la derecha los botones para expandir y contraer las ramas/bifurcaciones del proceso que se esta editando
Los iconos de la barra superior en edición de procesos, se enumeran como sigue:
–
La linea azul inferior, permite añadir lineas al final del proceso
–La linea azul media, permite insertar lineas en la posición actual
–
La linea roja media, se utiliza para eliminar lineas del proceso (voy a aclarar que si borramos una linea de un proceso también se eliminan todas las lineas que cuelgan de la linea eliminada)
–
La linea verde media, permite comentar las lineas de proceso. Las lineas comentadas son omitidas en ejecución.
–
Expandir todo el árbol,
–Contraer todo el árbol,
–Expandir rama,
–Contraer rama,
–
Seleccionar todo, marca todas las lineas para poder realizar operaciones como
Cortar / Copiar
Al momento de escribir estas lineas debo indicar que hecho en falta únicamente entre estas opciones, las correspondientes a Retroceder (Deshacer) y Avanzar (Rehacer).
En la parte inferior, tenemos la instrucción de la linea que estamos editando en cada momento y que podemos modificar escribiendo sobre el Edit de la Instrucción. Ademas, sobre el edit se nos muestra en todo momento cual es el origen de la linea editada
Si pulsamos sobre la flecha azul del panel inferior, situada junto al Edit de la sentencia, podemos desplegar un cuadro con la lista de sentencias que podemos utilizar en los procesos.
Y podemos seleccionar la sentencia desde el propio cuadro y recuperarla pulsando el botón ACEPTAR.
Ahora que ya conocemos el editor de procesos, vamos a ver aquí un resumen con todas las
instrucciones propias de procesos:
Aunque se han descrito en este apartado, todas las instrucciones correspondientes a los procesos en Velneo, no he pretendido en ningún momento convertir este libro en un manual de referencia. Para conocer mas detalles sobre las siguientes instrucciones, debe dirigirse al manual oficial de la aplicación. En este libro nos vamos ha centrar mas en explicar algunos ejemplos de forma detallada, viendo el funcionamiento de cada instrucción dentro de un proceso real.
Antes de comenzar a explicar las instrucciones de procesos, debo aclarar también, que la forma de programar los procesos es exactamente la misma, ya se trate de Procesos en las cajas de datos o de aplicaciones, de Eventos de tabla o triggers, o de Eventos en los formularios, ya que todos se programan de la misma forma.
En el margen superior derecho de cada sentencia, podemos observar cual es el origen de la sentencia y cual es el destino.
Origen: Cualquiera / Ficha / Lista – Destino: Ninguno / Ficha / Lista Esto es importante por varias razones:
–
Si el origen no es el apropiado, las sentencias no estarán activas en el editor de procesos
–
Dependiendo del origen y del destino de un proceso, podremos utilizarlo a la hora de
lanzar acciones o encadenar objetos dentro de una misma acción.
API de Velneo
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno APIVEL: Get nombre de campo por identificador
Devuelve la descripción del campo, pasándole como parámetro en identificador (#CODIGO) del mismo.
APIVEL Campo nombre por identificador -> , CODIGO, retorno La variable local ‘retorno’ devolverá: Código.
Origen: Cualquiera – Destino: Ninguno APIVEL: Get nombre de campo por número
Devuelve la descripción del campo, pasándole el número de posición que ocupa en la tabla. Los campos se numeran siempre a partir de 0.
Origen: Ficha – Destino: Ninguno APIVEL: Get campo por número
Obtiene el contenido de un campo identificado por el numero de posición que ocupa en la tabla.
Origen: Cualquiera – Destino: Ninguno APIVEL: Get número de campo por identificador
Devuelve el numero del campo que le pasamos como identificador.
APIVEL: Get número de campos
Devuelve el numero de campos de la tabla que le pasamos como identificador.
Origen: Ficha – Destino: Ninguno APIVEL: Modificar campo por número
Permite modificar el contenido de un campo por medio de su identificador numérico.
Arrays
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Array: Eliminar todos
Elimina todos los elementos de un array.
Origen: Cualquiera – Destino: Ninguno Array: Eliminar item
Elimina un item del array.
Origen: Cualquiera – Destino: Ninguno Array: Get tamaño
Obtiene el numero de elementos que forman un Array.
Origen: Cualquiera – Destino: Ninguno Array: Insertar item
Inserta un ITEM dentro del array declarado.
Origen: Cualquiera – Destino: Ninguno Array: Ordenar
Permite ordenar alfabéticamente todos los elementos de un array. Todas las sentencias de ordenación de Arrays, se pueden utilizar para ordenar de forma Ascendente o Descendente.
Origen: Cualquiera – Destino: Ninguno Array: Set
Permite asignar un valor a elemento del array.
Bases de datos externas
Velneo 7.2.1.8377
Origen: Cualquiera – Destino: Ninguno BD: Conectar
Establece una conexión con una base de datos externa.
Origen: Cualquiera – Destino: Ninguno BD: Finalizar recorrer lista sin procesar más filas
Permite interrumpir un bucle generado para la lectura de registros en una base de datos externa.
Origen: Cualquiera – Destino: Ninguno BD: Get dato de columna por nombre
Devuelve el contenido de una columna cuyo nombre le indicamos en el parámetro.
Origen: Cualquiera – Destino: Ninguno BD: Get dato de columna por número
Esta sentencia es similar a la anterior, pero el parámetro indicado para obtener el contenido, es el número de la columna.
Origen: Cualquiera – Destino: Ninguno BD: Get nombre de columna por número
Como su nombre indica, nos devuelve el nombre de la columna que indicamos en el parámetro.
Origen: Cualquiera – Destino: Ninguno BD: Get numero de columnas
Permite conocer el número de columnas obtenidas tras la ejecución de una consulta en la base de datos.
Origen: Cualquiera – Destino: Ninguno BD: Recorrer lista
Esta sentencia permite recorrer todos los registros de una lista, como resultado de la ejecución de una consulta en la base de datos.
Origen: Cualquiera – Destino: Ninguno BD: Crear manejador
Crea un manejador “handle” para poder usarlo con el resto de las sentencias de bases de datos externas.
Al crear el manejador, debemos indicar cual es el driver utilizado para dicha conexión y actualmente podemos establecer: ODBC, PostgreSQL y SQLite.
Origen: Cualquiera – Destino: Ninguno BD: SQL
Ejecuta una sentencia SQL y si procede, devuelve las filas afectadas por la sentencia
Básicas
Los iconos te permitirán identificar fácilmente el tipo de sentencia que corresponde a cada linea de un proceso. En esta imagen podemos ver los iconos mas frecuentes en cualquier proceso ya que corresponden a las instrucciones de flujo del proceso.
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Libre
Línea vacía, no se procesa.
Origen: Cualquiera – Destino: El mismo del origen For
Bucle o repetición de todas las sentencias anidadas en su interior. Entre los parámetros que debemos indicar en esta sentencia, están un Identificador de variable local, un valor inicia o formula para el valor inicial, una condición para que continúe la siguiente repetición, y un valor a incrementar para cada repetición que se produzca.
Origen: Cualquiera – Destino: Ninguno Rem
Línea de comentario, no se procesa. En cualquiera de los ejemplos anteriores, se muestra el uso de esta sentencia. Permite al programador, realizar anotaciones para recordar o explicar el uso de las sentencias de un proceso a quien pueda necesitarlo posteriormente.
Origen: Cualquiera – Destino: El mismo del origen If
Sentencia condicional. Todas las instrucciones anidadas en esta sentencia se ejecutan cuando la condición es verdadera Condición=True
Origen: Cualquiera – Destino: El mismo del origen Else
En esta instrucción se ejecutaran todas las sentencias anidadas cuando la condición del IF previo, sea falsa Condición=False
Origen: Cualquiera – Destino: El mismo del origen Else if
Esta sentencia permite crear condiciones múltiples, siempre precedida de IF como condición inicial a verificar.
Origen: Cualquiera – Destino: Ninguno Mensaje
Muestra un mensaje en la pantalla. El mensaje puede ser una simple cadena de texto o el resultado de una expresión del tipo Formula Alfabética.
Para los mas experimentados, y teniendo en cuenta que B_OK es una variable local de tipo “booleano”, la sentencia anterior correcta sería If( B_OK ), no siendo necesario indicar “= 1” pero, puesto que el resultado es exactamente el mismo, he querido ser un poco mas expresivo para los que se inician en el desarrollo con esta herramienta.
Origen: Cualquiera – Destino: Ninguno Modificar variable global
Modifica el valor de una variable global.
Fijate en el ejemplo, y el uso que hace de la sentencia para modificar los valores de las variables globales que serán utilizados posteriormente en la búsqueda.
Origen: Cualquiera – Destino: Ninguno Pedir dato
Muestra una ventana con un mensaje y espera la entrada de datos por parte del usuario.
Al ser una sentencia que necesita intervención por parte del usuario, es recomendable tener en cuenta que no debe ser utilizada en procesos que sean ejecutados directamente por el servidor.
Origen: Cualquiera – Destino: El mismo del origen Recorrer buffer
Se utiliza esta sentencia para recorrer todos los caracteres de una cadena, uno a uno.
Origen: Cualquiera – Destino: Ninguno Set
Permite definir ó asignar un valor a una variable local.
Mira el ejemplo para ver como asignamos el contenido de los campos
#CLIENTE y #FECHA a las variables locales ID_CLIENTE y FCH-
ALBARAN.
Velneo 7.2.1.8377
Origen: Cualquiera – Destino: El mismo del origen Pregunta
Muestra una venta con el texto correspondiente a la pregunta y los botones “SI” y
“NO” y espera a una respuesta por parte del usuario.
Proyectos de datos
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Regenerar índices de todas las tablas
Como su nombre indica, reconstruye los índices de todas las tablas.
Origen: Cualquiera – Destino: Ninguno Regenerar índices del contenedor
Realiza la misma operación, pero con los índices del contenedor de objetos.
Origen: Cualquiera – Destino: Ninguno Regenerar índices de la tabla
Regenera los índices de una sola tabla.
Cestas
Fijate en la imagen y podrás observar como algunas de las sentencias están activas y otras no. Durante la generación de un proceso, solo podrás utilizar aquellas sentencias cuyo origen corresponda con el origen de la sentencia que estés editando en ese momento, evitando así errores en la programación. Ej., si el origen de la linea que estas editando es Ficha, se desactivaran automáticamente todas las sentencias cuyo origen sea Lista.
Velneo 7.0.0.7181
Origen: Ficha – Destino: Ninguno Cesta: Agregar ficha
Esta sentencia es de origen FICHA, y agrega la ficha actual a una cesta
Origen: Lista – Destino: Ninguno Cesta: Agregar lista
Esta sentencia se de origen LISTA, y agrega todos los registros a la cesta.
Origen: Cualquiera – Destino: Ninguno Cesta: Crear cesta local
Crea una cesta local, que solo podrá ser utilizada durante la ejecución del proceso.
Origen: Ficha – Destino: Ninguno Cesta: ¿Está la ficha en la cesta?
Comprueba si la ficha actual esta en la cesta.
Origen: Cualquiera – Destino: Ninguno Cesta: Limpiar
Limpia la cesta, quitando de ésta, todos los registros que tenga en ese momento.
En el ejemplo siguiente, podemos ver como nos aseguramos de que la cesta este vacía, para comenzar un nuevo proceso de facturación.
Origen: Cualquiera – Destino: Lista Cesta: Procesar
Carga todos los registro de la cesta para poder procesarlos. Independientemente del origen, el destino es una lista con los registro de la cesta.
Origen: Ficha – Destino: Ninguno Cesta: Quitar ficha
Quita la ficha seleccionada de la cesta.
Origen: Lista – Destino: Ninguno Cesta: Quitar lista
Es de origen LISTA, y quita de la cesta todos los registros de la lista actual.
Origen: Lista – Destino: Ninguno Cesta: Cruzar lista
Cruza los registros de la lista actual con los registros existentes en cesta. Y como resultado, la cesta contendrá solo aquellos registros que coinciden en las dos listas.
Velneo 7.2.1.8377
Origen: Lista – Destino: Ninguno Cesta: Enviar mensaje
Con esta sentencia podemos enviar un mensaje a la barra de tareas de una cesta usada como DOCK de un MARCO.
Velneo 7.4.0.8985
Origen: Lista – Destino: Ninguno Cesta: Añadir a la lista en curso
Con ...
Origen: Lista – Destino: Ninguno Cesta: Quitar de la lista en curso
Con ...
Origen: Lista – Destino: Ninguno Cesta: Cruzar la lista en curso
Con ...
Ejemplo de utilización de una cesta, comprobando y quitando todos los registros que no tienen dirección:
Cesta: Procesar -> MAILING Recorrer lista
If -> fCampoVacio ( #DIRECCION ) Cesta: quitar ficha -> MAILING
Configuración del sistema
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Configuración del sistema: Eliminar entrada
Permite eliminar una entrada del fichero de configuración del sistema
Origen: Cualquiera – Destino: Ninguno Configuración del sistema: Leer número entero
Permite leer un valor numérico de una entrada del fichero de configuración del sistema
Origen: Cualquiera – Destino: Ninguno Configuración del sistema: Leer cadena de texto
Lee una cadena de una entrada del fichero de configuración del sistema
Origen: Cualquiera – Destino: Ninguno Configuración del sistema: Escribir número entero
Permite escribir un valor numérico en una entrada del fichero de configuración del sistema
Origen: Cualquiera – Destino: Ninguno Configuración del sistema: Escribir cadena de texto
Nueva ……….
* Este grupo (llamado anteriormente Registro de Windows) ha cambiado su nombre por tratarse de una herramienta multiplataforma.
Ejecución
Velneo 7.0.0.7181
Cerrar instancia
Cierra una instancia de una aplicación en ejecución.
Cerrar ventana
Cierra la ventana activa en ese momento (Formulario, Rejilla, Menú, etc... )
Ficha y campos
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ficha Alta de ficha
Crea una ficha en una tabla. Esta sentencia sustituye a la anterior ALTA DIRECTA.
Esta sentencia se utiliza normalmente en combinación con la sentencia Preparar ficha. La sentencia Alta de ficha, si que genera transacción. Además, en este momento ya podemos recuperar cualquier dato del registro creado, como el
%CODIGO, para poder utilizarlo en cualquier otra tabla como enlace.
Al tener separado en esta nueva versión, la preparación de la ficha de la creación de la misma, podemos optimizar mas aun el código, pudiendo cancelar o condicionar el Alta, si fuera necesario.
Origen: Ficha – Destino: Ficha maestra Alta de ficha de maestro con formulario
Esta sentencia, realiza un alta en la tabla declarada como maestra y muestra un formulario de petición de datos. La ejecución del proceso no continua hasta que el usuario cierra el formulario. Debemos tener cuidado de no utilizar estas sentencias cuando los procesos se ejecutan en 3er plano.
Origen: Ficha – Destino: Ninguno Comprobar formula dinámica
Comprueba si la formula dinámica que ha escrito el usuario es correcta ó no.
Origen: Ficha – Destino: Ninguno
¿Ya existe en el índice?
Comprueba si existe la clave actual en el índice de clave única especificado. Y como resultado retorna un valor True (1) ó False (0).
Origen: Ficha – Destino: Ninguno
¿Ya existe en alguno de sus índices de clave única?
Comprueba si la ficha actual existe en alguno de los índices de clave única de la tabla.
Origen: Ficha – Destino: Ninguno Exportar binario
Permite almacenar en disco el contenido de un campo objeto de tipo binario.
Exportar binario -> FICHERO, d + “\\Archivos\\” + #ID-FICHERO, bOk If -> !‘bOk’
Mensaje -> “No se ha podido exportar el fichero”, 5
Origen: Ficha – Destino: Ninguno Exportar dibujo
Permite guardar en disco un objeto de tipo dibujo y así poder utilizarlo con otras aplicaciones externas.
Origen: Ficha – Destino: Ninguno Exportar texto
Permite exportar cualquier campo de tipo alfabético, objeto texto o el contenido de una formula alfabética y guardarlo en un fichero de texto en disco.
Origen: Ficha – Destino: Ninguno Get campo
Esta instrucción devuelve el contenido de un campo sin evaluar la fórmula que contenga. Es útil por ejemplo para obtener por proceso la fórmula especificada por un usuario en un campo del tipo fórmula dinámica.
Origen: Ficha – Destino: Ninguno
¿Ha cambiado el campo?
Comprueba si el campo indicado de la ficha actual ha sufrido alguna modificación.
Retorna un valor True (1) ó False (0).
Origen: Ficha – Destino: Ninguno
¿Ha cambiado la ficha?
Comprueba si alguno de los campos de la ficha actual, ha sido modificado. Retorna un valor True (1) ó False (0).
Origen: Ficha – Destino: Ninguno Importar binario
Permite almacenar dentro de un objeto binario, cualquier tipo de archivo.
Origen: Ficha – Destino: Ninguno Importar dibujo
Con esta instrucción podemos importar cualquier imagen del disco y almacenarla dentro de un objeto de tipo dibujo.
Origen: Ficha – Destino: Ninguno Importar texto
Permite importar el contenido de un objeto de texto y almacenarlo en un campo alfabético o en un objeto texto.
Origen: Ficha – Destino: Ficha maestra Leer ficha de maestro
Con origen ficha, permite leer la ficha de un maestro enlazado a la tabla actual. El destino sigue siendo de FICHA. La ficha es abierta en modo de solo lectura, por lo que no podremos realizar modificaciones en ella.
Origen: Ficha – Destino: Ninguno Limpiar campo objeto
Elimina el contenido de un campo objeto de la ficha actual, lo deja vacío.
Origen: Ficha – Destino: Ninguno Modificar campo
Modifica el contenido de un campo.
Si queremos vaciar el contenido de un campo alfabético le asignaremos el valor “”, y para vaciar un campo numérico podemos asignarle “” ó 0.
Aquí tenemos un ejemplo del uso de la sentencia MODIFICAR CAMPO para signar los valores y crear un nuevo registro, el primer parámetro de esta sentencia es el Campo a modificar, y el segundo, la expresión que permite calcular el valor a introducir, en este caso es una variable local.
Origen: Ficha – Destino: Ficha maestra Modificar ficha de maestro
Es igual que LEER FICHA DE MAESTRO, pero la ficha es abierta en modo de Lectura/Escritura, y por tanto podemos modificar campos en su interior.
Origen: Ficha – Destino: Ninguno Pedir formulario
Muestra un formulario de entrada de datos para una ficha de la tabla actual.
Origen: Ficha – Destino: Ninguno Crear copia de ficha en memoria
Esta sentencia permite crear una copia de la ficha actual en memoria, permitiéndonos así modificar sus datos sin que esto afecte a la ficha original.
Ademas, si al finalizar necesitamos guardar la nueva ficha generada, podemos hacerlo con la sentencia ALTA DE FICHA()
Origen: Cualquiera – Destino: Ficha Crear nueva ficha en memoria
Permite definir y trabajar con los campos de una ficha antes de proceder al Alta de ficha o ejecutar la sentencia Tubo de ficha. Esta sentencia equivale al PRE del ALTA DIRECTA de las versiones 6.x y anteriores, aunque, a diferencia de ella, Crear nueva ficha en memoria no genera transacción. Ademas, entre otras cosas, también podemos comprobar si existe la ficha por alguno de sus indices de clave única, antes de proceder a generar el registro en la base de datos.
Mira en este ejemplo como Crear nueva ficha en memoria( ) es utilizada para asignar los valores a los campos, pero la transacción no se realiza hasta que le procesa la sentencia Alta de ficha( )
Origen: Cualquiera – Destino: Ficha Procesar ficha en memoria
Permite procesar una ficha de manera local al proceso que la utiliza, esto quiere decir que la ficha será eliminada al finalizar el proceso. Esta ficha debe haber sido creada previamente mediante las sentencias CREAR NUEVA FICHA EN MEMORIA o CREAR COPIA D EFICHA EN MEMORIA.
Para poder guardar el contenido de esta ficha, debemos utilizar el comando ALTA DE FICHA()
Origen: Ficha – Destino: Ninguno Get atributos de dibujo
Con esta sentencia, podemos conocer los atributos de una imagen guardada en un campo de tipo Objeto Dibujo. Para ello necesitamos pasarle el indicador del campo #DIBUJO del que queremos saber los atributos y las variables donde nos retornara el ancho (X) y el alto (Y) en pixels de la imagen y también el tamaño en bytes de la imagen.
Origen: Ficha – Destino: Ninguno Editor de dibujos
Abre el editor de dibujos de Velneo para editar la imagen contenida en el campo #DIBUJO.
Al finalizar la edición del dibujo, debemos Aceptar la venta de edición para
que los cambios sean guardados en la ficha. Tambien debemos tener en
cuenta que para que los cambios sean guardados, la ficha debe estar abierta
en modo lectura/escritura, ya sea con la sentencia MODIFICAR FICHA
SELECCIONADA o también mediante RECORRER LISTA
LECTURA/ESCRITURA.
Ficheros y directorios
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Cambiar directorio por defecto
Permite establecer la senda o carpeta por defecto que se utilizara para la instancia de la aplicación en ejecución.
Origen: Cualquiera – Destino: Ninguno Copiar fichero
Realiza una copia de un fichero en disco.
Origen: Cualquiera – Destino: Ninguno Crear directorio
Crea una carpeta en el disco, según la ruta (path) indicada o en la ruta actual por defecto.
Origen: Cualquiera – Destino: Ninguno Eliminar directorio
Elimina una carpeta del disco según la senda que indicamos como parámetro. Para poder eliminar la carpeta, debe estar completamente vacía.
Origen: Cualquiera – Destino: Ninguno Renombrar directorio
Permite cambiar el nombre a una carpeta del disco.
Origen: Cualquiera – Destino: Ninguno Eliminar fichero de disco
Como su nombre indica, elimina un fichero del disco.
Origen: Cualquiera – Destino: Ninguno Renombrar o mover fichero
Con esta sentencia, podemos cambiar el nombre a un fichero del disco y/o moverlo a otra carpeta diferencie si es necesario. Si la senda de origen y la senda de destino son iguales, únicamente cambiamos el nombre al fichero. Pero, si las sendas de origen y destino son diferentes, el fichero sera movido a otra carpeta.
Origen: Cualquiera – Destino: Ninguno
¿Existe fichero?
Comprueba si existe el fichero que le pasamos como parámetro. Retorna un valor True (1) ó False (0).
Origen: Cualquiera – Destino: El mismo del origen Fichero: Abrir
Abre un fichero de texto para grabar o leer datos.
En este ejemplo, podemos ver el uso de varias de las sentencias de este apartado, y como construir un proceso para leer un fichero de texto para incorporar los registros a una tabla.
En el proceso podemos observar como, tras localizar el archivo, lo abrimos Fichero:
Abrir( ) en modo Solo-Lectura, y mediante un bucle y la sentencia Fichero: Leer linea( ) para procesar cada una de las lineas del fichero, creamos los registros en la tabla de destino.
Origen: Cualquiera – Destino: El mismo del origen Fichero: Grabar línea
Graba una línea de texto dentro de un fichero abierto en modo lectura/escritura.
Origen: Cualquiera – Destino: El mismo del origen Fichero: Leer línea
Lee una línea de un fichero de texto.
Origen: Cualquiera – Destino: Ninguno Get atributos del fichero
Nos muestra los atributos básicos de un fichero.
Origen: Cualquiera – Destino: Ninguno Get permisos del fichero
Nueva ……….
Origen: Cualquiera – Destino: Ninguno Set permisos del fichero
Nueva ……….
Origen: Cualquiera – Destino: Ninguno Get accesibilidad del fichero
Nueva ……….
Origen: Cualquiera – Destino: Ninguno Get propiedades del fichero
Nueva ……….
Origen: Cualquiera – Destino: Ninguno Recorrer directorio
Recorre todos los elementos de una carpeta, y genera un subproceso para cada elemento retornando la senda completa de cada elemento.
Origen: Cualquiera – Destino: Ninguno Ventana de selección de fichero
Presenta en pantalla una ventana de dialogo para que el usuario pueda elegir un fichero, y devuelve la senda completa del fichero seleccionado.
Origen: Cualquiera – Destino: Ninguno Ventana de selección de directorio
Presenta en pantalla una ventana de dialogo con la senda por defecto, para que el usuario pueda elegir una nueva carpeta.
Internet
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Get fichero de URL
Descarga un fichero de una URL y lo guarda en disco. Para ello necesitamos indicar la URL de origen del fichero a descargar y la Senda de destino para guardar la copia del fichero.
Internet: Conectar
Nueva ……….
Internet: Desconectar
Nueva ……….
Internet: Get estado conexión
Nueva ……….Listas
Velneo 7.0.0.7181
Origen: Lista – Destino: Ninguno Cortar lista
Como su nombre indica, corta una lista de X registros, dando como resultado una lista de igual o menor tamaño que la lista original. El primer registro de la lista resultante sera el indicado por 'nInicial' y 'nRegs' nos indica el nº máximo de registros que tendrá la lista resultante.
Cargar lista -> ARTICULOS, CODIGO, , , , , Cortar lista, nPosicionIni, nRegs Añadir lista a la salida
Entre las posibilidades que nos permite esta sentencia, puede estar la opción de poder paginar listas de registros.
Origen: Lista – Destino: Ninguno Filtrar lista
Permite establecer condiciones para filtrar los registros que cumplen las condiciones establecidas. El resultado es una lista con los registros que cumplen las condiciones.
Cargar lista -> ALBARANES , CLIENTES
Filtrado de lista -> (#EJERCICIO=2009) & ( ! #FACTURADO ) Añadir lista a la salida
Recuerdo que es preferible utilizar las búsquedas, ya que estas utilizan los índices, y los filtros son ejecutados de forma secuencial, y por tanto, mas lentos y consumen más recursos del sistema.
Origen: Lista – Destino: Ninguno Invertir lista
Invierte el orden de los registros de la lista actual. En una lista que estuviera ordenada alfabéticamente de la A a la Z, el resultado seria una lista ordenada de la Z a la A.
Este ejemplo nos muestra como INVERTIR LISTA se usa para cargar la lista de clientes alfabéticamente (A - Z) y cambiar el orden (de la Z a la A) antes de retornar la lista resultante.
Origen: Lista – Destino: Lista Multipartir lista
Divide una lista en multitud de listas con todos los registros que tienen en común el campo utilizado para partir la lista. Previamente a utilizar ésta instrucción, la lista debe estar ordenada por el campo que vamos a utilizar para partirla.
En el ejemplo podemos ver parte de un proceso que calcula un balance, y para ello ordena la lista de registros previa y hace uso de la sentencia MULTIPARTIR( ) para poder calcular el resultado de cada una de las Cuentas por separado.
Origen: Lista – Destino: Ninguno Ordenar lista
Ordena una lista por los campos indicados. Hay que decir, que la ordenación se produce secuencialmente, por lo que es mas lenta que si utilizamos una búsqueda.
Puedes observar el ejemplo anterior para ver como ésta sentencia ordena los registros de una lista por cualquiera de sus campos para luego poder partir la lista por el campo de ordenación.
Origen: Lista – Destino: Ninguno Quitar ficha de la lista
Como su nombre indica, quita una ficha de la lista actual, pero no elimina el registro de la base de datos. Como resultado, seguiremos teniendo la misma lista pero con un elemento menos.
Origen: Lista – Destino: Ficha Recorrer lista eliminando fichas
Elimina todas las fichas de la lista actual, y genera las actualizaciones que se producen con otras tablas enlazadas.
En este ejemplo podemos observar como, para eliminar las fichas de una lista de registros, primero debemos eliminar todos sus históricos.
Origen: Lista – Destino: Ficha Recorrer lista eliminando fichas sin desactualizar
Elimina todas las fichas de la lista actual, pero en este caso no genera las actualizaciones correspondientes.
Origen: Lista – Destino: Ficha Recorrer lista lectura/escritura
Con origen de lista, recorre todos los registros de la lista en modo de lectura y escritura. El destino es por tanto de ficha, y en el interior, podemos modificar cualquier campo de la ficha actual.
Origen: Lista – Destino: Ficha Recorrer lista solo lectura
Tiene la misma funcionalidad que la sentencia anterior, pero no están permitidas las modificaciones de campos, solo la lectura de los datos de la ficha actual.
En este ejemplo, utilizamos la sentencia CARGAR PLURALES( ) para cargar todas las lineas de un albarán, y calcular el importe total del albarán sumando los importes de cada una de sus lineas.
Velneo 7.2.1.8377
Origen: Lista – Destino: Ninguno Imprimir informe
Lanza un informe, con los registros de la lista actual. Como parámetro, podremos indicar a que impresora lógica enviaremos el informe.
Origen: Lista – Destino: Ninguno Añadir ficha a la lista
Permite añadir una ficha a una lista.
Listas: ficha seleccionada
Velneo 7.0.0.7181
Origen: Lista – Destino: Ficha Eliminar la ficha seleccionada
Elimina una ficha de una lista, previamente debemos seleccionar la ficha que se va a eliminar.
Origen: Lista – Destino: Ficha Eliminar la ficha seleccionada sin desactualizar
Hace exactamente lo mismo que la sentencia anterior, pero no ejecuta las actualizaciones al eliminar la ficha.
Origen: Lista – Destino: Ficha Leer ficha seleccionada
Lee una ficha de una lista, pero debemos seleccionar la ficha previamente. La ficha se abre en modo de solo lectura, por lo que no podemos hacer modificaciones en ella.
Origen: Lista – Destino: Ficha Modificar ficha seleccionada
Es igual a la sentencia anterior pero en este caso, si podemos realizar medicaciones en los campos de la ficha.
Origen: Lista – Destino: Ninguno Modificar dicha seleccionada con formulario
Sentencia igual a la anterior, pero además permite mostrar un formulario para realizar las modificaciones a través de la consola.
Origen: Lista – Destino: Ninguno Seleccionar ficha de la lista
Permite seleccionar un registro de una tabla como si se tratase de un localizador, y para ello solo tenemos que indicar la rejilla que será utilizada para visualizar el contenido de la lista de registros y una variable booleana para el retorno del OK (si se ha seleccionado ficha o no).
A diferencia del LOCALIZADOR, aquí podemos utilizar como origen de la lista a mostrar el resultado de una búsqueda o una lista obtenida por navegación de
Origen: Lista – Destino: Ninguno Seleccionar ficha por posición
Permite seleccionar una ficha por la posición que ocupa según la ordenación actual.
Puedes ver el uso de esta sentencia en el ejemplo anterior, correspondiente a la sentencia Leer ficha seleccionada.
Aquí tenemos un ejemplo un poco mas elaborado, para ver el uso de las sentencias SELECCIONAR FICHA POR POSICION( ) y LEER FICHA SELECCIONADA. En este caso se trata de un proceso para buscar el precio de un articulo en una tarifa de precios, de este modo nos aseguramos que se utiliza el primero de los registros encontrados (en caso de que exista más de uno).
Además, cada vez debemos un complicando un poco más los ejemplos, pero
solo cuando sea necesario.
Navegante y búsquedas
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Lista Búsqueda
Ejecuta una búsqueda y el resultado es siempre una lista de registros de la tabla a la que corresponde la búsqueda. El origen de la búsqueda puede ser cualquiera, de lista, de ficha, o incluso sin origen, lo importante es el destino.
En este caso el ejemplo es muy sencillo, pero es así de simple, desde un proceso lanzamos una BUSQUEDA( ), y el resultado lo retornamos para procesarlo mediante otro objeto, aunque también podríamos quitar la sentencia AÑADIR LISTA A LA SALIDA y escribir las sentencias necesarias para procesar la lista resultante.
Origen: Cualquiera – Destino: Lista Cargar lista
Al igual que la anterior, independientemente de cual sea el origen de la sentencia, el destino será siempre una lista con todos los registros de la tabla indicada, ordenados por el índice correspondiente. Podremos utilizar formulas o expresiones para condicionar el resultado de la consulta por el indice indicado, utilizando hasta 4 condiciones y siempre en el mismo orden que los componentes del indice
Con la sentencia CARGAR LISTA( ), y mirando el ejemplo obtenemos el mismo resultado que en el ejemplo de la búsqueda, pero la búsqueda es mucho más eficiente cuando se trata de combinar indices para obtener el resultado deseado.
Origen: Lista – Destino: Lista maestra Cargar maestros
Con origen en una lista de registros, carga los registros de una tabla enlazada como maestra de la tabla actual. Así pues, el resultado es una lista de registros.
Origen: Ficha / Lista – Destino: Lista Cargar plurales
Con origen de ficha ó lista, carga los registros de uno de los históricos de la tabla actual. El retorno, siempre sera una lista de registros correspondiente a la tabla histórica.
Un ejemplo de cargar plurales es este, desde una Ficha de factura, cargamos las lineas de venta y retornamos el resultado. Este tipo de proceso es usado muy frecuentemente en los formularios para mostrar los registros de una tabla histórica mediante un Control Objeto.
Origen: Cualquiera – Destino: Ficha Localizador
Muestra un localizador para elegir una ficha de forma manual por el usuario.
Objetos
Velneo 7.3.0.8651
Origen: Cualquiera – Destino: Ninguno Crear manejador de objetos
Esta ...
Origen: Cualquiera – Destino: Ninguno Disparar objeto
Esta ...
Origen: Cualquiera – Destino: Ninguno Get variable local de objeto
Esta ...
Origen: Cualquiera – Destino: Ninguno Set variable local de objeto
Esta ...
Origen: Cualquiera – Destino: Ninguno Añadir ficha al objeto
Esta ...
Origen: Cualquiera – Destino: Ninguno Añadir lista al objeto
Esta ...
Procesos
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Deshacer transacción
Esta sentencia deshace todas las transacciones realizadas por el proceso actual y por todos los subprocesos de este. Por tanto, debemos tener mucho cuidado con esta sentencia.
(Velneo:
Si desde un proceso que transacciona disparamos un subproceso y en éste deshacemos transacción, serán deshechas todas las transacciones realizadas tanto en el proceso principal como en el subproceso. Si desde un proceso que no transacciona disparamos varios subprocesos que transaccionan y en uno de ellos deshacemos transacción, solamente serán deshechas la transacciones de ese subproceso, no las del resto.
)Origen: Cualquiera – Destino: El mismo del origen / La salida del proceso Ejecutar proceso
Ejecuta un proceso con o sin origen. Si el proceso ejecutado no tiene salida, entonces la salida del proceso sera la misma que el origen de la linea desde donde se ejecuta dicho proceso.
Origen: Cualquiera – Destino: Ninguno Esperar
Genera una pausa por el tiempo expresado en milisegundos. Con esta sentencia, podemos detener la ejecución del proceso, durante el tiempo indicado.
Origen: Cualquiera – Destino: Ninguno Finalizar proceso
Finaliza un proceso, es decir, las sentencias que haya a partir de esta sentencia, no serán ejecutadas.
Origen: Cualquiera – Destino: Ninguno Cambiar porcentaje realizado del proceso
Permite modificar el porcentaje de ejecución del proceso mediante una fórmula. El resultado de la fórmula debe ser >= 0 y <= 100
Origen: Cualquiera – Destino: Ninguno Cambiar titulo de la transacción
Permite modificar el nombre del proceso en ejecución que aparece en el panel de transacciones de vAdmin y en el panel de procesos en 2º plano de vClient.
Origen: Cualquiera – Destino: Ninguno Forzar transacción
Para que un proceso genere una transacción debe contener algún comando que genere escritura en disco.
Esta sentencia puede ser muy útil para obligar a transaccionar a un proceso, cuando este no realiza escritura en disco, pero contiene sentencias que ejecutan otros procesos que si transaccionan.
De esta forma, evitamos que todas las transacciones generadas por los subprocesos, se reduzcan a una única transacción para el proceso actual.
Protocolo TCP
Velneo 7.3.0.8651
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Ejecutar funcion cliente
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar buffer
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar fichero
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar linea
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Iniciar servicio
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir fichero
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir linea
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir hasta carácter marca
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: ¿Esta iniciado el servicio?
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Terminar servicio
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Terminar todos los servicios
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar byte
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir byte
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar entero 16 bits
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir entero 16 bits
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar entero 32 bits
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir entero 32 bits
Esta ...
Velneo 7.4.0.8985
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Enviar entero 64 bits
Esta ...
Origen: Cualquiera – Destino: Ninguno Protocolo TCP: Recibir entero 64 bits
Esta ...
Retornos
Velneo 7.0.0.7181
Origen: Ficha – Destino: Ninguno Añadir ficha a la salida
Tiene origen de ficha y permite mostrar un formulario con los datos del registro actual.
Origen: Lista – Destino: Ninguno Añadir lista a la salida
Tiene origen de lista, y permite mostrar una rejilla con los registros de la lista.
Origen: Cualquiera – Destino: Ninguno Set dato de retorno del proceso
Esta sentencia permite enviar un valor de retorno desde un proceso al proceso el que ha sido llamado.
Cuando desde el PRODESO_1, utilizamos la sentencia EJECUTAR PROCESO para llamar al PROCESO_2, este último puede retornar un valor al finalizar su ejecución mediante esta sentencia.
Origen: Cualquiera – Destino: Ninguno Set retorno proceso = NO
Cada vez que se ejecuta un proceso, por defecto, retorna el valor True (1) como retorno a su ejecución. Con esta sentencia podemos cambiar el valor, y devolver False (0) indicando que el proceso no se ha finalizado correctamente.
SDV
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno SDV: Actualizar fichero en local
Esta sentencia, compara los ficheros de origen y de destino y actualiza el archivo de origen si existe alguna diferencia entre ellos. El valor de retorno de esta sentencia indica si el fichero ha sido importado ó no.
Origen: Cualquiera – Destino: El mismo del origen SDV: Conectar
Esta nueva sentencia en v7, permite establecer una conexión y autentificar el usuario y la clave de acceso del usuario que se conecta. Una vez establecida la conexión, podemos realizar tantas operaciones con el servidor como sean necesarias
Origen: Cualquiera – Destino: Ninguno SDV: Eliminar fichero en el servidor
Esta sentencia elimina un fichero del servidor de disco de Velneo. Es importante que nos aseguremos de pasarle el nombre del fichero a eliminar, ya que si le pasamos el parámetro vacío, se eliminaría la carpeta completa con todos los documentos que contenga.
Origen: Cualquiera – Destino: Ninguno SDV: Subir fichero al servidor (Exportar fichero)
Exporta un fichero a un servidor de disco de Velneo.
Fijaos que en la ruta de acceso al servidor la barra utilizada es “/” y se comienza la cadena sin barras.
Origen: Cualquiera – Destino: Ninguno
SDV: Descargar fichero a local (Importar fichero)
Permite importar un fichero a un servidor de disco de Velneo.
En el ejemplo anterior, podemos ver como en la primera sentencia de Importar fichero, se utiliza el parámetro
“C:\\Copia\\Fich-1.dat”y en la segunda sentencia se utiliza el parámetro
“C:/Copia/Fich-2.dat”, y es porque en los sistemas Windows esta permitido el uso de los dos formatos para indicar una senda de acceso a un fichero. Si utilizamos el 2º formato, V7 realiza la conversión de la cadena al sistema Windows, de forma automática. No obstante, aconsejamos utilizar siempre la 2ª forma, ya que es valida para cualquiera de los sistemas operativos permitidos por V7.
Origen: Cualquiera – Destino: Ninguno SDV: Renombrar o mover fichero en el servidor
Esta instrucción, permite cambiar el nombre a un fichero del servidor de disco de Velneo.
* Las funciones SDV son validas únicamente para la versión cliente/servidor.
Origen: Cualquiera – Destino: Ninguno SDV: Get atributos del fichero en el servidor
Esta sentencia nos devuelve los atributos del fichero cuya Senda le pasamos como parámetro.
Entre los atributos del fichero retornados esta:
• Fecha de la última modificación del fichero
• Hora de la última modificación del fichero
• Tamaño en bytes del fichero
• Indica si la senda es un directorio: true (1) / false(0)
• y por ultimo retorna true (1) / false(0) si se ha podido realizar la operación.
Seguridad
Velneo 7.1.0.7728
Origen: Cualquiera – Destino: Ninguno Reducir nivel de privilegio del usuario en esta ejecución
Esta ...
Sistema
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Ejecutar comando del sistema
Ejecuta un comando o aplicación del sistema operativo que tengamos instalado en el equipo. Debemos tener cuidado con esta sentencia, ya que la nueva versión es multiplataforma.
Origen: Cualquiera – Destino: Ninguno Ejecutar documento
Ejecuta un documento, siempre que este tenga asociado una aplicación para editar el archivo.
Origen: Cualquiera – Destino: Ninguno Emitir sonido
Emite un pitido por el altavoz del sistema.
Origen: Cualquiera – Destino: Ninguno Get estado de la memoria física del sistema
Nueva ……….
Origen: Cualquiera – Destino: Ninguno Lanzar aplicación
Ejecuta una aplicación externa.
Origen: Cualquiera – Destino: Ninguno Reproducir sonido
Reproduce un archivo de sonido con extensión multimedia.
Origen: Cualquiera – Destino: Ninguno Set fecha y hora del sistema
No funciona actualmente ...
Velneo 7.4.0.8985
Origen: Cualquiera – Destino: Ninguno Salir de la aplicacion
Esta ...
Tubos
Velneo 7.0.0.7181
Origen: Ficha – Destino: Ficha Tubo de ficha
Tiene origen de ficha y genera un tubo para copiar registros de una tabla a otra, indicando los campos que se copiaran de forma automática y permitiendo indicar el contenido de otros campos, por medio de valores fijos o fórmulas.
Origen: Lista – Destino: Lista Tubo de lista
Ejecuta un tubo de lista. Es decir, genera tantos registros en la tabla de destino como registros existen en la tabla de origen. Solo los campos introducidos como capilares son copiados de la tabla de origen a la de destino. El resto de los campos de destino, tendrán el contenido inicial de los mismos o estarán vacíos.
Origen: Lista – Destino: Lista Tubo de lista inducido
Funciona de la misma manera que el TUBO DE LISTA, pero en esta ocasión le podemos pasar como parámetro un registro almacenado en memoria con GUARDAR FICHA.
Scripts
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Script: Crear interprete
Crear un interprete para permitir la ejecución de código ECMAScript (JavaScript, Jscript).
Origen: Cualquiera – Destino: Ninguno Script: Set property
Permite crear una variable y asignarle un valor para ser utilizada durante la ejecución del Script.
Origen: Cualquiera – Destino: Ninguno Script: Evaluar interprete
Evalúa el código de un Script. Al finalizar, retorna el resultado del Script y si se produce algún error durante la ejecución del mismo, entonces, retorna el código de error y la descripción en ingles.
Para ello, primero debemos crear el código con la sentencia
Script: Crear interprete y posteriormente definir las variables con Script: Set property.
Que mejor que el propio ejemplo de vScriptRunner del Catalogo de aplicaciones de Velneo para mostrar el uso de las sentencias de Script en un proceso
El proceso tiene como origen un registro/ficha.
En primer lugar, vemos como se Crea el interprete y le asignamos un manejador (Handle).
A continuación se cargan las variables del Script, que están en una tabla histórica de la actual, y mediante Set property, les asignamos un valor.
Por último, Evaluamos el interprete cuyo código está almacenado en una campo
del registro actual y mostramos un mensaje con el resultado de la ejecución.
Interfaz
Las sentencias de Interfaz permiten trabajar con subobjetos y solo pueden ser lanzadas desde los eventos correspondientes a los propios objetos.
Velneo 7.0.0.7181
Origen: Cualquiera – Destino: Ninguno Interfaz: Mostrar objeto
Permite visualizar un control (subobjeto) perteneciente al objeto desde donde se ejecuta el evento.
Origen: Cualquiera – Destino: Ninguno Interfaz: Ocultar objeto
Oculta un control (subobjeto) perteneciente al objeto desde donde se ejecuta el evento.
Origen: Cualquiera – Destino: Ninguno Interfaz: Activar control
Permite activar un subobjeto desde el evento.
Origen: Cualquiera – Destino: Ninguno Interfaz: Desactivar objeto
Permite desactivar un subobjeto desde el evento.
Origen: Cualquiera – Destino: Ninguno Interfaz: Activar foco objeto
Asigna el foco del subobjeto indicado.
Origen: Cualquiera – Destino: Ninguno Interfaz: Set paleta
Permite asignar una de las paletas de colores declaradas en la caja de la aplicación o en una caja heredada.
Origen: Cualquiera – Destino: Ninguno Interfaz: Set fuente
Con esta sentencia podemos aplicar una de las fuentes instalada en la caja de aplicación o en las cajas heredadas.
Origen: Cualquiera – Destino: Ninguno Interfaz: Quitar foco
Permite quitar el foco a un subjeto.
Origen: Cualquiera – Destino: Ninguno Interfaz: ¿Esta activo?
Esta sentencia nos permite conocer el estado (activo / no activo) de un subobjeto. El retorno de esta sentencia es True / False ( 0/1 ).
Origen: Cualquiera – Destino: Ninguno Interfaz: ¿Es visible?
Esta sentencia nos permite conocer el estado (visible / oculto) de un subobjeto. El retorno de esta sentencia es True / False ( 0/1 ).
Origen: Cualquiera – Destino: Ninguno Interfaz: ¿Tiene foco?
Esta sentencia nos permite conocer si un subobjeto tiene el foco en este momento. El retorno de esta sentencia es True / False ( 0/1 ).
Origen: Cualquiera – Destino: Ninguno Interfaz: Recalcula control
Nos permite actualizar o refrescar el contenido de un Control de tipo objeto.
Origen: Cualquiera – Destino: Ninguno Interfaz: Procesar control
Permite acceder a los datos de un Control de tipo objeto para procesarlos (leer, modificar o borrar).
Origen: Cualquiera – Destino: Ninguno Interfaz: Aceptar
Esta sentencia simula la pulsación del botón Aceptar, guardando los datos de la ficha activa y cerrando el formulario.
Origen: Cualquiera – Destino: Ninguno Interfaz: Cancelar
Esta sentencia simula la pulsación del botón Cancelar, cerrando el formulario sin guardar los cambios.
Origen: Cualquiera – Destino: Ninguno Interfaz: Activar subcontrol
Permite activar un subcontrol y es especial y exclusivo para los subobjetos Separador de formularios, Caja de formularios y Pila de formularios
Origen: Cualquiera – Destino: Ninguno Interfaz: ¿Esta activo el subcontrol?
Permite conocer el estado de los subobjetos de la sentencia anterior, Es valida únicamente para Separador de formularios, Caja de formularios y Pila de formularios
Velneo 7.2.1.8377
Origen: Cualquiera – Destino: Ninguno Interfaz: Set hoja de estilo CSS
Esta sentencia permite asignar la hoja de estilo para cambiar el aspecto visual de un objeto.
Origen: Cualquiera – Destino: Ficha Interfaz: Formulario alta
Nueva...
Origen: Cualquiera – Destino: Ficha Interfaz: Formulario baja
Nueva...
Origen: Cualquiera – Destino: Ficha Interfaz: Formulario modificación
Nueva...
Velneo 7.4.0.8985
Origen: Cualquiera – Destino: Ninguno Interfaz: activar subcontrol
Esta ...
Origen: Cualquiera – Destino: Ninguno Interfaz: obtener multi-seleccion
Esta ...
Origen: Cualquiera – Destino: Ninguno Interfaz: liminar multi-seleccion
Esta ...
Origen: Cualquiera – Destino: Ninguno Interfaz: añadir ficha a multi-seleccion
Esta ...
Origen: Cualquiera – Destino: Ninguno Interfaz: quitar ficha de multi-seleccion
Esta ...
Origen: Cualquiera – Destino: Ninguno Interfaz: ejecutar otro evento-slot
Esta ...
Objetos
Origen: Cualquiera – Destino: Ninguno Crear manejador de objeto
Es …...
Disparar objeto
Es …...Get variable local de objeto
Es …...Set variable local de objeto
Es …...Añadir ficha al objeto
Es …...Añadir lista al objeto
Es …...Puerto serie
Velneo 7.2.1.8377
Origen: Cualquiera – Destino: Ninguno Puerto serie: Configurar dispositivo
Esta sentencia permite al usuario final, cambiar la configuración de un dispositivo.
Origen: Cualquiera – Destino: Ninguno Puerto serie: Abrir
Abre un puerto serie para establecer la comunicación con un dispositivo.
Origen: Cualquiera – Destino: Ninguno Puerto serie: Enviar
Permite enviar un dato a un dispositivo conectado al puerto serie.
Origen: Cualquiera – Destino: Ninguno Puerto serie: Recibir
Permite recibir un dato de un dispositivo conectado al puerto serie
Origen: Cualquiera – Destino: Ninguno Puerto serie: Cerrar
Cierra la conexión establecida con un dispositivo conectado al puerto serie.
Ahora que ha tenido la oportunidad de ver todas las operaciones que puede realizar desde procesos, creo que lo mejor que podemos hacer para que empiece a entender todas estas instrucciones es ver algunos ejemplos del uso de las mismas.
Para crear procesos con Velneo hay un concepto tan básico como importante, para que el resultado final sea el requerido. Hablamos de Origen y Destino, o dicho de otra forma,
¿donde estamos? y ¿dónde queremos llegar?
Así es, el origen nos indica el punto de partida del proceso y por tanto un proceso puede tener su origen en:
- una ficha (o registro de una tabla de datos)
- una lista (o conjunto de registros de una tabla de datos)
- sin origen (cuando no se refiere a ninguna tabla de datos en concreto)
y el destino nos indica cual será el resultado y que podemos hacer. Si miramos el ejemplo nº 1 vemos como el origen del proceso debe ser Una ficha de la tabla Cabecera de albaranes, y el destino es Una lista de la tabla Líneas de albaranes. En el proceso que muestra este ejemplo, queremos, partiendo de un albarán en concreto, cargar sus líneas para imprimir un informe con el documento completo.
Otra cuestión a tener en cuenta, es que cuando hablamos de Ficha, es incuestionable que nos referimos a un solo registro de una tabla de datos, pero cuando hablamos de Lista, no siempre nos referimos a varios registros, el resultado de una consulta, puede ser perfectamente una lista de 1 solo registro, especialmente cuando realizamos la consulta por el indice “CODIGO” y este es de “Clave Única”.
Así que, empecemos a desarrollar los primeros procesos con Velneo v7 vDevelop.
Trabajar con un entorno tan avanzado y más cuando se ha programado en otros lenguajes, obliga a cambiar el chip, es decir, debemos pensar en la programación de forma más natural, adaptando el programa a la empresa y no adaptando la empresa al programa.
Si ha leído la lista de instrucciones de procesos, y ya conocía Velneo de la versión anterior,
vera algunos cambios que podrían despistarle, los Históricos han pasado a llamarse Plurales
de forma que, donde antes indicábamos Cargar históricos, ahora es Cargar plurales.
Ejemplo nº 1 de procesos
Vamos a escribir un proceso muy sencillo para imprimir un documento
Cargar lista , ALBARANES , CODIGO , %CODIGO
Imprimir informe -> NOMBRE-INFORME , IMPRESORA-LÓGICA
Este proceso tan sencillo, escrito en un objeto proceso y con origen en la tabla de cabecera de albaran, permite cargar las líneas de un albaran por el código de la ficha actual y envía un informe a una impresora lógica.
Ejemplo nº 2 de procesos
He insistido varias veces en los conceptos mas importantes de la aplicación, y a menudo quizá vuelva a insistir en datos explicados en otro capítulos, Pero el propósito de este libro, es que aprenda a utilizar bien la herramienta, y por tanto, repasaremos los conceptos básicos cuantas veces haga falta.
Para este 2º ejercicio, queremos que desde la ficha de un cliente (desde su formulario de edición), ver que artículos que le hemos vendido durante el ultimo año.
El origen es pues, la ficha del Cliente, y el proceso a realizar:
Cargar plurales ALBARANES
Filtrado de lista -> (#FECHA > ( addDays( $Caja@FCH-INI , -1 )) & (#FECHA <
( addDays( $Caja@FCH-FIN , 1 ))
Cargar plurales LINEAS-DE-ALBARANES Cargar maestros ARTICULOS
Añadir retorno REJILLA-DE-ARTICULOS
Si este proceso lo analizamos sobre el esquema de las tablas, vemos claramente que para llegar desde clientes a artículos, el camino correcto es el indicado en el proceso. En la segunda línea del proceso, he incluido un filtro, que nos permitiría ver solo los artículos vendidos durante un periodo determinado por las fechas
$Caja@FCH-INI y $Caja@FCH-FIN.
Si nos fijamos en esa misma línea, en la expresión
(#FECHA > ( addDays( $Caja@FCH-INI , -1 ))
parece incorrecta o cuanto menos, complicada, pero con esto conseguimos suplir la carencia del operador (>=) “mayor o igual que”. Podemos distinguir que en esta formula hemos utilizado la comparación de un campo #FECHA con una variable global $Caja@FCH-INI.
El origen en este proceso es de FICHA en la tabla de Clientes y el destino es de
LISTA en la tabla de Artículos.
Ahora que ya sabemos programar procesos con Velneo, es importante que sepamos también cual es la diferencia que existe entre los distintos tipos de procesos según su ejecución:
- Procesos en 1er plano - Procesos en 2º plano - Procesos en 3er plano
- Procesos en 4º plano (demonios – proceso sin origen)
Procesos en 1er plano
Son ejecutados en el cliente. Durante su ejecución, el usuario debe esperar a que finalice el proceso para poder continuar con la ejecución de la aplicación.
Procesos en 2º plano (multitarea)
Son ejecutados en el cliente. En este caso, el usuario no tiene que esperar a que termine la ejecución del proceso, puede continuar ejecutando la aplicación aunque el proceso no haya terminado de ejecutarse.
Procesos en 3er plano
Son ejecutados en el servidor y pueden ser lanzados desde:
a) Un proceso en primer plano ejecutado desde vClient.
b) Un proceso en segundo plano ejecutado desde vClient.
También son procesos en tercer plano:
a) Los que son ejecutados desde páginas HTML de Velneo.
b) Los ejecutados como tareas programadas en vAdmin de Velneo. Solamente podrán dispararse como tarea programada los procesos públicos SIN ORIGEN.
Demonios (procesos en 4º plano)
Son procesos sin origen, que se ejecutan siempre en el servidor de forma repetitiva, y con una frecuencia que se indica en milisegundos.
Este tipo de procesos es muy útil para realizar tareas de comprobación de datos de forma automática, ya que al ser ejecutado en el servidor no puede intervenir la mano del usuario en ningún momento.
A pesar de que su programación es exactamente al resto de los procesos, existe un Objeto destinado únicamente a programar demonios.
La frecuencia de ejecución del demonio, se expresa en milisegundos, pero siempre
contando a partir del momento en que finalizó la ejecución anterior, de forma que no
Debo aclarar, que los procesos en 3er plano, son ejecutados en el servidor, motivo por el que las Cestas y las Tablas en memoria, se ejecutan en el servidor y podrían estar vacías durante la ejecución, lo que al programador, podría dar la sensación de un mal funcionamiento de la aplicación, y por tanto errores sin explicación aparente.
8 .2. Las funciones
No debemos confundir este apartado de funciones, que el usuario va a definir, con las funciones propias del Asistente de formulas, que ya vimos en un capitulo anterior.
Se trata ahora, de poder definir nuestras propias funciones, y retornar los valores deseados.
Para demostrarlo, vamos a crear nuestra primera función, aunque esta sea muy básica.
Set nSuma , <<SUMA(‘importe1’, ‘importe2’) Set nResultado , ‘importe1’ + ‘importe2’
Set retorno función -> nResultado
He aquí nuestra primera función, tan simple. Hemos creado una función que suma los dos importes que le pasamos como parámetros en la llamada a la misma. En realidad hemos unido dos partes que aunque están muy relacionadas, en el código de la aplicación, no pueden mezclarse.
- En primer lugar Set nSuma , <<SUMA(‘importe1’, ‘importe2’) es la llamada a la función que hemos definido y que utilizaremos normalmente desde un proceso en una caja de objetos, aunque las funciones también se pueden utilizar como contenido inicial de campos en las cajas de datos, por ej.
- En segundo lugar,
Set nResultado , ‘importe1’ + ‘importe2’
Set retorno función -> nResultado
Hemos escrito las líneas propias para la definición de la función, y que lógicamente, no tendremos que volver a escribir. En tanto que, al definir la función, esta puede ser llamada desde donde sea necesaria y las veces que sea necesaria.
INCLUIR ALGUNA IMAGEN DE UNA FUNCIÓN