viernes, noviembre 24, 2006

Uso de &Mode no Documentado...

Hace un par de semanas teníamos que implementar una especie de auditoria para un sistema que íbamos a poner en producción en pocos días.
Mediante GXPublic generamos unos programitas que se encargaban de devolver un xml con el valor correspondiente a la tabla que se le pasara.
En el evento Start de todas las TRN pegamos dos líneas de código similares a las que pongo aquí:
 
Event Start
    .......
    
    &Clave_Tabla = Trim('') + Trim(PaisCod) + '|' + Trim(Str(Dptcod)) + '|'
    PAuditoriaStart.Call(Tablas.PAIDEPZON,'PAIDEPZON',&Clave_Tabla, &Mode, &Xml_Clave_Origen2,&Xml_Origen2)
EndEvent  // Start
 
Después de haber realizado el cambio en 500 TRN del sistema y hacer build all + compilación completa probamos y en todas las TRN teníamos un comportamiento no esperado. En algunas TRN cuando presionábamos el botón confirmar nos hacía un Return, en otras nos daba un mensaje de que el registro 0 no existia.
 
Después de haber probado miles de cosas consultamos a Soporte, después de plantear la situación soporte de Artech nos dio una gran mano ya que analizamos el problema juntos. Por suerte la gente de Soporte consulto a desarrollo del generador Java y revisando el código generado se dieron cuenta de que se estaba haciendo un chequeo del &Mode.
 
En realidad nosotros no usábamos el &Mode para nada, solo que se lo pasábamos al procedimiento AuditoriaStart pero adentro no lo modificabamos. El &Mode tampoco lo pasábamos en las rules ni nada, en síntesis el &Mode no participaba en nada.
 
Al final nos explicaron de que el especificador si encuentra al &Mode en el Start lo usa como si fuera una Rules por eso nos estaba haciendo un control ya que el &Mode no traía un valor valido.
 
La verdad de que yo nunca me hubiera dado cuenta de eso ya que en ninguna documentación aparece de que no se puede usar el &Mode en el evento Start llamando a un proc. :-)
 
Por suerte tuve el apoyo se Soporte de Artech para solucionar este problema, al final lo que hice fue quitar el &Mode y listo.
 
Lo documento por si a alguien le pasa lo mismo.
 
 
 
 
 
 
 
 

No hay comentarios.: