Una actualización es un subobjeto de tabla que permite actualizar el valor de los campos de un registro de una tabla enlazada cada vez que se produce un alta, una modificación o una baja en la tabla origen en la que definimos las actualizaciones. Para crear una actualización hemos de pulsar la opción del panel de subobjetos y seleccionaremos la opción “actualización”.
Etiqueta alfanumérica que identifica de forma unívoca una actualización. Este identificador será el que usemos para referenciarlo en otras propiedades. Constará de mayúsculas y números exclusivamente.
Etiqueta alfanumérica que servirá como descriptor de la actualización. Se usará para presentar información del objeto en otros objetos y en los inspectores. Podemos definir una etiqueta por cada idioma presente en el proyecto.
Podemos definir el estilo siguiente:
Que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del objeto en nuestro proyecto.
Debemos establecer el campo enlazado a través del que se realizará la actualización. El campo enlazado puede ser de cualquier tipo.
Las actualizaciones están compuestas por componentes de actualización que definen los campos que se actualizarán de la tabla enlazada y cómo se realizará la actualización. En el componente hemos de establecer la acción positiva, es decir, cómo debe actualizar el valor del campo en el caso de alta de ficha, ya que en ejecución determinará de forma automática cuál ha de ser la forma de actualizar el campo en los otros dos casos: modificación y baja de la ficha.
Las propiedades de un componente de actualización son:
Etiqueta alfanumérica que identifica de forma unívoca un componente de actualización. Este identificador será el que usemos para referenciarlo en otras propiedades.
Constará de mayúsculas y números exclusivamente.
Etiqueta alfanumérica que servirá como descriptor del componente de actualización. Se usará para presentar información del subobjeto en otros objetos y en los inspectores.
Podemos definir una etiqueta por cada idioma presente en el proyecto.
Podemos definir los estilos:
Limita el acceso del usuario final a cierta información sobre este subobjeto.
Permite que el subobjeto sea usado cuando el proyecto sea heredada.
Esta propiedad nos permite documentar el uso del objeto en nuestro proyecto.
Fórmula lógica condicional que define si se produce la actualización o no por medio del componente en curso.
En la fórmula es posible hacer uso de variables locales de la tabla. Estas tendrán que haber sido inicializadas antes de la actualización, es decir, en el trigger anterior o interno a la operación (alta, modificación o baja).
Campo de la tabla enlazada que será modificado por el componente de la actualización.
Tenemos dos posibles formas en las que el componente modifique el campo, en ambos casos, siempre que se cumpla la condición para modificar:
El componente acumula en el campo destino el valor resuelto en la fórmula.
El componente sustituye en el campo destino el valor original por el calculado en la fórmula.
Fórmula cuyo cálculo define el valor que se actualizará en el campo.
Los tipos de campo que son susceptibles de ser objeto de una actualización dependen directamente del modo de actualización. Así, si en modo Absoluto, podremos actualizar los tipos de campo siguientes:
Alfa 256
Alfa 128
Alfa 64
Alfa 40
Alfa Latin 1
Alfa UTF-16
Alfa Numérico
Fecha
Hora
Tiempo
Booleano
En modo acumular podremos modificar campos de tipo numérico, fecha, hora y tiempo: en la fórmula de la actualización se ha de usar un dato de tipo numérico, que acumulará el valor numérico del campo de destino.
El número acumulado en un dato de tipo fecha actualizará días a la fecha.
El número acumulado en un dato de tipo hora y tiempo actualizará segundos a la hora.
Si acumulamos un valor decimal a un campo de tipo fecha, hora o tiempo se desechará la parte decimal.
Una actualización será disparada cuando el registro sea modificado y cambie alguno de los campos que intervienen en la misma, tanto en la condición como en la fórmula de actualización.
No se contempla la actualización de tablas en disco hacia tablas en memoria, ya que no tiene sentido acumular valores en tablas que van a desaparecer al cerrar el cliente.
Para crear un componente de actualización tendremos que editar las propiedades de la actualización, pulsar el botón del panel de sub-objetos y, en el menú que se abre, seleccionando la opción componente de actualización.