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»…

EL PELIGRO DE LAS VARIABLES EN VELNEO V7

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.

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Además es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. Ampliar información

1Comment

Post A Comment

Información básica sobre Protección de Datos: Responsable: Francisco José Vila Martín. Finalidad: Gestionar y moderar los comentarios. Legitimación: Tu consentimiento. Destinatarios: Tus datos se alojarán en los servidores de Web Empresa S.L. (UE). Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos, así como otros derechos, como se explica en la información adicional. Información adicional: Puedes consultar la información adicional y detallada sobre protección de datos personales en mi Política de Privacidad.

Pin It on Pinterest