Archive for November, 2006

Tips: Tutorial como hacer un WebService con GeneXus

Wednesday, November 29th, 2006

El siguiente, es un documento que creé para de alguna forma tener un ayuda memoria de como crear un WebService con GeneXus. Tanto para publicar como para consumir.

Publicando un Webservice

Paso 1
Creamos un procedimiento que será el webservice a publicar. En este ejemplo digamos que se trata de un sencillo procedimiento que devuelve la programación de televisión de determinado día por ejemplo. Nota: No controlo condiciones ni saco la información de una tabla para no hacer más complejo el tutorial.
Debemos colocar las siguientes propiedades al objeto:

Paso2
Vamos a devolver la programación en un SDT por lo tanto lo crearemos con la siguiente estructura:

Paso 3
El fuente del programa como mencioné antes carga los datos “hardcode”

Como pueden ver en el fuente del programa, hice una aclaración de no poner “out:” en los parámetros. Realmente cuando es un SDT y se le pone “out:” indicando que es de salida, el webservice no funciona, con otras variables no SDT, no deberían tener problemas.Paso 4
Luego de tener pronto este procedimiento, simplemente especificamos y lo compilamos.
Y ya está publicado nuestro WebService.

Ahora siguiendo con el mismo ejemplo, veremos como:

Consumir un WebService

Paso 1
En diseño abrimos el WSDL Inspector, esto lo hacemos en Tools / WSDL InspectorDonde dice Web Service URL colocamos la url de donde se encuentra el WebSerivce publicado en nuestro caso era:

http://localhost/hbo/aServidorProgramacion.aspx?wsdl

En mi ejemplo el directorio virtual se llama “hbo”

Luego le damos al botón “Inspect” y vemos como nos arma la estructura del WebService para ser consolidado en nuestra kb destino cuando hagamos click en el botón “Add Reference”

Paso 2
Nos pasamos a prototipo y creamos un webpanel que consumirá el WebService y nos mostrará en un Grid, la programación.
A continuación el fuente:

La variable de tipo location, nos indica donde está el webservice que queremos consumir. En el ejemplo, los datos están hardcode pero obviamente pueden ser dinámicos.
Existe otra forma de definir el location que es mediante el archivo location.xml que debería estar en el directorio virtual donde estamos corriendo la aplicación.
Podrían definirse varios “locations” en el mismo archivo.Dicho archivo en nuestro caso tendría la siguiente información:

Nótese que hay un elemento significativo en el nombre del location

GxLocation name

Genexus muestra el tipo de datos del WebService como:

Programacion.ServidorProgramacion

Pero a la hora de utilizarlo tanto con la función como en el archivo location debemos sustituir el último punto “.” que aparezca por un “_”

La variable &ws es del tipo del WebService y es esta misma la que se usa para invocarlo.
Se puede invocar de las dos formas

&Grilla = &ws.Execute()

o

&ws.Execute(&Grilla)

El evento load muestra como cargamos la grilla de programación.

Paso 3
Especificamos, compilamos y ejecutamos el WebPanel que llamamos BuscaProgramación y el resultado que obtenemos es el siguiente:

En fin un pequeño resumen, pueden haber variantes pero este es un mini tutorial para salir adelante con un WebService en GeneXus.Más información la puede encontrar aquí.

Otros tutoriales publicados por mí en http://fabriciodls.blogspot.com/

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: Server Error in ‘/services’ Application: Generando .NET con GeneXus

Wednesday, November 29th, 2006


Generando .NET con GeneXus 9 un error que me encontré fue:

Server Error in ‘/services’ Application:

El problema es que estaba compilando con Framework 2.0 y el IIS lo tenía seteado para 1.1 como lo muestra la imagen.La solución fue setear la versión correcta del framework en la pestaña ASPNET del IIS.
Esto suele pasar cuando se tiene el 1.1 instalado y corriendo aplicaciones y luego instalamos el 2.0
Paramos, y levantamos el IIS y ya esta funcionado el objeto correctamente.

Detalle de donde obtuve la info: Manual del Generador .NET

