La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/GeneXus/1271030-Formulas-globales-en-transacciones.html

Formulas globales en transacciones

Formulas globales en transacciones

Publicado por Chaly (56 intervenciones) el 09/06/2011 04:27:04
Estimados:

Tengo el siguiente problema: he definido en una transacción de dos niveles un conjunto de formulas globales que efectuan calculos entre los atributos del segundo nivel y en algunos casos interactuando con atributos del primer nivel, si bien los calculos se efectuan con presicion (los resultados en el reporte evidencian esta afirmacion), en mi objeto transacción, cada vez que abro un registro en modo UPD, las formulas se muestran con valor 0.

Hay alguna razón para este comportamiento?

Gracias por su ayuda.

Chaly

Formulas globales en transacciones

Publicado por Arlex Franco (101 intervenciones) el 10/06/2011 02:55:07
Pues si las formulas las tienes definidas a nivel del diseño de la estructura de la transaccion (o sea si es un atributo que se marca como Fx) entonces no puedes reasignarlo ya que se trata de un atributo formula, yo lo que haria es condicionar el comportamiento con reglas por ejemplo:

esto = (esto + esto - esto)/esto if &mode = 'INS';

asi la regla se va a disparar cuando estes insertando y te va a permitir modificar el valor cuando evidentemente estes actualizando

saludos

Formulas globales en transacciones

Publicado por Chaly (56 intervenciones) el 10/06/2011 18:14:59
Arlex, gracias por tu respuesta, les aclaro mejor el problema:

efectivamente, mis formulas al ser globales, se definen en modo diseño en el campo formula de cada atributo, el problema radica cuando evoco un objeto transacción y los atributos que deberían mostrar el resultado de un calculo producto de la aplicacion de las formulas previamente diseñadas, muestran una salida en pantalla con valor cero (reitero en el objeto transacción), como si no se hubiese efectuado la operación matematica, aunque este valor de 0 es falso pues las operaciones SI se efectuaron de manera correcta, pues, si los atributos evocados son llamados a partir de un reporte o un Web Panel, ahi se manifiestan con el calculo apropiado.

Llama la atención que la visualización de formulas con valor cero en modo transacción, se de únicamente a nivel de la grilla (es decir en transacciones que tienen mas de un nivel).

Daría la impresión que se trata de algun mal funcionamiento a este nivel del Genexus.

Gracias por sus aportes

Chaly

Formulas globales en transacciones

Publicado por Arlex Franco (101 intervenciones) el 10/06/2011 19:35:19
Ya entendi o sea que la formula si se esta ejecutando pero en la transaccion esos campos los visualizas como 0 pero al ejecutar un reporte o un query al dbms la data esta bien
prueba lo siguiente:
edit model propiedades: en design>edit model>properties>functions>allow non standart funtions
en prototipo o produccion: edit model>properties>specification \ typechecking \ functions \ allow non stantart functions

salvas y das un force generation

asi corriges todos los bugs en una especificacion con warnings con standart functions