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