Texto:

Server Error in ‘/services’ Application:
System.BadImageFormatException: The format of the file ‘HXXXX’ is invalid.
File name: “reorganization”

Motivos/Soluciones:

  • Se esta compilando con framework 2.0 y ejecutando con framework 1.1 o inferior
  • Se esta generando con la versión 8.0 de GeneXus o inferior y ejecutando con framework 2.0.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: Error Loading GemBox.ExcelLite.dll con Genexus y .NET cuando queremos generar un archivo en excel

Tuesday, November 28th, 2006

Cuando queremos generar un archivo excel con GeneXus y .NET nos podemos encontrar con este error,

Error Loading GemBox.ExcelLite.dll

que se debe a que no tenemos las librerías correspondientes para generar excel.

Podemos también generar excel usando Jakarta Poi.
Debemos conseguir las siguientes dlls y copiarlas en el directorio web/bin

Apache.Xalan2.dll
Apache.Xerces2.dll
Apache.Xml.Commons.dll
Jakarta.Commons.Logging.dll
Jakarta.POI.dll
JSharpLib.dll

Esto funciona con:
– .NET Framework 2.0
– JSharp framework 2.0

Verificar en las propiedades de ejecución del modelo GeneXus que el compilador C# esté apuntando al 2.o

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe

Además hay que tener en cuenta que este seteado la versión correcta del framework para el IIS en la pestaña ASPNET tal como lo mencioné en un post anterior.

Luego de haber seteado todo correctamente podemos encontrarnos con otro error:

“Could not load or assembly ‘Jakarta.POI’ or one of its dependencies”

El SAC habla de que puede no estar instalado JSharp 2.0, pero cuando me encontré con el problema no fue mi caso.

Solución:

Luego de varios intentos no pude safar de borrar el directorio “web” y sus subdirectorios (previo respaldo de dlls jakarta, images, etc), borrar el directorio virtual, compilar un main, copiar dlls, images y demás a sus correspondientes directorios, luego el build del objeto que llama al generador excel y su correspondiente compilación.

Existe mucha info relacionada en GxTechnical bajo el SAC 19780.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql

Tuesday, November 21st, 2006

Instalación de Tomcat 5.5.20 en Windows para usar con GeneXus Java sin Deployment para MySql en 16 pasos.

El presente instructivo, manual o tutorial de Instalación de Tomcat para GeneXus y MySql, no deja de ser algo que a mi me sirvió para instalar Tomcat y poder usarlo con GeneXus rápidamente.
Muchas veces instalamos una herramienta y luego tenemos que volvero a hacerlo y nos cuesta tanto trabajo como la primera vez porque nos hemos olvidado.
Aquí un ayuda memoria de los pasos para instalar el Tomcat 5.5.20 para usarlo con GeneXus 9.0 y el generador java.

Espero que este instructivo siga vigente por mucho tiempo, así que como hago referencia a bajar algunos Archivos de Internet, y estos no siempre están disponibles después de un tiempo determinado, voy a subir los archivos que se necesitan a un ftp propio por si quieren bajarlos de ahí.

Espero les sea útil.

Paso 1
Primero que nada y para que vayas ganando tiempo mientras vas leyendo el instructivo te paso lo que tienes que bajarte y los links.

apache-tomcat-5.5.20.exe

jdk-1_5_0_09-windows-i586-p.exe

mysql-connector-java-5.0.4.zip

mysql-5.0.21-win32.zip

mysql-administrator-1.1.9-win.msi

nmake.zip

Paso 2
Recomiendo desinstalar la versión de Tomcat que tengan instalado, cuidado porque en la desinstalación pregunta si deseas eliminar las aplicaciones que

tengas, y puede suceder que tengas una aplicación particular ya funcionando en tomcat con otra versión anterior y la borres.
Te recomiendo que la copies a otro lugar.
Si no entiendes que estoy diciendo fíjate en :

C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps

si tienes alguna aplicación que sea tuya, si la tienes respaldala en otro lugar del disco y luego dile al wizard de desinstalación de tomcat que borre todo.

