Trabajo con Genexus 8.0 U7, Generador Java U8 para Web, usando WebSphere como servidor de aplicaciones. No tengo mucho tiempo trabajando en esto, y recurro a su ayuda. Tengo el siguiente problema:
Estoy intentando acceder una aplicación de un proveedor desde una aplicación Genexus. Lamentablemente la aplicación despliega forzosamente un formulario para capturar los parámetros necesarios. Luego de ejecutarse, la aplicación devuelve un HTML indicando los resultados. El problema es que estos parámetros deben estar ocultos al usuario, ya que estos datos correspondientes ya fueron obtenidos en pantallas previas. Esto, sin mencionar el contraste a nivel estético de este formulario con el resto de la aplicación.
Se me ocurrió manipular y embeber el código HTML del formulario dentro de un Web Panel para intentar que el acceso a la aplicación sea trasparente al usuario. Para ello agregué un TextBlock dentro del web panel (Input_Archivo ) y le agregué el siguiente código HTML al evento Start.
&URLBase = "http://servidor/aplicacion.asp?"
&Cadena = &Cadena + '<FORM METHOD="post" '
&Cadena = &Cadena + 'ACTION="' + &URLBase + 'WCI=upload&WCE=tempupload&WCU=" ' + NewLine()
&Cadena = &Cadena + 'NAME="PW" ENCTYPE="multipart/form-data"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="file" name=File1 > ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=index1 name=index1 value=' + &dbCliente + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=index2 name=index2 value=' + &dbNroProp + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=index3 name=index3 value=' + '000' + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=index4 name=index4 value=' + '000000' + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=index5 name=index5 value=' + '000' + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=archivname name=archivname value=' + &SFArchivname + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=keywords name=keywords value=' + &SFKeyword + ' size="20"> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=text1 name=validate value=1> ' + NewLine()
&Cadena = &Cadena + '<INPUT type="hidden" id=text1 name=session value=' + &SFSesion + '> ' + NewLine()
&Cadena = &Cadena + ' ' + NewLine()
&Cadena = &Cadena + '<INPUT type="submit" value="Adjuntar" id=submit1 name=submit1> ' + NewLine()
&Cadena = &Cadena + '</FORM>'
Input_Archivo.Caption=&Cadena
Este código HTML es lo medular del formulario original, es decir, donde se hace el acceso a la aplicación. Con esto despliego únicamente lo que necesita el usuario, de modo que se ocultan los demás datos al usuario y solo se muestra lo que realmente necesita proporcionarle a la aplicación (una selección de archivo). Sin embargo, he aquí el problema: el botón Browse funciona bien, pero al pulsar el botón Adjuntar para enviar los datos al servidor correspondiente, el formulario (o webpanel) no hace nada, ni siquiera llega a acceder la aplicación del proveedor. Es como si no hiciera el Submit correspondiente.
1 - Alguno de ustedes podría ayudarme con esto o indicarme qué es lo que hice mal o dejé de hacer?
2 - Este código HTML podría encapsularse en una Clase Java externa de modo que pueda manipular el HTML retornado por la aplicación y ser ejecutada desde Genexus como una función? Cómo?
Agradezco desde ya la ayuda y la atención prestada.
Saludos,
______________________________
Lic. Erick A. Cisneros
Analista de Sistemas
Departamento de Informática - DyD
BBVA Banco, Panamá
===========================================================
................... AVISO LEGAL ..........................
La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico, deberá ponerlo en nuestro conocimiento inmediatamente.
===========================================================
....................DISCLAIMER............................
This message and its attachments are intended exclusively for the named addressee. If you receive this message in error, please immediately delete it from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet e-mail guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us inmmediately.
===========================================================
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20
Por consultas owner-...@gxtech.com.uy
&URLBase = "http://servidor/aplicacion.asp?"
&Cadena = &Cadena + '</FORM><FORM METHOD="post" '
.........
&Cadena = &Cadena + '</FORM><FORM>'
Claro que con eso no creo que puedas utilizar eventos por fuera de este webpanel. Es decir, si incluyes un boton antes o despues de "&Cadena", no podria asegurarte que funcione correctamente, porque las cosas despues de "&Cadena" ya no estarian en el form de genexus.
**********************
Ing. Gustavo Moreira
Genexus Consulting
Software Factory
Muchas gracias!
______________________________
Lic. Erick A. Cisneros
Analista de Sistemas
Departamento de Informática - DyD
BBVA Banco, Panamá
-----Mensaje original-----
De: Gustavo Moreira [mailto:gmor...@genexusconsulting.com]
Enviado el: Miércoles, 15 de Noviembre de 2006 10:53 a.m.
Para: jav...@gxtech.com.uy
Asunto: RE: [java-l] Embeber un HTML en un Web Panel o Clase externa