Hola Javier, Pos zi, funciona con 30, pero lo que no entiendo porque no funciona con 256 que el el valor maximo que esta definido en el RGLE: envvar 256A
Si hacemos un dump cuando falla veremos que la variable &ENVAR que recibe, si es de long. 256, contiene cerros a partir de la posicion 33 (ver imagen) y supongo que eso es lo que me hace fallar el programa. A mi ya me sirve tu solucion ya que yo solo voy un string y no una variable cpara pasarle el paramentro, pero entiendo que es mejor limitar al maximo la variable que se le envia. Gracias y Saludos Martí Riera 2009/5/21 Javier Mora <[email protected]> > Hola de nuevo: > > Efectivamente, el problema está en tu CL. Fíjate que el parámetro lo > defines de 256, lo que te obliga a pasar una variable de 256 bytes. > > He cambiado el programa y he dejado el parámetro en 30 bytes y ¡funciona!. > Cuando el parámetro es menor o igual de 30 bytes el sistema no te obliga a > pasar los 30 bytes. > > No sé si me he explicado bien. > > Un saludo. > > Javier Mora > > ------------------------------ > *De:* [email protected] [mailto: > [email protected]] *En nombre de *Marti Riera > *Enviado el:* jueves, 21 de mayo de 2009 17:50 > *Para:* forum.help400 > *Asunto:* Re: Mandato RTVENVVAR > > Alex, Javier, > > Gracias por la informacion. > > Javier: El codigo que me has enviado lo tenemos igual, bueno lo revisare > con lupa. > > De momento ya he descubierto algo, el programa de test que habia enviado > estaba simplificado, he probado ese programa y tambien me funciona. Ahora os > envio el que no me funciona, es casi igual pero... > PGM PARM(&ENVVAR) > DCL VAR(&ENVVAR) TYPE(*CHAR) LEN(256) > DCL VAR(&VALUE) TYPE(*CHAR) LEN(4096) > RTVENVVAR ENVVAR(&ENVVAR) RTNVAL(&VALUE) > SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&VALUE) > ENDPGM > Con lo cual ya intuyo cual es el problema el paso de parametros entre el CL > de prueba y el comando, ya que si pongo el nombre de la variable "hardcode" > si funciona. > > Bueno mañana le doy la vuelta definitiva y os digo. > > Saludos > > Martí Riera > > > 2009/5/21 Javier Mora <[email protected]> > >> Hola Martí: >> >> Yo al probar esta utilidad también me encontré con problemas parecidos, >> pero creo recordar que estaban relacionados con variables de entorno del >> trabajo o del sistema. Rebuscando encontré el problema y los fuentes que >> solucionaban ese bug. >> >> Te los envío. He probado tu ejemplo y funciona. Dime si se siguen >> reproduciendo los problemas en tu caso. >> >> Un saludo. >> >> Javier Mora >> >> ------------------------------ >> *De:* [email protected] [mailto: >> [email protected]] *En nombre de *Marti Riera >> *Enviado el:* jueves, 21 de mayo de 2009 14:04 >> *Para:* Forum.Help400 >> *Asunto:* Mandato RTVENVVAR >> >> Hola, >> >> Llevo un dia un poco espeso intentando hacer funcionar este comando bajado >> de la web: >> http://code.midrange.com/759f4f422d.html >> >> Hay una explicacion mas larga en: >> http://www.mcpressonline.com/programming/rpg/what-is-the-environment.html >> >> Lo que trato de hacer es recuperar facilmente una variable de entorno >> dentro de un programa CL. >> Ya os digo que el dia que dieron RPG ILE no fui, ja, ja !! >> >> Curiosamente he hecho un programa de test par aprobarlo y si lo ejecuto >> tal cual no funciona no devuelve nada: >> PGM >> DCL VAR(&VALUE) TYPE(*CHAR) LEN(4096) >> RTVENVVAR ENVVAR('LANG') RTNVAL(&VALUE) >> SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&VALUE) >> ENDPGM >> Pero si ejecuto un strisdb del programa rpg a partir de ese momento si >> devuelve el valor, por ejemplo de LANG que es por omision en todos los >> sistemas: >> /QSYS.LIB/EN_US.LOCALE. >> Podeis ver la variables de entorno con WRKENVVAR. >> >> Alguna pista de que estoy haciendo mal? >> >> Gracias y saludos >> >> Martí Riera >> >> __________________________________________________ >> Forum.HELP400 es un servicio m&#225;s de ServerNEWS. >> &#169; Publicaciones Help400, S.L. - Todos los derechos reservados >> http://www.help400.es >> _____________________________________________________ >> >> Para darte de baja visita la siguente URL: >> http://listas.combios.es/mailman/listinfo/forum.help400 >> > > > __________________________________________________ > Forum.HELP400 es un servicio m&#225;s de ServerNEWS. > &#169; Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja visita la siguente URL: > http://listas.combios.es/mailman/listinfo/forum.help400 >
<<attachment: ENVVAR.gif>>
__________________________________________________ Forum.HELP400 es un servicio m&#225;s de ServerNEWS. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400

