Re: [gx-l] registro fue modificado

La transacciones funcionan de la siguiente manera:

1 Cuando la abrís en modo modificación, lee todos los valores, los muestra en pantalla y se los guarda en variables. Pero no bloquea nada en la base de datos.
2 Hacés las modificaciones y confirmás (todavía no hace nada en la DB)
3 Hace las validaciones de claves foráneas, reglas error, etc.
4 Si hasta acá todo va bien, lee de vuelta y compara los valores originales (que se había guardado) con los valores actuales (recien leídos), si hay alguna diferencia da tabla fue modificada.
5 Guarda los nuevos valores en la tabla
6 Hace commit

El paso 4, generalmente da error cuando otro usuario cambió el registro mientras vos estabas con la transacción abierta. Pero hay otras situaciones en las que puede pasar:
* Algún bug de GX en el que el valor original no queda bien guardado, ej, he tenido problemas con la precisión de decimales. A veces en la base de datos los valores se guardan con más decimales que en GX y eso te puede dar problemas al comparar el valor viejo con el nuevo.

* Que tengas alguna regla que llame a un procedimiento que haga un cambio sobre el propio registro, pero que no esté AfterValidate.

* Que entre los datos de la transacción haya algún acumulador o dato que otros procesos lo actualicen. Ej. Si en la tabla cliente, guardás una fecha de "última venta", si otro usuario está ingresando una Venta, es probable que llame a un procedimiento que actualice ese valor sobre la tabla Cliente. Entonces al usuario que está modificando la tabla cliente le va a dar tabla modificada.


Espero que esto te sea de ayuda.

Saludos,
Pablo Moleri


From: "Alejandro De Agosto" <adeagosto@adinet.com.uy>
To: gx-l@gxtech.com.uy
Sent: Jueves, 29 de Diciembre 2011 11:08:36
Subject: [gx-l] registro fue modificado

Hola foro,

Trabajamos con gx9, visual fox 6.0, sql2005 server.

Hay un usuario que tiene una pantalla abierta de una trn de clientes.

Cada 4 o 5 registros que modifica le aparece el mensaje "cliente fue modificada"

Lo raro es que a ese usuario le pasa solamente.

 

Hay manera de saber si en ese instante alguien más está trabajando con ese registro exactamente?

 

Gracias

 

0 Response to "Re: [gx-l] registro fue modificado"

Publicar un comentario