Campos (grupo de comandos)
Grupo de comandos de bases de datos que nos permiten interactuar con campos.
¿Ha cambiado el campo?
Comando de instrucción del grupo Ficha y campos que comprueba si ha cambiado o no un campo determinado de una ficha de una tabla.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador del campo
Identificador del campo a comprobar.
Identificador de variable local booleana de retorno de ok
Variable local de tipo booleano que recogerá si el campo ha cambiado (1) o no (0).
Funcionalidad
Este comando devuelve en una variable local booleana si el campo seleccionado ha cambiado (1) o no (0).
Comentarios
La variable local booleana de retorno podrá ser tanto una ya existente como una nueva.
Este comando compara el contenido que tiene el campo en memoria con contenido que tenía al abrir la ficha.
Si se trata de un alta de ficha, detectará que ha habido cambios si el campo a evaluar no está vacío.
Si se trata de una modificación, la comparación se hará con el valor que tenga ese campo en disco.
Ejemplo
Mostrar mensaje de que 'No es posible cambiar la fecha' cuando el campo FECHA ha cambiado de valor.
¿Ya existe en alguno de sus índices de clave única?
Comando de instrucción del grupo Ficha y campos, que partiendo de una ficha de una tabla comprueba si existe alguna duplicidad en cualquier índice de clave única declarado en la misma.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de variable local booleana de retorno de ok
Variable local de tipo booleano en la que se retornará si hay duplicidad por algún índice de clave única (1) o no (0).
Identificador de variable local alfabética de retorno del mensaje
Variable local de tipo alfabético donde se retornará, en caso de existir duplicidad, la lista de índices por los que existe.
Funcionalidad
Partiendo de una ficha de una tabla comprueba si existe alguna duplicidad en cualquier índice de clave única declarado en la misma, devolviendo en una Variable local si se ha encontrado o no duplicidad y devolviendo en otra la lista de los índices de clave única por los que se ha detectado duplicidad.
Comentarios
Las variables locales de retorno podrán ser tanto unas declaradas previamente como nuevas.
Será el propio sistema quien se encargue de componer la clave adecuada a cada índice de clave única de la tabla en base al contenido de la ficha en curso.
Debemos saber que cuando se da de alta o se modifmica un registro a través de un formulario el sistema, antes de grabar la ficha, comprobará que no se produzca duplicidad de clave en todos los índices de clave única de la tabla; pero en altas realizadas a través de proceso el sistema solamente comprobará la clave primaria, es decir, el ID, el campo clave de la tabla. En ese caso, sería recomendable para evitar errores de integridad, comprobar el resto de los índices de clave única en los eventos de tabla previos al alta y a la modificación de la ficha por medio de este comando.
En los eventos, para cancelar el alta o la modificación de la ficha en caso de producirse una duplicidad de clave se usará el comando de instrucción Set retorno proceso = NO.
Ejemplo
Comprobamos si existe alguna duplicidad en los índices de clave única de los campos del registro en curso mostrando un mensaje indicando el índice duplicado.
¿Ya existe en el índice?
Comando de instrucción del grupo Ficha y campos que permite comprobar si en un índice de clave única existe una clave concreta.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de índice
Identificador del índice de clave única a consultar.
Identificador de variable local booleana de retorno de ok
Variable local de tipo booleano en la que se guardará si la clave ya existe (1) o no (0).
Funcionalidad
Esta comando de instrucción devuelve, en una variable local del proceso, el resultado de comprobar si en el índice de clave única identificado ya existe la clave actual.
Comentarios
El comando compondrá la clave adecuada al índice en el que se realiza la consulta en base al contenido de la ficha en curso. El programador no tiene que ocuparse de ello.
Cuando se da de alta o se modifica un registro a través de un formulario el sistema, antes de grabar la ficha, comprobará que no se produzca duplicidad de clave en todos los índices de clave única de la tabla; pero en altas a través de proceso el sistema solamente comprueba la clave primaria, es decir, el ID, el campo clave de la tabla. En ese caso, sería recomendable para evitar errores de integridad, comprobar el resto de los índices de clave única en los eventos de tabla previos al alta y a la modificación de la ficha por medio de este comando. En los eventos, para cancelar el alta o la modificación de la ficha en caso de producirse una duplicidad de clave se usará el comando de instrucción Set retorno proceso = NO.
La variable local de retorno deberá ser de tipo booleano y podrá ser tanto una declarada previamente como una nueva.
Ejemplo
Comprobamos si en la tabla de abreviaturas ya existe en el índice IDENTIFICADOR el valor del campo identificador que estamos dando de alta en el formulario. Cancelando el alta del registro usando la instrucción Set retorno de proceso = No.
Calcula campos dependientes
Comando de instrucción del grupo Ficha y campos que fuerza el recálculo de todos los contenidos iniciales de una ficha.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
No tiene.
Funcionalidad
Fuerza el recálculo de los contenidos iniciales de aquellos campos de una ficha que usan otros campos, pero no contenidos iniciales que no usen campos, por ejemplo, que usen únicamente una función, una constante, una variable, etc.
Comentarios
Tiene sentido utilizarlo solamente si hemos usado previamente en el proceso el comando modificar campo solamente ya que si usamos el comando modificar campo ya implica el cálculo de campos dependientes.
Ejemplo
Cargamos las líneas de pedidos de la tabla LIN_G modificando el campo CNT (Cantidad) multiplicándolo por 2, calculando los campos dependientes al final de la modificación forzando el cálculo de campos con contenidos iniciales.
Comprobar fórmula dinámica
Comando de instrucción del grupo Ficha y campos que permite verificar si la fórmula escrita por un usuario en un campo de tipo fórmula dinámica tiene o no errores de sintaxis.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de tipo fórmula dinámica que se desea verificar.
Identificador de variable local booleana de retorno ok
Variable local del proceso, de tipo booleano, donde se retornará si la fórmula contiene o no errores.
Identificador de variable local alfabética de retorno de mensaje de error
Variable local del proceso, de tipo alfabético, donde se atrapará el mensaje de error.
Funcionalidad
Verificar si la fórmula escrita por un usuario en un campo de tipo fórmula dinámica tiene o no errores de sintaxis y, en caso de tenerlos, captura el mensaje descriptivo del error.
Comentarios
Si la variable de retorno ok devuelve un 1 querrá decir que la fórmula no contiene errores de sintaxis y un 0 si los contiene. En caso de contener errores de sintaxis, el mensaje del error será almacenado en la variable local alfabética de retorno de mensaje de error.
Las variables podrán ser variables locales del proceso declaradas previamente o pueden ser nuevas.
Si en un proceso queremos tener acceso a la fórmula contenida en un campo de tipo fórmula dinámica y no al resultado de la misma usaremos el comando de instrucción de proceso Get campo.
Ejemplo
Si incluimos en la tabla PED_G (Pedidos) un campo de tipo objeto fórmula, podremos en el formulario de edición correspondiente a través de un control de edición fórmula comprobar si el contenido que estamos poniendo como fórmula es correcto o no.
En las instrucciones del ejemplo se evalúa el campo FORMULA_DINAMICA y se informa mediante un mensaje si es correcta o incorrecta la fórmula.
Exportar binario
Comando de instrucción del grupo Ficha y campos que extrae un archivo almacenado en un campo de tipo objeto binario y lo exporta a disco.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso de tipo objeto binario que se desea exportar.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el campo ha sido exportado (1) o no (0).
Funcionalidad
Extrae un archivo almacenado en un campo de tipo objeto binario y lo exporta a disco.
Comentarios
Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/documento.doc”.
Para la especificación de la senda podremos hacer uso de funciones de fórmula de directorios tales como homePath, rootPath o tempPath.
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
Ejemplo
En la tabla CLT_T (Clientes) disponemos de un campo de tipo objeto binario para poder incorporar en él algún tipo de fichero, podemos exportar su contenido a disco para que sea ejecutado por el programa encargado de ejecutar los ficheros según la extensión del mismo por el sistema operativo.
En este ejemplo se exporta el contenido del campo objeto binario DOCUMENTO a la caché del cliente con el texto 'Documento' seguido del número de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.
Exportar dibujo
Comando de instrucción del grupo Ficha y campos que exporta a disco una imagen almacenada en un campo de tipo objeto dibujo.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso de tipo objeto dibujo que se desea exportar.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el campo ha sido exportado (1) o no (0).
Funcionalidad
Extrae una imagen almacenada en un campo de tipo objeto dibujo y la exporta a disco, retornando en una variable local del proceso si el archivo ha sido o no generado.
Comentarios
Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/img.png”.
Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.
Si bien en Velneo las imágenes internamente son guardadas en formato jpg, se podrá exportar en los formatos siguientes:
bmp (Windows bitmap)
jpeg/jpg (Joint Photographic Experts Group)
pbm (Portable Bitmap Format)
pgm (Portable Graymap Format)
png (Portable Network Graphics)
ppm (Portable Pixmap Format)
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
Ejemplo
En la tabla CLT_T (Clientes) disponemos de un campo de tipo objeto dibujo donde podemos incorporar una foto.
En este ejemplo se exporta el contenido del campo objeto dibujo IMG a la caché del cliente con el texto 'Foto' seguido del numero de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.
Exportar texto
Comando de instrucción del grupo Ficha y campos que exporta a disco el contenido de un campo de tipo objeto texto u objeto texto enriquecido.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso campo de tipo objeto texto u objeto texto enriquecido que se desea exportar.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero donde se va a exportar el contenido del campo.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el campo ha sido exportado (1) o no (0).
Funcionalidad
Genera un fichero en disco a partir del contenido de un campo de tipo objeto texto u objeto texto enriquecido, retornando en una variable local del proceso si el archivo ha sido o no generado.
Comentarios
Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/texto.txt”.
Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.
Si el campo a exportar es de tipo texto el contenido del campo será exportado como texto plano; si es de tipo texto enriquecido, lo exportará a html.
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
El texto será exportado usando el codec del sistema operativo donde se ejecute el proceso. Por ejemplo, si es Windows, lo exportará en formato ANSI.
Ejemplo
En este ejemplo se exporta el contenido del campo objeto texto OBS a la caché del cliente con el texto 'Observaciones' seguido del numero de registro de la tabla. En caso de ser exportado de forma incorrecta se muestra el mensaje correspondiente y, en el caso contrario es ejecutado el documento.
Get atributos de dibujo
Comando de instrucción del grupo Ficha y campos que permite obtener los atributos de una imagen almacenada en un campo de tipo objeto dibujo de un registro de una tabla.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo objeto dibujo
Identificador de un campo de tipo objeto dibujo de la tabla de origen de la línea del proceso. Se abrirá una lista desplegable que solamente mostrará los campos de este tipo que existan en la tabla origen de la línea del proceso.
Identificador de variable local numérica de retorno de dimensión x en píxels
Variable local del proceso, de tipo numérico, donde se retornará el ancho de la imagen en píxels.
Identificador de variable local numérica de retorno de dimensión y en píxels
Variable local del proceso, de tipo numérico, donde se retornará la altura de la imagen en píxels.
Identificador de variable local numérica de retorno de tamaño en bytes
Variable local del proceso, de tipo numérico, donde se retornará el tamaño de la imagen en bytes.
Funcionalidad
Este comando devuelve los atributos (alto, ancho y tamaño) de una imagen almacenada en un campo de tipo objeto dibujo de un registro de una tabla.
Comentarios
Las variables locales de retorno de sus parámetros podrán ser tanto variables ya declaradas previamente como nuevas.
Las imágenes internamente son almacenadas con compresión JPG al 100% de calidad.
Ejemplo
Mostramos los atributos del campo IMG (Foto) de la tabla indicando sus atributos mediante mensajes mostrando los contenidos de las variables locales PIXELS_X, PIXELS_Y, y TAMAÑO.
Get campo
Comando de instrucción del grupo Ficha y campos que permite obtener el contenido de un campo de la ficha en curso y guardarlo en una variable local del proceso.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Identificador del campo cuyo contenido queremos obtener.
Identificador de variable local de retorno
Identificador de la variable donde se retornará el contenido del campo.
Funcionalidad
Permite obtener el contenido de un campo de la ficha en curso y guardarlo en una variable local del proceso.
Comentarios
La variable de retorno podrá ser tanto una declarada previamente en el proceso como una nueva. Si la creamos nueva el sistema la creará de tipo alfabético.
Para leer el contenido de un campo también podríamos usar el comando Set, la diferencia entre usar uno y otro radica solamente en el caso de que el campo a leer sea de tipo fórmula dinámica; Set devolverá el resultado de la fórmula y Get campo devolverá la fórmula.
Ejemplo
Leemos el contenido del campo NAME de la tabla en curso de clientes, guardamos su contenido en la variable local NOMBRE y mostramos su contenido mediante un mensaje.
Importar binario
Comando de instrucción del grupo Ficha y campos que permite importar cualquier tipo de archivo en un campo de tipo objeto binario.
Origen de la instrucción: Ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso de tipo objeto binario en el que se desea importar el fichero.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar. Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el campo ha sido importado (1) o no (0).
Funcionalidad
Importa un archivo indicado en sus parámetros en un campo de tipo objeto binario de la tabla en curso.
Comentarios
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter "/". Ejemplo: "c:/Archivos/documentos/documento.doc".
Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.
Si es el usuario final quien ha de seleccionar el fichero a importar, podremos hacer uso del comando de instrucción Ventana de selección de fichero.
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
Ejemplo
Seleccionamos el fichero que deseamos importar como DOCUMENTO en el campo DOCUMENTO de la tabla y lo importamos con 'Importar binario'.
Usamos la variable local IMP_OK para comprobar que el fichero se importó al campo de forma correcta.
Importar dibujo
Comando de instrucción del grupo Ficha y campos que importa un archivo de tipo imagen en un campo de tipo objeto dibujo.
Origen de la instrucción: ficha de la tabla en curso. Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso de tipo objeto dibujo en el que se desea importar la imagen.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el fichero ha sido importado (1) o no (0).
Funcionalidad
Importa un fichero de tipo imagen en disco en un campo de tipo objeto dibujo, retornando en una variable local del proceso si el archivo ha sido o no importado.
Comentarios
Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/img.png”.
Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.
Si es el usuario quien ha de indicar el archivo a importar podremos hacer uso del comando Ventana de selección de fichero.
La imagen importada, sea del tipo que sea, internamente será guardada como jpg. Se podrán importar imágenes de los formatos siguientes:
bmp (Windows bitmap)
gif (Graphics Interchange Format)
jpeg/jpg (Joint Photographic Experts Group)
pbm (Portable Bitmap Format)
pgm (Portable Graymap Format)
png (Portable Network Graphics)
ppm (Portable Pixmap Format)
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
Ejemplo
Importamos el fichero dibujo.png al campo IMG dejando el resultado de la importación en la variable IMP_OK.
Importar texto
Comando de instrucción del grupo Ficha y campos que importa el contenido de un fichero de texto en un campo de tipo objeto texto u objeto texto enriquecido.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Campo de la tabla en curso de tipo objeto texto u objeto texto enriquecido en el que se desea importar el archivo de texto.
Fórmula senda
Expresión de tipo fórmula con la especificación de la vía de acceso al fichero a importar.
Identificador de variable local booleana de retorno ok
Variable local del proceso donde se retornará si el archivo ha sido importado (1) o no (0).
Funcionalidad
Importa un archivo de texto en un campo de tipo objeto texto u objeto texto enriquecido, retornando en una variable local del proceso si el archivo ha sido o no importado.
Comentarios
Para facilitar la especificación de la fórmula de la senda podremos hacer uso del asistente para edición de fórmulas.
La senda deberá ser completa (unidad, estructura de directorios, nombre del archivo y extensión).
Cada elemento de la senda irá separado por el carácter “/”. Ejemplo: “c:/Archivos/documentos/texto.txt”.
Para la especificación de la senda podremos hacer uso de funciones de fórmula de de directorios tales como homePath, rootPath o tempPath.
Si el campo de destino es de tipo texto el fichero de texto a importar deberá ser contener texto plano; si es de tipo texto enriquecido, el archivo de texto a importar podrá tener tanto formato de texto plano como formato html.
Si ha de ser el usuario final quien deba indicar el fichero a importar, podremos hacer uso del comando Ventana de selección de fichero.
La variable local de retorno ok podrá ser tanto una local al proceso declarada previamente como una nueva.
Ejemplo
Seleccionamos el fichero que deseamos importar como TEXTO en el campo OBS de la tabla y lo importamos con 'Importar texto'.
Usamos la variable local SEL_OK para comprobar si se seleccionó algún fichero partiendo de la ruta homPath().
Usamos la variable local IMP_OK para comprobar que el fichero se importó al campo de forma correcta.
En caso de no haber seleccionado de forma correcta el fichero o en caso de no haber sido posible la importación del fichero, se muestra un mensaje y posteriormente se finaliza el proceso.
Limpiar campo objeto
Comando de instrucción del grupo Ficha y campos que limpia el contenido de un campo de tipo objeto.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo objeto
Identificador del campo de tipo objeto a limpiar.
Funcionalidad
Este comando de instrucción limpia el contenido de un campo de tipo objeto, es decir, lo borra del contenedor y en el campo elimina la referencia al mismo, pero no borra el registro.
Comentarios
Hay que tener en cuenta que los campos de tipo objeto son almacenados en un contenedor aparte de los datos. El nombre de este fichero será el mismo de la tabla y con la extensión CND. En el fichero de datos lo que se guarda es la dirección donde está el objeto en el contenedor.
Aunque los campos objeto se almacenan en el contenedor y no en el fichero de datos, si borramos el registro, el sistema borrará también en el contenedor los campos objeto del mismo. No será necesario que lo hagamos nosotros.
Ejemplo
Limpiamos los contenidos de distintos tipos de campos de la tabla en curso.
Modificar campo
Comando de instrucción del grupo Ficha y campos que modifica el contenido de un campo y dispara el recálculo de los contenidos iniciales dependientes del mismo.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Identificador del campo cuyo contenido se desea modificar.
Fórmula de dato
Establece el nuevo contenido del campo. Se trata de una expresión de tipo fórmula.
Funcionalidad
Modifica el contenido del campo indicado en el primer parámetro, con el resultado de la fórmula establecida en el segundo parámetro y dispara los contenidos iniciales que dependan del mismo.
Comentarios
Este comando no genera transacción por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.
En un proceso, para que el nuevo valor del campo sea guardado en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura, por ejemplo, mediante el uso de comandos del tipo Modificar ficha seleccionada, Recorrer lista lectura/escritura, etc.
Para facilitar la creación de la fórmula del segundo parámetro podremos hacer uso del asistente para edición de fórmulas.
Podremos usar este comando para limpiar el contenido de un campo. Si se trata de campos alfabéticos o de tipo fecha, en la fórmula escribiremos: "". En numéricos, un 0 y si se trata de campos objeto, entonces no usaremos este comando sino el comando limpiar campo objeto.
Este comando desencadenará el recálculo de contenidos iniciales de campos dependientes, tal y como se explica en el capítulo dedicado a los campos. Esto es muy importante tenerlo en cuenta a la hora de programar procesos que importación masiva de registros o de transacciones que en las que se vaya a realizar una modificación masiva de fichas, en cuyo caso podría usarse el comando de instrucción modificar campo solamente; ya que no dispara el recálculo de contenidos iniciales dependientes.
Si queremos modificar el valor de un campo en un trigger de tabla, la modificación debemos hacerla en el evento anterior (al alta o a la modificación de la ficha).
Si desde un trigger se ejecuta un proceso de Velneo con origen ficha lanzado con el comando de instrucción ejecutar proceso, la ficha recibida es la que tiene el trigger en memoria, recibiendo los cambios realizados en el trigger anterior al alta o modificación. Si realizamos modificar campo en el proceso se cambia correctamente la ficha en memoria que tras finalizar el proceso es recibida por el trigger que puede continuar con todos los cambios realizados.
Sin embargo, si usamos para ejecutar el proceso el comando de instrucción disparar objeto creando un manejador de objeto el funcionamiento no es el mismo ya que el proceso recibe una ficha diferente a la que usa el trigger en memoria y los cambios que se realicen con el comando de instrucción modificar campo no son funcionales.
Por lo tanto, si queremos modificar campos en procesos de Velneo lanzados desde triggers de tabla, tendremos que hacerlo siempre con el comando de instrucción de proceso ejecutar proceso.
Ejemplo
Modificamos todos los registros de las lineas de pedidos de la tabla (LIN_G) modificando el campo booleano SRV (Servido) a 1.
Modificar campo solamente
Comando de instrucción del grupo Ficha y campos que modifica el contenido de un campo sin disparar contenidos iniciales dependientes.
Origen de la instrucción: ficha de la tabla en curso.
Destino del subproceso: ninguno.
Parámetros
Identificador de campo
Identificador del campo cuyo contenido se desea modificar.
Fórmula de dato
Establece el nuevo contenido del campo. Se trata de una expresión de tipo fórmula.
Funcionalidad
Modifica el contenido del campo indicado en el primer parámetro, con el resultado de la fórmula establecida en el segundo parámetro y no dispara contenidos iniciales que dependan del mismo.
Comentarios
Este comando no genera transacción por sí mismo; esto quiere decir que el uso de este comando modifica el contenido del campo pero no graba el cambio en disco.
En un proceso, para que el nuevo valor del campo sea guardado en disco, la ficha deberá haber sido abierta previamente en modo lectura/escritura, por ejemplo, mediante el uso de comandos del tipo Modificar ficha seleccionada, Recorrer lista lectura/escritura, etc.
Para facilitar la creación de la fórmula del segundo parámetro podremos hacer uso del asistente para edición de fórmulas.
Si queremos dejar vacío el contenido de un campo de tipo fecha, en la fórmula escribiremos: "".
Este comando no desencadenará el recálculo de contenidos iniciales de campos dependientes (ver el capítulo dedicado a los campos.
Este comando es muy aconsejable, por ejemplo, en la importación masiva de registros, en las que habitualmente todos los campos son asignados en la importación, no siendo necesario, por tanto, forzar el recálculo de contenidos iniciales; lo que mejorará notablemente los tiempos de ejecución de los procesos.
En el caso de que en el proceso nos interese disparar los contenidos iniciales dependientes, entonces podremos hacer uso del campo calcula campos dependientes.
Si queremos modificar el valor de un campo en un trigger de tabla, la modificación debemos hacerla en el evento anterior (al alta o a la modificación de la ficha).
Si desde un trigger se ejecuta un proceso de Velneo con origen ficha lanzado con el comando de instrucción ejecutar proceso, la ficha recibida es la que tiene el trigger en memoria, recibiendo los cambios realizados en el trigger anterior al alta o modificación. Si realizamos modificar campo en el proceso se cambia correctamente la ficha en memoria que tras finalizar el proceso es recibida por el trigger que puede continuar con todos los cambios realizados.
Sin embargo, si usamos para ejecutar el proceso el comando de instrucción disparar objeto creando un manejador de objeto el funcionamiento no es el mismo ya que el proceso recibe una ficha diferente a la que usa el trigger en memoria y los cambios que se realicen con el comando de instrucción modificar campo no son funcionales.
Por lo tanto, si queremos modificar campos en procesos de Velneo lanzados desde triggers de tabla, tendremos que hacerlo siempre con el comando de instrucción de proceso ejecutar proceso.
Este comando de instrucción de proceso no es funcional para campos de tipo objeto texto, objeto texto enriquecido ni objeto fórmula. Estos deberán ser gestionados con el comando de instrucción de proceso modificar campo.
Ejemplo
Cargamos las líneas de pedidos de la tabla LIN_G modificando los campos y calculando los campos dependientes al final de la modificación forzando el cálculo de campos con contenidos iniciales.
Última actualización