Tuesday, October 23, 2012

Construyendo una applicacion mobil con PowerBuilder (o al menos intentandolo...)

Aviso: Este blog es una prueba. Un intento por construir algo que no representa en ninuna manera a SAP o Sybase.

Mientras estaba en el SAP TechEd de Las Vegas, alguien me pregunto si podia utilizar PowerBuilder para construir aplicaciones mobiles...en ese momento respondi con sinceridad diciendole que no tenia ni idea, pero que iba a trabajar en eso apenas tuviera tiempo. Este blog es producto de eso...

Primero empeze haciendo una busqueda en la web, y encontre que el Pocket PowerBuilder era utilizado para ese proposito, pero ahora esta descontinuado. Asi que segui buscando...

Luego encontre el Appeon Mobile for PowerBuilder, pero no es un producto gratuito y realmente no queria hacer un blog publicitario, asi que elegi hacer algo mas...

PowerBuilder ahora provee .NET Web Forms Applications que basicamente convierte nuestra aplicacion a una pagina ASP.NET, que puede ser renderizado en un dispositivo mobil, asi que ese el metodo que elegi para este blog.

Antes de comenzar, dejemos claro que yo no soy un desarrollador web ni tampoco un programador PowerBuilder asi que mi experiencia en ambos es bastante limitado.

Cuando recien comenze a hacer mis pruebas, tuve muchos problemas y dolores de cabeza, asi que aqui esta lo que hice para que ustedes no tienen que sufrir lo mismo que yo...


Si no estan activos, necesitamos activar algunos servicios, asi que vamos a Control Panel --> All Control Panel Items --> Programs and Features and then Turn Windows features on or off.


En el Application Development Features escogemos .NET Extensibility, ASP, ASP.NET, ISAPI Extensions and ISAPI Filters.

Luego vamos a Run --> inetmgr y hacemos lo siguiente.



Hacemos doble click en ISAP and CGI Restrictions y hacemos Allowed en todos.

Ahora, estamos listos para movernos a PowerBuilder. Para esto, necesitaremos una conexion con un sistema SAP HANA. Si no sabes como hacer esto, por favor lean mi blog Power Builder - El nuevo chico de la cuadra del Developer Center.

Creamos una nueva aplicacion y escogemos .NET Web Forms Application. La aplicacion se va a llamar web_pb_hana.



Escogemos Grid y luego SQL Select.



En la pantalla, simplemente escogemos CARRID y luego Design --> Disctinct.


La llamamos dg_carrid.

Luego, creamos otra pero esta vez escogemos External y lo llamamos Carrid.


En la ventana necesitamos indicar que el DataWindows va a ser dg_carrid (para que asi sepa de donde obtener los datos) y tambien especificar carrid y ambos Display y Data Columns. Una cosa importante es elegir las opciones Always Show Arrow, Vertical Scroll Bar y AutoRetrieve.



La llamamos ff_params.

Luego, creamos un ultimo DataWindow, Grid nuevamente y SQL Select otra vez.

Seleccionamos MANDT, CARRID, CONNID, COUNTRYFR y COUNTRYTO.

Escogemos Design --> Retrieval Arguments (Esto es muy importante y nos va a permitir pasar los valores del Drop Down control a nuestro reporte). Lo llamamos Carrid.



En la pestana Where llenamos el parametro y el argumento. Lo llamamos dg_report.

Ahora, podemos ir y crear un Window.


En el Layout simplemente deberemos arrastrar y soltar el dd_report y el ff_params.


La llamamos dg_window. El boton se llamara btnreport.

Ahora que estamos listos con nuestro Layout, necesitamos regresar a nuestro Database Painter y copiar el Preview generador por la conexion a SAP HANA.



Hacemos doble click en el icono de la aplicacion y copiamos el siguiente codigo (la primera parte se hace  pegando el Preview que copiamos anteriormente).


Ahora, hacemos doble click en dg_window y luego doble click en btnreport.


Regresamos al layout de dg_window y hacemos doble click para elegir Script.


Ahora podemos ejecutarlo y por supuesto nos abrira un browser de Internet.



Proximo trabajo, es abrir el emulador, asi que nos vamos al emulador de Android y en vez de pasar localhost, usaremos 10.0.2.2/web_bp_hana.


Por alguna razon...nos pedira que abramos un nueva ventana.



En realidad...no funciona...cuando escogemos el Carrid y presionamos el boton Show Report, veremos que esta cargando, pero luego nada...asumo que tiene que ver con el renderizado puesto que se genera una pagina ASP.NET.


Ni modo...intente con el emulador de BlackBerry y fue aun peor...ni siquiera queria conectarse a la pagina principal...asi que...me dije a mi mismo...ASP.NET? Windows Phone deberia funcionar...

Para el Windows Phone, podemos seguir pasando el localhost, lo cual es bastante bueno.



Como pueden ver...se ve realmente pequeno...pero por lo menos funciona...



Como ya lo dije...no soy un desarrollador web...asi que no se si esto puede ser corregido en la pagina ASP.NET generada o no...asi que simplemente regrese a PowerBuilder e hice todo mas grande...Font 24 fue la clave....


Asi que...al menos se ve un poco mas decente...

En fin...aqui tienen una aplicacion construida en PowerBuilder que se ejecuta en un Windows Phone y lee datos desde SAP HANA -;)

Saludos,

Blag.

1 comment:

Anonymous said...

Muy buen post, ha pasado tiempo pero aun es muy util, gracias.