El tercer plano y las constantes

Hola. Seguro que estoy haciendo algo mal. Por más que he probado cosas no encuentro donde.
Tengo un fork de vERP con un manejador de eventos CON para contabilizar una lista de facturas.
El evento lanza el proceso VTA_FAC_G_LST_CON en 3P.
Este llama a su vez al proceso VTA_FAC_G_CON en 3P.
Por último, también este llama a diferentes procesos que hacen asientos y apuntes en 1P.
Para recuperar los posibles errores en esa cadena de programas, hay una variable alfabética local MSG en todos los procesos que se va cargando con los mensajes de error cuando suceden y el evento CON muestra al final el contenido de MSG.
Los mensajes de errores están almacenados en constantes dentro del proyecto de aplicación.
Por ejemplo se hace: SET (MSG, ~ERR_FAC_ASI_VRF@cntt_app.app)
Pues cuando lo ejecuto en 3P el texto de las constantes parece evaporarse y la variable MSG retorna vacía.
Si por el contrario cambio todo a 1P retorna con los mensajes de las constantes como era de esperar.
Si en el SET añado un texto entre comillas, en plan esto:
SET ( MSG, "Prueba: "+ ~ERR_FAC_ASI_VRF@cntt_app.app )
En 3P el evento CON muestra MSG contiendo solo la palabra “Prueba:”.
Si lo hago en 1P MSG muestra “Prueba: …” con el texto de la constante.
Ahí en plan “a lo loco” también probé a poner la constante en el proyecto de datos, pero nada.
Y mira que es extraño porque en el vERP original si retornan los mensajes.
He cotejado los procesos de vERP y del fork y están iguales en lo que deben ser iguales …
:exploding_head:
¿ Alguna idea … ? :grin::sweat_smile:

Por si acaso he comprobado de manera básica todo el asunto, con el código mínimo, para averiguar si el contenido de una constante puede leerse en 3P o no.

He creado un evento que dispara un objeto proceso PROCESO1 en 3P.
Este PROCESO1 tiene la variable alfabética MSG1 y le asigno el contenido de la constante.
SET (MSG1,~ERR_FAC_ASI_VRF@cntt_app.app)
Cuando retorna al evento hago GET variable local de objeto y paso el contenido de MSG1 a otra variable también alfabética para mostrarla en un mensaje.
Sale en blanco.

Más por si acaso todavía, he hecho lo mismo en vGestión por ver si también me sucedía allí.
Y si.
Y no.
Pues si copio de mi fork la misma constante y la pego en vGestión, también sale en blanco con el mismo tema de disparar el proceso en 3P
Pero si copio de vERP la misma constante que vuelve en blanco y la pego en vGestión, devuelve correcto su contenido.

Conclusión, en mi fork de vERP se han corrompido las constantes de cara al tercer plano.
Ya decía yo que algo olía mal.

Hala, ahí os queda como dato para ilusionaros mientras trabajáis y os sucede esto mismo.
Voy a ver cómo hago para sanear mi programa. Soporte, para allá voy.

Pues parece ( oh divina misericordia ) que NO se ha corrompido mi app.
Algo sucede en mi servidor velneo cloud, pues para mi aplicación está buscando en 3P las traducciones a inglés ( idioma del servidor, 3P ) que no existen pero para otras aplicaciones funciona OK.
Y si mi aplicación la instalo en otro servidor velneo cloud sucede lo mismo pero en un servidor local con windows en español funciona Ok.

Me suena de algo, pero no recuerdo donde me pasó. Creo que en el proceso de cierre y apertura de contabilidad que tira de una constante en un proceso en 3 p.
Voy a ver si lo veo.

1 me gusta

Efectivamente el proceso es GEN_ASI_CIE_APE_3P y lo reporté en abril, pero empezó a marearme que si era un fork, que si plantilla… así que al final lo dejé por imposible. Cambie el proceso y listo.

En el proceso GEN_ASI_CIE_APE, mandé el valor de la constante a una variable local en el proceso GEN_ASI_CIE_APE_3P

Gracias por responder, Friberam.

Resulta que si elimino la constante y la vuelvo a crear tal cual manualmente ya funciona correcto.

Las demás siguen fallando en 3P. Y como son tantas … es un rollo tener que ir una por una … y como están las mías y las de vERP … tendría que haber colocado las mías en otro lugar.

Bueno, no todas se usan en 3P.

De todas formas, me parece que cuando pueda elimino las constantes. A fin de cuentas solo sirven para la traducción a otros idiomas y no creo que me sea útil eso.

Además reemplazar los mensajes con constantes entorpece la programación y su comprensión ( pensaba que era para ahorrar espacio )