From 7e166ca85225df374461c60b3999a3300233ed6f Mon Sep 17 00:00:00 2001 From: Jhonny Soto Date: Mon, 19 Oct 2026 12:19:21 -0400 Subject: [PATCH] JSOTO MainMenu: lanza cada programa desde su ruta de seg0005 y con el runtime del menu - Cada programa arranca parado en su ruta de seg0005 (cd /d), como en 3.20: ahi estan cert\, filesXML\, net6.0\, tmp\... que la factura electronica busca con rutas relativas, y sus .42m. Antes heredaba como directorio de trabajo la carpeta del despliegue del GAR, que cambia en cada deploy y llego a tener .42m de 3.20 (-6201 Bad version). - Usa %FGLDIR%\bin\fglrun (el runtime del menu) en vez del primer fglrun del PATH. - Ya no imprime usuario y clave en la consola/log del GAS. Probado en .251 (despliegue mbs-20261019-121056): cgprmt001 y cgprmt004 OK. Co-Authored-By: Claude Opus 5.5 --- PROYECTO/otrodir/MainMenu.4gl | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/PROYECTO/otrodir/MainMenu.4gl b/PROYECTO/otrodir/MainMenu.4gl index 136e172..47f0201 100644 --- a/PROYECTO/otrodir/MainMenu.4gl +++ b/PROYECTO/otrodir/MainMenu.4gl @@ -96,6 +96,7 @@ END MAIN FUNCTION show_mbs(d) DEFINE d ui.Dialog DEFINE rdir, rmbs INTEGER + DEFINE runtime STRING DEFINE cmd STRING,file_path VARCHAR(100), strconect VARCHAR(20) @@ -116,9 +117,24 @@ FUNCTION show_mbs(d) a.programa = pprograma # LET file_path = 'E:\\MARMOTECHC\\BIN320' DISPLAY BY NAME file_path,pperfil - DISPLAY "mainmenu credenciales: ",usuario clipped," ",clave clipped," ",file_path clipped - LET cmd = "fglrun ",file_path CLIPPED, "\\",mbs[rmbs].prog, ".42r " ,usuario CLIPPED," ",clave CLIPPED, + -- (antes imprimia usuario y CLAVE en texto claro en la consola/log) + DISPLAY "mainmenu ejecuta: ",mbs[rmbs].prog CLIPPED," desde ",file_path CLIPPED + -- Mismo runtime que el menu (no el primer "fglrun" del PATH del servidor) + LET runtime = fgl_getenv("FGLDIR") + IF runtime IS NULL OR runtime.getLength() = 0 THEN + LET runtime = "fglrun" + ELSE + LET runtime = '"', runtime, '\\bin\\fglrun"' + END IF + LET cmd = runtime," ",file_path CLIPPED, "\\",mbs[rmbs].prog, ".42r " ,usuario CLIPPED," ",clave CLIPPED, " ",pprinter1 ," ",pprinter2, " ",ckprinter," ",file_path," ",strconect + -- El programa arranca parado en su ruta de seg0005 (como en 3.20): ahi estan + -- cert\, filesXML\, net6.0\, tmp\... que la factura electronica busca con rutas + -- relativas, y sus .42m. Sin esto heredaba como directorio de trabajo la carpeta + -- del despliegue del GAR (que cambia en cada deploy y llego a tener .42m de 3.20). + IF file_path IS NOT NULL AND LENGTH(file_path CLIPPED) > 0 THEN + LET cmd = 'cd /d "', file_path CLIPPED, '" && ', cmd + END IF RUN cmd WITHOUT WAITING UPDATE seg0001 SET ultimo_programa_ejecutado = pprograma WHERE seg0001.usuario = usuario