# Variables Globales en proyecto de Datos

**URL:** <https://foros.velneo.com/t/variables-globales-en-proyecto-de-datos/7305>\
**Category:** Velneo\
**Created:** [29 Agosto, 2014 13:52 UTC](https://foros.velneo.com/t/variables-globales-en-proyecto-de-datos/7305 "2014-08-29T13:52:21Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![eduardo.chaparro](https://avatars.discourse-cdn.com/v4/letter/e/e495f1/32.png) [@eduardo.chaparro](https://foros.velneo.com/u/eduardo.chaparro)\
**Post date:** [29 Agosto, 2014 13:52 UTC](https://foros.velneo.com/t/variables-globales-en-proyecto-de-datos/7305/1 "2014-08-29T13:52:21Z")

</div>

Buenos dias.

Esta vez quiero saber si alguien ha tenido el mismo problema, estoy tratando de evaluar variables globales de memoria en proyectos de datos, así como también en procesos ejecutados en 2do y 3er plano, y no me están tomando el valor, es decir, sin importar que le coloque, siempre me guardan “0”.

Alguien le ha sucedido esto?

---

<div class="post-metadata">

**Author:** ![bitcodesoft](https://avatars.discourse-cdn.com/v4/letter/b/2acd7d/32.png) [@bitcodesoft](https://foros.velneo.com/u/bitcodesoft)\
**Post date:** [29 Agosto, 2014 14:14 UTC](https://foros.velneo.com/t/variables-globales-en-proyecto-de-datos/7305/2 "2014-08-29T14:14:08Z")

</div>

**Variable global**

Las variables globales sólo se pueden declarar en los proyectos de datos, pero tanto si  
son en disco como en memoria se pueden ejecutar indistintamente en el cliente y en el  
servidor. Sin embargo, hay tres aspectos muy importantes a tener en cuenta de las variables  
globales.

1. Las variables globales en disco cada vez que usan requieren que sea leído su valor  
de disco, esto significa que en el servidor son rápidas, pero usadas desde el cliente,  
cada vez que en una fórmula usamos una variable global estamos obligando al  
cliente a enviar una petición al servidor para obtener el valor actual de ese variable,  
pues no podemos olvidar que al ser en disco es compartida por todos los usuarios,  
y Velneo se encarga de garantizar que el valor siempre sea el mismo para todos los  
usuarios, incluso encargándose del bloqueo de la variable cuando su valor es modificado.  
Por lo tanto, debemos reducir al máximo el uso de variables globales en disco  
en la interfaz.

2. Las variables globales en memoria son únicas para cada máquina. Esto significa  
que cada cliente (usuario) tendrá su variable global en memoria específica. El valor  
de esa variable es compartido por los procesos que se ejecutan en una aplicación  
de un equipo cliente específico, y no se comparten con el resto de usuarios. De la  
misma forma el servidor se comporta como un cliente más y tiene una instancia en  
memoria de las variables locales. Estas variables locales que se encuentran en el  
servidor son compartidas por todos los procesos que se ejecuten en el servidor, sean  
del usuario que sean, pero nunca se mezclan sus valores con los que existen en  
cada máquina cliente. De esta forma si, por ejemplo desde una máquina cliente  
modificamos el valor de la variable HORA a “16:30:00”, la variable del resto de máquinas  
cliente no se verán afectadas, y tampoco cambiará el valor de la variable  
HORA que existe en el servidor.

3. Los valores de las variables en memoria no “viajan” entre el cliente y el servidor ni  
viceversa. Es decir, cada máquina es una isla, lo que nos garantiza que nunca se  
mezclan los valores de esas variables globales entre 2 máquinas, eso mismo debemos  
aplicarlo al servidor. Por eso cuando ejecutamos un proceso en el servidor,  
aunque lo lancemos desde un cliente, si dentro de ese proceso usamos el valor de  
la variable FECHA, el proceso una vez que se está ejecutando en el servidor obtendrá  
el valor de la variable FECHA que está en el servidor, pero no tendrá visibilidad  
del valor que había en la variable FECHA del cliente. Por este motivo para pasar valores  
desde un objeto que se está ejecutando en cliente a un proceso que se ejecute  
en el servidor usamos variables locales del proceso a las que les pasamos los  
valores deseados, utilizando los comandos de objeto: crear manejador de objeto,  
set y get variable local y disparar objeto. En resumen, las variables globales en  
memoria del servidor son compartidas por todos los procesos o transacciones que  
se ejecuten en el servidor, de todos los usuarios, mientras que en el cliente cada  
ejecución de la aplicación tendrá su instancia específica de la variable global en  
memoria. Incluso, si un usuario abre 2 veces la misma aplicación en la misma máquina, cada ejecución de la aplicación tendrá su instancia de la variable global en  
memoria y no será accesible para el resto de ejecuciones de la aplicación en la  
misma o en otras máquinas.

[http://jarboleya.com/2013/10/16/planos-de-ejecucion-en-velneo-v7/](http://jarboleya.com/2013/10/16/planos-de-ejecucion-en-velneo-v7/)
