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

