23 Ene El peligro de las variables en Velneo V7
La semana pasada había un interesante debate en el foro de Velneo, en el que se preguntaba sobre el correcto uso de las variables en Velneo V7. En concreto se preguntaba sobre que era mas óptimo: el uso de variables globales en memoria o el uso de variables locales… Pues como diría un buen gallego «depende»…
Como diría Jack «El destripador»… vayamos por partes.
Tipos de variables en Velneo V7
En Velneo V7 tenemos dos tipos de variables:
- Variables globales
- Variables locales
Variables globales
Según vemos en la ayuda de Velneo V7:
La variable global es un objeto cuyo contenido es global a la aplicación y común, en el ámbito de red, para todos los usuarios si su persistencia es en disco, y de carácter local si su persistencia es en memoria.
Por lo tanto acabamos de ver que hay dos tipos de variables globales: en disco o en memoria.
Variables globales en disco
El contenido de una variable global en disco es común a todos los usuarios y planos de ejecución. Es decir, si un usuario modifica el contenido de una variable global en disco, este cambio afecta a todos los usuarios de la aplicación.
Además cada vez que usamos una variable global de este tipo, el cliente tiene que hacer una petición al servidor para ver si ha cambiado su valor…
Por favor no pongáis una variable global como contenido inicial de un campo fórmula de una tabla… y luego pongáis ese campo en una rejilla. Por cada registro se tendrá que evaluar la fórmula y el usuario de la aplicación se acordará de mas de un familiar vuestro
Las variables globales en disco, están totalmente desaconsejadas sobre todo para usarlas en cloud. Si necesitáis guardar el valor, por ejemplo de los datos de la empresa, que normalmente usáis variables globales en disco, probad a usar una tabla de configuración con un sólo registro (o varios si es multiempresa) y poner un enlace a esta tabla en las demás tablas. En esa tabla de configuración podéis meter los campos que queráis y estarán disponibles en cualquier parte de la aplicación.
Variables globales en memoria
Las variables globales en memoria son exclusivas del usuario que las use (mas bien de la sesión de vClient) y en el plano de ejecución que se utilicen:
- Un usuario que lance un proceso en primer plano dando valor a una variable, si llama a un proceso en tercer plano que llame a esa misma variable, la variable en cuestión tendrá dos valores distintos.
- Si un usuario abre dos sesiones de vClient y en la primera modifica el valor de una variable global en memoria, la segunda sesión no se entera del cambio efectuado.
Variables locales
Según vemos también en la ayuda de Velneo V7:
las variables locales son locales al objeto donde se definen y solamente están accesibles desde éste, aunque existan otros objetos que tengan declarados variables locales idénticas.
Un problema resuelto: no tendremos que acceder al servidor para consultar su valor. Además la variable será común tanto al objeto en el que la hemos definido como en todos sus subobjetos…
¡Genial! ¿o no?
Pues hombre… algo cortas se quedan (demasiado según algunos).
- Si definimos una variable en un formulario, podemos acceder a ellas desde sus subobjetos… upsss si incrustamos por ejemplo una rejilla dentro del formulario esa rejilla no es un subobjeto del formulario por lo tanto no podremos acceder al valor de esa variable.
- Si abrimos un formulario y le damos valor a una variable local, si abrimos otra instancia del mismo formulario la variable local con el mismo nombre tendrá el valor inicial no el modificado en la primera instancia del formulario… cuidado con esto
En fin no os quiero contar nada si empezamos a enlazar objetos en un multivista por ejemplo.
Para estos menesteres no tenemos mas remedio que tirar de variables globales ¡en memoria!.
Para completar la información sobre variables os dejo un para de enlaces interesantes escritos por Jorge Hontoria en su blog:
¿Os ha parecido interesante el artículo? ¿Qué opináis ahora sobre las variables? ¿Mejor locales? ¿Mejor globales? Déjame tu opinión en los comentarios.
Variables en Velneo: Te resolvemos todas las dudas sobre ellas.
Posted at 09:07h, 27 octubre[…] el artículo ayudavelneo.com/el-peligro-de-las-variables-en-velneo-v7 para comprenderlo […]