Las variables globales

En disco

Solo existe una instancia de cada variable global en disco. La variable global la almacena y gestiona el servidor. Las variables globales en disco son compartidas por el servidor y todos los clientes.

Cuando un cliente usa una variable global en disco siempre se asegura de trabajar con el valor actual de la variable haciendo una petición al servidor para obtener dicho valor.

Se recomienda su uso para almacenar valores configurables pero constantes o con pocos cambios.

En memoria

Existe una instancia de la variable para cada cliente en ejecución y el servidor también tendrá una instancia de la variable en su memoria como si se tratase de un cliente más.

El valor de una variable global en memoria es compartido por todos los hilos de ejecución del cliente, pero no es compartida entre dos clientes o entre un cliente y el servidor.

Si ejecutamos dos clientes en la misma máquina, tampoco compartirán la variable global en memoria, sino que cada cliente tendrá la suya.

No viajan

El valor de una variable global en memoria no viaja entre el cliente y el servidor ni viceversa.

La forma de pasar el valor de una variable global en memoria al proceso en tercer plano (que queramos ejecutar en el servidor) es mediante los comandos de instrucción de objeto (Dispara objeto, set variable local del objeto, etc.), esto también permite pasar una ficha o una lista de registros entre el cliente y el servidor.

Otra forma de almacenar información a compartir entre el cliente y el servidor es el uso de una tabla, en la que cada registro está asociado al usuario o a una sesión del usuario, en esta tabla se guardaran los valores en curso o de trabajo de la sesión del usuario. Esta tabla y su información es compartida por el cliente y el servidor.

Nota: el que una variable sea global implica que, cuando modifiquemos el valor de una variable global durante la ejecución de una aplicación, se tendrán que recalcular todas las propiedades que sean de tipo fórmula de todos los objetos de la interfaz (controles de formulario, condiciones activo/visible, columnas de rejillas, etc.), por lo tanto, en la medida de lo posible debemos hacer uso de variables locales a lo objetos en lugar de variables globales.

Última actualización