Paso 3
Si tienes instalado el JDK desinstalalo y si quieres puedes desinstalar el runtime también para que no te de problema con las versiones.

Paso 4
Instalate el jdk-1_5_0_09-windows-i586-p.exe
Cuando te pida la ruta de instalación si quieres luego seguir el ejemplo al pie de la letra, te recomiendo instalarlo en:

C:\Java\jdk1.5.0_09

Paso 5
Instalate el apache-tomcat-5.5.20.exe
En cierto momento el wizard de instalación te pregunta donde está el JDK y te pone una ruta por defecto, tu debes buscar la que mencioné en el paso 4.

Paso 6
Luego de instalado el Tomcat te debería quedar en la barra de tareas el ícono del monitor de tomcat.

Si no aparece el monitor del tomcat puedes ejecutarlo

y debes levantar el tomcat si no esta levantado

Paso 7
Tomcat no ejecuta servlets que no estén detallados en el archivo web.xml de cada aplicación.
Como este instructivo no muestra como hacer deployment debemos descomentar las lineas para que se permita la ejecución de clases anonimas.
Para esto debemos ubicar el archivo web.xml en C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\conf
editarlo, y buscar el siguiente código:

Lo que haremos es cerrar y abrir el comentario para que luego cuando hagamos deployment sea más fácil ubicar que es lo que tenemos que comentar.
Quedando el código de la siguiente forma:

También debemos hacer lo mismo con el siguiente código:

Paso 8
Para ver si está todo bien con el tomcat, lo bajamos y lo volvemos a subir con el monitor tomcat y abrimos el navegaro y colocamos la siguiente url:

http://localhost:8080/servlets-examples/servlet/HelloWorldExample

Donde nos debe aparecer “hola mundo” como texto en la página.

Paso 9
Podemos ver el administrador de tomcat si ponemos la siguiente url:

http://localhost:8080

Paso 10

Nos colocamos en el directorio C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps y creamos un nuevo folder con el nombre de nuestra

aplicacion por ejemplo “mi_sistema”

Dentro de este folder “mi_sistema” creamos los folders “images”, “temp” y “WEB-INF”.
Dentro del folder “WEB-INF” creamos los folder “classes” y “lib”.

Paso 11
Descomprimimos el archivo mysql-connector-java-5.0.4.zip (anteriormente bajado) en una carpeta temporal y busacmos el archivo

mysql-connector-java-5.0.4-bin.jar que es el connector jdbc.

Copiamos este archivo al folder “lib” creado en el Paso 10.

En este mismo folder copiaremos otros archivos “.jar” que se encuentran en el directorio de la instalación de GeneXus

C:\Archivos de programa\ARTech\GeneXus\GeneXus90\gxjava

Estos son:

gxclassr.jar (este archivo no se encuentra con esta extensión sino que se encuentra como “.zip”, debemos copiarlo y luego renombrarlo a “.jar”)
GxUtils.jar
iText.jar

Paso 12

Instalamos mysql con mysql-5.0.21-win32.zip y luego creamos la base de datos en nuestro ejemplo “mi_sistema” con el administrador de base de datos de tu

preferencia. Puedes usar si quieres el mysql-administrator-1.1.9-win.msi que bajaste en el Paso 1

Paso 13
Copiaremos al folder C:\Java (creado en el Paso 4) los siguientes archivos necesarios que se harán referencia desde Genexus

El connector jdbc que usamos en el Paso 11 mysql-connector-java-5.0.4-bin.jar
Por que este lo vamos a tener 2 veces copiado? Porque en teoria podrías tener el tomcat instalado en otra maquina, y serían usandos en momento de ejecución

por tomcat. Aquí estamos copiando los archivos que serán utilizados por genexus.

El nmake.exe y nmake.err (es un utilitario que permite construir proyectos a partir de archivo .mak. Lo provee el Visual Studio .Net ,también es provisto por

otros lenguajes que utilizan Makefiles, como Java) esta dentro del zip nmake.zip

Paso 14

