Triggers y variables locales


([N1] sergi.esteve) #1

Hola.

No se que pasa, si es un error de velneo o qué.

Quiero que al crearse un registro en una tabla, si se cumplen unas condiciones se cree un registro en otra tabla.

Meto el código en el trigger de posterior al alta de ficha (en realidad me pasa con cualquiera de los 3 triggers)

Ese código

  • Genera una ficha en memoria
  • Modifica los campos pertinentes.
  • Hace alta de ficha.

Algunos de los campos los cargo con valores de variables globales.

Pues bien, lo hace todo, pero los valores cargados con variables globales aparecen vacíos, las variables globales en el trigger no tienen valor, ni siquiera cargando los campos de la tabla destino ca través del valor inicial, resulta que las variables están vacías.

Si corto el código y lo pongo en la capa de aplicación en lugar de en el trigger funciona sin problemas.

He probado a meterlo en un proceso y lanzarlo en 1,2 y 3 plano, con el mismo resultado.

¿Por qué???


([N1] sergi.esteve) #2

Me respondo a mi mismo.

Las variables son en memoria, supongo que se quedan en la capa de aplicación y los triggers pasan de ellas, ¿es posible?.

¿Puedo recoger de alguna forma el valor de esas variables desde la capa de datos?

Se trata de la empresa activa, que la guardo en variable, ¿se os ocurre como hacerlo?


([N2] gegeo) #3

Guarda en la tabla ese valor en un campo EMPRESA ACTIVA de la tabla, de esta forma, en el alta posterior de esta tabla, ya tienes el campo para generar la ficha en memoria y seguir con tu proceso.


([N1] sergi.esteve) #4

Es como lo he hecho, no he visto otra forma, aunque no me gusta mucho la idea de hacerlo así.