No se actualizan saldos

Buenas tardes.
Se me presenta una situación.
Tengo una Tabla CUOTAS que entre otros contiene dos campos númerico: uno llamado #INT_CORRIENTES, otro llamado #PAGADO_INTERESES_CTES y un campo formula llamado #SALDO_ICORRIENTES compuesto por la formula (#INT_CORRIENTES-#PAGADO_INTERESES_CTES).

Tengo otra tabla PAGOS desde la cual tengo actualizción hacia la tabla CUOTAS tal como lo muestra la imagen adjunta. El campo #PAGADO_INTERESES_CTES se actualiza desde la tabla pagos.

La situación que se me presenta es que tengo un evento en el que cargo las cuotas y recorro las lista de cuotas y por medio de un tubo de ficha de cuotas a pagos genero los pagos. El asunto es que dentro de este mismo evento más adelante consulto el valor de #PAGADO_INTERESES_CTES y lo devuelve como cero (0) y el #SALDO_ICORRIENTES lo devuelve igual a como estaba antes de registrar el pago. Lo correcto es que si al inicar el proceso el saldo es 100 y se realiza un pago por 20 el saldo debería ser 80, pero no, sigue mostrando 100.

Esto es dentro del evento, porque apenas termina el evento y reviso la rejilla allí si aparecen bien los valores.

Será que con lo que les he comentado, alguien me puede indicar donde puede estar el error.

Gracias.

YIMY MORA ACONCHA

Hola creo que seria mas ilustrativo ver el proceso, a mi una vez me paso, y tuve que usar “calcula campos dependientes” para que actualizara la interfaz donde hubiera campos que dependian de que se haya disparado algun cambio

A mi me pasó algo parecido en una ocasión. El problema tenía que ver con el refresco de la caché durante el proceso. Prueba a lanzar el proceso en tercer plano. En ese caso no hay caché y ves el dato actualizado.

Otra cosa que puedes probar es utilizar “modificar ficha seleccionada” cuando vayas a leer el dato. Aunque parece no tener sentido, eso hace que obligues a ir a leer la ficha a disco y recoger el valor actualizado.

Son dos casos que se me han dado y he resuelto por prueba y error, así que la explicación cientifica no la se.

Un saludo.

Hola YIMY MORA ACONCHA.

Plantea siempre los procesos y manejadores como Transacciones, es decir, hasta que no termina el proceso o manejador, la Transacción estará abierta y sin terminar, por lo tanto no debes consultar las actualizaciones que se hayan producido hasta que no termina la Transacción.

Así, consulta el valor de #SALDO_ICORRIENTES una vez que ha terminado el proceso o manejador que lo ha actualizado.

El problema es que mientras dura la transacción, los bloqueos evitan que ese valor se refresque en el cliente.

No sé si esto es un comportamiento previsto en Velneo o es un mal comportamiento que se debería de solucionar.

Consúltalo con soporte y nos cuentas.

Saludos
Paco Satué

Buenos días.

Gracias a los que han aportado sus comentarios para ayudarme.

Aun no tengo respuesta de soporte, pero ya les pase el caso, estoy a la espera de su ayuda.

Pero temporalmente lo he resuelto con la indicación de Gonzalo Torre, a quien agradezco su aporte, fue muy valioso porque me encontraba atascado.

En el evento tenía la línea Leer Ficha Seleccionada y la cambié por MODIFICAR FICHA SELECCIONADA y efectivamente de esa manera si me presenta los valores actualizados y los saldos de manera correcta. Pero no es la solución ideal, pues no es necesario la instrucción Modificar Ficha Seleccionada porque realmente, en mi caso particular, solo me interesa es consultar el saldo.

Gracias Paco por tu explicación; entiendo que el motivo por el cual los valores no se muestran actualizados es porque la transacción no se ha cerrado, pero como resolver una situación como esta, en la que necesariamente, dentro del mismo evento, tengo que volver a consultar el saldo de una ficha?

Dios les bendiga.

YIMY MORA ACONCHA