Ahora en Genexus, configuraremos las propiedades del modelo se la siguiente forma.
Creamos el nuevo modelo de prototipo o produccion con el nombre correspondiente y las siguientes características

El Enviroment
Languaje: Java
User Interface: Web Form
DBMS: MySql
Target Path: Data002

Luego cuando quiera hacer el impacto de base de datos le damos cancelar, para nosotros definir las propiedades a mano sin el wizard

En el boton Properties

En el nodo Client Server Information

Blob local storage path:
/temp/

En el nodo Web Information

Servlet Directory :
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps\mi_sistema\WEB-INF\classes

Temp media directory:
/temp

Static Content Base URL:
/images

Static content directory seen from client:
C:\Archivos de programa\Apache Software Foundation\Tomcat 5.5\webapps\mi_sistema\images

En el boton DBMS Options

Algunos datos obligatorios a completar

Access technology to set: JDBC

Database name: mi_sistema

Server name: localhost

Server TCP/IP Port: 3306

Connect to server: At first request

Show connection dialog: Never

Userid:Usuario

User password: password

MySql Version: 4.x to 5.0.2

En el boton Execution

Plataform: Sun SDK

Classpath:
gxclassr.zip;GxUtils.jar;.;C:\java\mysql-connector-java-5.0.4-bin.jar; C:\Archivos de programa\Apache Software Foundation\Tomcat

5.5\common\lib\servlet-api.jar

Compiler Path:
C:\Java\jdk1.5.0_09\bin\javac.exe
direct
Make Path:
C:\Java\nmake.exe

Interpreter Path:
C:\Java\jdk1.5.0_09\bin\java.exe

Web Aplication Base URL:
http://localhost:8080/mi_sistema/servlet/

Boton Advanced

Web Browser Settings: Use Default Browser

Luego al final boton Set as default

Para comprobar que la configuración de Genexus con respecto a Tomcat quedó en forma correcta, escribe la siguiente url en el browser:
http://localhost:8080/mi_sistema/servlet/com.genexus.webpanels.gxver

El mensaje que debe aparecer para indicar que está todo ok es el siguiente:
Running GeneXus Runtime Classes Version 9.0.2.079

Paso 15

Crear una trn en diseño e imapctarla en el modelo recién configurado, o si ya teníamos transacciones creadas, solo hacer el impacto de base de datos.
Build / Impact Database

Reorganize

Paso 16

Armar los web panels main de prueba, especificar y compilar.
Ejecutar la aplicación en http://localhost:8080/mi_sistema/servlet/hmain

Felicitaciones!!!
Usted ya tiene andando su aplicación en java.

Espero le haya sido util este instructivo.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: Server Error in ‘/’ Application Generando .Net con Genexus

Tuesday, November 21st, 2006

Server Error in ‘/’ Application.

The resource cannot be found.

Si estamos generando .Net con GeneXus, una de las causas de este error puede ser porque no exista el directorio virtual.

Solución, si no tenemos archivos externos para perder, es borrar el directorio web debajo del data00x, hacer build all y compilar el main

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com

Tips: No se puede mostrar la página con IIS preparando ambiente para .Net con GeneXus

Thursday, November 9th, 2006

Este error puede darnos cuando luego de haber instalado el IIS, cuando ponemos la url http://localhost para probar si carga la página de inicio del IIS, esta no funciona.

Una de las causas puede ser que hayamos instalado el IIS, luego de ya tener instalado el Microsoft .Net Framework.

Luego de buscarle la vuelta para solucionarlo, corriendo distintos comandos de líneas encontrados en internet, no tuve más remedio que desinstalar las 2 versiones de .Net Framework que aún convivían en mi máquina, desinstalar el IIS, reiniciar el pc, luego instalar el IIS primero, y por último el .Net Framework que deseaba usar.

Espero les sirva a ustedes también. Suerte.

Fabricio De los Santos
Gerencia de Proyectos –
Consultoría GeneXus –
ERP – Sistemas de Misión Crítica – Bases de Datos.

Vea mis blogs en:
www.fabriciodelossantos.com