Variable global no tiene ningun valor en evento de tabla


([N3] blanyi) #1

Hola a todos buenos días.

Recurro a alguno que me pueda ayudar por favor con una situación que se me presenta.
He creado una variable global con persistencia en memoria, en el evento inicializar de un formulario le asigno un valor a ese variable, finalmente en el evento de tabla "modificación: Anterior a una modificación de ficha" modifico un campo de esa tabla y le asigno un valor a la variable global.
Pero oh, sorpresa. La variable global no tiene nada, que pasa ahí? En que momento pierde el valor? Por qué no asigna el valor al campo.
Ya he comprobado que la variable si tiene el valor que se le asigna, incluso lo consulto antes de guardar los cambios y lo muestro con una instrucción Mensaje y la variable si tiene el dato previamente asignado.


([N2] ramiro) #2

Buenas tardes:

Si la variable es en memoria, al inicializarla en un formulario creo que tomará valor en la máquina local. Por consiguiente ese valor no estará disponible para el proceso de tabla que se ejecuta en el Servidor.

Si la ejecución se ejecuta en el propio Servidor no tengo claro cómo se comportará, pero supongo que serán valores encapsulados y cuyo ámbito de visibilidad no se cruce.

Saludos. Ramiro


([N4] velavisual) #3

@blanyi
.
.
El siguiente artículo puede ser de gran ayuda:
.
.
http://velneo.es/ambito-de-las-variables/
.
.
saludos
Antonio Vela
http://www.velavisual.com


([N3] blanyi) #4

Gracias a Ramiro y Antonio Vela.

Ya verifique y efectivamente si la variable global es de persistencia en memoria, no puedo tener acceso a su valor en los eventos de tabla, debería declararla con persistencia en disco.
El problema que veo con las variables globales con persistencia en disco es que pueden ser sobreescritas por otro usuario, de tal forma que un usuario A tendrá un valor diferente al que él le ha asignado a la variable porque un usuario B modifico el valor de variable.
Que solución hay para esto?

Yimy Mora


([N1] comercial) #5

Hola, quizá puedas usar una tabla en disco para esas variables, y su campo id corresponda con cada usuario, no se si es viable, es una idea...

Saludos.
Miguel.


([N3] blanyi) #6

Hola a todos.
Lo resolví haciendo la validación a nivel de formulario antes de guardar los cambios verifico que valor tiene la variable global y dependiendo del valor que tenga modifico un campo asignándole el valor que corresponda.
Claro que quería hacer esta validación a nivel de base de datos porque pienso que allí es donde debería estar pero en vista de la dificultad para leer la variable global decidí hacerlo de esta otra forma.