Modificar campo, que no se modifica


([N1] Giuseppe::Komenco) #1

Hola a todos, tengo un postregay

Veamos, tengo el comando de la imagen en un evento Alta Interno al Alta.
El primer mensaje me devuelve 0.
Grabo 1 (es un campo booleano).
El Segundo mensaje me devuelve 1

Pero luego en la BBDD se queda en 0.

En principio no tengo ningún otro lugar fuera de ese trigger que se toque ese campo, y de hecho, dentro del mismo trigger, hay otro sitio, pero lo tengo controlado con mensajes y no se llega a ejecutar.

Alguna idea?





([N1] wikan) #2

Buenas tardes @Giuseppe, para poder modificar campos en los trigger tiene que se en el Anterior solamente.
Los demás eventos, se producen después de modificar la ficha


([N4] José A. Martínez) #3

Corto y pego de un post de Velneo:

Triggers de Alta:

Anterior a un alta de ficha: El proceso es disparado antes de que la ficha sea guardada en disco.

Interno a un alta de ficha: El proceso es disparado después de que la ficha haya sido guardada en disco y antes de disparar las actualizaciones.

Posterior a un alta de ficha: El proceso es disparado después de que la ficha haya sido guardada en disco y después de disparar las actualizaciones.

Parece que dice bien claro que en el trigger interno “la ficha ya esta guardada”, o sea, que aunque modifiques campos no va a funcionar… Lo de tus mensajes es un espejismo, el campo parece que acepta el valor pero en realidad no guarda…

Solo puedes modificar campos en el trigger anterior…

Saludos.


([N1] Giuseppe::Komenco) #4

Vaya,no lo sabia,podría lanzar un mensaje en el Vadmin o algo,o directamente no permitir usar la instrucción.

La verdad es que siempre he usado.triggers anterior, y encima llevaba tiempo sin tocar velneo así que…

Gracias a ambos :wink:


([N1] Giuseppe::Komenco) #5

Pues sigue sin funcionar.

Un par de detalles que no mencioné (el cansancio…) en su momento.
“Modificar campo” lo lanzaba en un evento interno, pero de otra tabla. Es decir, en un evento interno de una tabla, hacía un Moficar FIcha Maestro, y ahí dentro hacía el modificar de esa tabla. Es decir, en el alta de un documento, pretendo cambiar el valor de un maestro.

En resumidas cuentas. Cuando hago una factura con una condición de pago en esepcífico, necesito acceder a la ficha del cliente a modificarle un campo, y no se graba esta modificación, aunque vAdmin “si me dice” que se grabó, con espejismos o sin ellos :stuck_out_tongue:


([N1] Giuseppe::Komenco) #6

Solucionado, encontré mi fantasma. Modificaba ese campo en otro punto que no había chequeado, usé el debugger y localicé el problema :slight_smile:

Gracias por vuestro tiempo