Buenas tardes Yimy,

Me alegro de haberte podido ayudar. La solución de cambiar “Leer ficha” por “Modificar ficha” me la dieron en soporte. No es una solución ideal, está claro, pero a mi me funcionó.

Un saludo

Hola, se me ocurre que si se pudiera separar el proceso en varios, el proceso que modifica y actualiza debe de ir solo y ser disparado, cuando este termine terminará la transacción, luego con otro leeras lo que te interese y ya estará actualizado, digo de memoria, no se si aporto algo o digo alguna ‘burrada’.

Saludos.
Miguel.

Buenos días, de nuevo por aquí, para compartir con ustedes la respuesta de Soporte respecto a la iquietud aquí planteada.
Efectivamente Gonzalo tenía razón, el asunto está en la cache del cliente y para actualizar el dato actualizado de una ficha dentro de una transacción hay que usar “Modificar Ficha Seleccionada” así no vayamos a modificar nada, Leer Ficha seleccionada no sirve en este caso particular.

La respuesta de Soporte fue esta:

[N4] avela (Centro de soporte de Velneo)

19 de nov. 17:50
Estimado cliente:

Buenas tardes,

Revisando el documento .pdf que adjuntó -no lo ví anteriormente-, observo que usa el comando -Leer ficha seleccionada-, pruebe a sustituirlo por -Modificar ficha seleccionada- ya que con esto forzamos a Velneo al refresco de la caché de fichas y el saldo debería quedar actualizado.

Si tienes dudas o quieres realizar cualquier otra consulta, estaremos encantados de atenderte.

Un cordial saludo,

Antonio V.

A lo que yo pregunté:

[N2] blanyi

20 de nov. 16:14

Buenos días.

Gracias por su respuesta.

Lo he resuelto cambiando la línea Leer Ficha Seleccionada por Modificar Ficha Seleccionada, pero aun me queda la inquietud de porque no se refresca el saldo, leyendo la ficha seleccionada. En mi caso particular no tengo la necesidad de Modificar Ficha porque sobre ese maestro no voy a hacer ninguna modificación, los cambios se hacen con una actualización que se dispara desde la otra tabla.

Ahora bien, yo entiendo que la ficha queda bloqueada por la transacción, pero el asunto es que si usted mira bien el código del PDF adjunto verá que hay un ciclo que va leyendo varias fichas, de tal manera que, por poner un ejemplo, en una pasada se leen los datos de la ficha que tiene el ID 5610 de la tabla CREDITOS_DT y a esa misma ficha se le actualizan unos campos desde la actualización que se dispara desde la tabla CREDITOS_PAGOS, el proceso continua y mas adelante, digamos por allá unas 60 vueltas más adelante se vuelven a cagar los datos (cargar pluarales) de la table CREDITOS_DT y se seleccion la ficha con ID 5610 y se vuelve a leer esta ficha.

Mi pregunta es: ¿No debería mostrar los datos actualizados en este punto? teniendo en cuenta que la ficha fue leida, actualizada y liberada para leer otras fichas y luego se vuelve a cargar y leer la ficha.

Cordial Saludo.

YIMY MORA ACONCHA

Y soporte me aclara con esto:

[N4] avela (Centro de soporte de Velneo)

23 de nov. 9:31
Estimado cliente:

Buenos días,

Esto sucede como consecuencia de la caché local de registros, de ahí que usemos el ‘Modificar ficha seleccionada’ en lugar de ‘Leer ficha seleccionada’, la modificación fuerza a la lectura de nuevo del registro en el servidor y es en éste momento cuando sí se actualiza la ficha local del caché del cliente.

Es algo que debemos tener en cuenta cuando es una transacción queremos leer la misma ficha si durante la transacción se realizan actualizaciones.

Si tienes dudas o quieres realizar cualquier otra consulta, estaremos encantados de atenderte.

Un cordial saludo,

Antonio V.

Espero que sirva para otros que pudiera presentarseles la misma situación.

Feliz día y que Dios les bendiga.

YIMY MORA ACONCHA