jueves, 25 de octubre de 2012

Ejemplo Servicio Rest con Genexus Java

Servicio Rest con Genexus Java

Crear el modelo de genexus con el generador de java y el DataStore de SQL Server

Configurar modelo con el generador Java
agregar en el classpath las siguientes librerias
(Se pueden encontrar en el directorio <GenexusInstall>\gxjava):
jackson-core-asl-1.5.5.jar
jackson-jaxrs-1.5.5.jar
jackson-mapper-asl-1.5.5.jar
jersey-core-1.4.jar
jersey-json-1.4.jar
jersey-server-1.4.jar


Classpath = gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar;.\drivers\jt400.jar;.\ojdbc14.jar;C:\Tomcat 6.0\lib\servlet-api.jar;jackson-core-asl-1.5.5.jar;jackson-jaxrs-1.5.5.jar;jackson-mapper-asl-1.5.5.jar;jersey-core-1.4.jar;jersey-json-1.4.jar;jersey-server-1.4.jar

ahora ya puedes crear los objetos de tu proyecto

en el momento que lo requieras Generar y ejecuta la aplicacion(F5), la primeras vez les pide los datos de la base de datos
si te marca error en la creacion de la base de datos debes asegurarte que el servidor de sql server permite la conexiones tcpip y el puerto 1433 este configurado

Si el documento te sirvio deja tu comentario o dale clic a google+

Ejemplo:
para consumir el servicio Rest

Crear procedimiento SyncReceive

Rules:
parm(out:&LVC);
Source:
&serverHost = !"192.168.0.3"&serverRestBaseURL = !"/appJavaEnvironment/rest/"&Port = 8080 //para tomcat&Url = !'GetDatos1?fmt=json'&httpclient.Host = &serverHost&httpclient
.Port = &Port&httpclient
.BaseUrl = &serverRestBaseURL&httpclient
.AddHeader(!'Content-type',!'application/json')&httpclient.Execute(!'GET', &Url)&i = 0&Datos1List.FromJson(&httpclient.ToString())
For
&Datos1 in &Datos1List  new     DatoId = &Datos1.DatoId     DatoNombre =
&Datos1.DatoNombre     DatoDireccion =
&Datos1.DatoDireccion
  endnew &i+= 1endforcommit
if
&i = 0
  &LVC = " No existen registros para agregar"else  &LVC = &i.ToString() + " registros agregados"endif

fuentes:
http://www2.gxtechnical.com/portal/hgxpp001.aspx?15,4,61,O,E,0,,31458

Requerimientos Android Smart Device en Genexus

Instalación de ambiente Android

Introducción
Android es el sistema operativo desarrollado por un consorcio liderado por Google que se ha masificado gracias a su licenciamiento de código abierto, lo que permite que cualquier fabricante lo utilice.
Android está basado en Linux y el lenguaje de programación que se debe utilizar para poder programar aplicaciones es Java.
Requisitos Es necesario tener el JDK de Java en versión 5 o 6, el mismo se puede descargar desde:
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html
Para poder desarrollar aplicaciones en Android es necesario instalar el Android SDK
El mismo se puede descargar desde: http://developer.android.com/sdk/index.html
 Setup
Luego de instalado el SDK de Android es necesario ejecutar el SDK Manager.exe del directorio de instalación
Esto desplegará la siguiente ventana que muestra los paquetes disponibles para instalar, es necesario instalar el Android SDK 2.1 y Google API 7 y el Android SDK 4.0.3 Google API 15


Después de instalado el SDK, ya se podrá generar y prototipar aplicaciones generadas en Android.

¿Por qué es necesario instalar tanto a nivel de API?
Nivel API 15 es necesario para compilar la aplicación. Sin embargo API 7 incluye un emulador más rápido, así que tener dos niveles de API instalada la aplicación se compila utilizando 15 y ejecute con 7.

Comprobación de la instalación del SDK de Android

Si tiene dudas sobre lo que Android SDK versión que ha instalado y / o qué niveles de API que soporta usted puede:
  • ejecute el comando siguiente para obtener una lista de todas las API instalado: "
    • c:\SDK_Installation_Directory\Tools\android.bat list target
  • ejecutar el Administrador de SDK en el menú Inicio de Windows o el comando siguiente:
    • c:\SDK_Installation_Directory\"SDK manager"


fuentes: http://wiki.gxtechnical.com/commwiki/servlet/hwiki?Android+Requirements,

martes, 28 de agosto de 2012

Archivos ASCII Delimitados


&Archivo = trim(&Directorio) + 'Datos.txt'
&Longitud = &Valor1.Length() + &Valor2.Length() + &Valor3.Length()
//caracter delimitador entre campos
//Si se quiere especificar el caracter de tabulación como separador,
//el valor de este parámetro debe ser el string “\t”.
//variable de tipo character
&fdel= ','
//caracter delimitador de los campos strings
//variable de tipo character
&sdel ='"'
//dfropen Abre un archivo de texto para su procesamiento.
//Es la primera función que hay que llamar para comenzar a leer un archivo de texto.
// devuelve 0 si la operacion es satisfactoria
&i = dfropen(&Archivo, &Longitud, &fdel, &sdel)

//Lee el siguiente registro (línea) del archivo de texto delimitado
// devuelve 0 si la operacion es satisfactoria
&jj=dfrnext( )
do while &jj = 0 .or. &jj=-3
     &i = dfrgnum( &Valor1)
     &i = dfrgtxt( &valor2, &valor2.Length())
     &i = dfrgnum( &valor3 ) 
     &jj=dfrnext( )
enddo
&i = dfrclose( )

referencias:
http://www.gxtechnical.com/gxdlsp/pub/genexus/java/docum/manuals/7.0/java70sp14.htm

martes, 14 de agosto de 2012

Mi primer User Control


User Control “Hola Mundo”


El propósito de este documento es explicar como crear un simple UserControl (UC) “Hola Mundo”. Una Vez terminado este ejemplo paso a paso, se tendrá un user control llamado “HolaMudo” en la caja de herramientas.

Después de arrastrar este user control a un formulario web (como lo hace normalmente con los cuadros de texto, Grid, Tablas etc.) el control solo mostrara un mensaje “Hola Mundo” en su aplicación Genexus con el color y la fuente que configure en las propiedades del control.

Lo más probable es que la creación de un user control "Hola Mundo" no va a sonar muy atractivo, pero recuerde que esto es sólo para fines de aprendizaje. Después de leer este tutorial se puede empezar a pensar en la creación de controles de usuario muy interesantes, como los menús, treeviews, los controles de Silverlight, etc.

Así que primero vamos a definir qué es exactamente el control va a hacer.

Definición del User Control “Hola Mundo”
El control deberá hacer lo siguiente:
·         Mostrar un mensaje “Hola Mundo”
·         Permitir al programador configurar el color del texto “Hola Mundo”
·         Permitir al programador configurar la fuente del texto “Hola Mundo”
·         Permitir al programador configurar el tamaño del texto “Hola Mundo”

Crear el Control
Ejecutar "UserControlEditor.exe" que se encuentra en el directorio de instalación de Genexus y pulse el botón Nuevo.

[01] User Control Designer

Introduzca el nombre del control de usuario y la ubicación de la carpeta. Todos los controles de usuario se deben colocar en el directorio UserControls que también está en el directorio de instalación de Genexus.

Nombre del User Control: HolaMundo
Ubicación del User Control:
“C:\Program Files (x86)\ARTech\GeneXus\GeneXusXEv1\UserControls\HolaMundo”

[02] Nuevo User Control

Ficha Definición del control (Control Definition)
En la ficha Definición de control, establezca el "Icono (utilizado en la caja de herramientas)" de propiedad. En este caso estamos usando un icono llamado HolaMundoIcon.ico que tiene que ser colocado en la carpeta HolaMundo que hemos creado en el paso 1. Debido a que este es un ejemplo sencillo, no hay más trabajo que hacer en esta ficha.

[03] Control Definition

 
Ficha Propiedades
Como mencionamos anteriormente, el control debe tener 3 propiedades que nos permitan establecer el "Hola Mundo" texto, la fuente y el tamaño. En consecuencia, en la pestaña Propiedades, tenemos que crear 3 propiedades:

•FontFace ◦Type: Combo
◦Default: Verdana
◦Values: Arial=Arial,Verdana=Verdana,Comic Sans MS=Comic Sans MS

•FontColor ◦Type: Text
◦Default: #000000 (black)

•FontSize ◦Type: Text
◦Default: 10

[04] Font Face
[05]Font Color

[06] Font Size


Ficha “JScript Runtime Render”
En el momento de renderizar nuestro control, Genexus invocara el método Show de nuestro archivo de render en tiempo de ejecución (se especificó bajo la ficha de definición de control).
Este archivo se puede acceder en la ficha “JScript Runtime Render” y es donde vamos a tener que programar toda la lógica principal de nuestro control. En este caso, ya que sólo desea mostrar un "Hola Mundo" con el mensaje de una fuente determinada, el color y el tamaño, el archivo de procesamiento contendrá lo siguiente:
[07] JScript Runtime Render

Tenga en cuenta que todo el código de sombreado en gris es generada automáticamente por el editor por lo que sólo tendrá que añadir el texto "Hola Mundo" con los parámetros (tipo de letra, color y tamaño) que recibe de GeneXus. En este caso la línea es:
var buffer= '<font face="' + this.FontFace +
            '" color="' +  this.FontColor +
            '" size="' + this.FontSize +
            '">Hello World!!!</font>';        
this.setHtml(buffer);


Ficha XSL Designer Render

Este paso es opcional. Cuando creas un user control, indica como mostrar su control en tiempo de diseño (en el IDE de Genexus). Puede, por ejemplo, mostrar una imagen que representa el control o que puede hacer cosas más sofisticadas, como renderizar el control de forma dinámica de acuerdo a sus propiedades.

En este caso, vamos a mostrar un simple texto "Control Hola Mundo" cuando el control se arrastra al web form. Para ello, es necesario editar en la ficha "XSL Designer Render", agregando solo el texto "Control Hola Mundo" como se muestra a continuación:


[08] XSL Designer Render - Control Hola Mundo

Después de eso el control se vera asi:

[09] UC Hola Mundo


 
Instalar el user control en Genexus

Cierre Genexus si esta abierto, y ejecute "Genexus.exe /install" bajo en directorio de instalación de Genexus. A continuación, iniciar Genexus como de costumbre.

[10] Instalar User Control

El control está terminado y listo para usarse!


Usando el user control

Ahora vamos a utilizar el control que acabamos de crear. Este es un proceso muy sencillo:


[09] Cree un web panel y arrastre el control “Hola Mundo” de la caja de herramientas

[11] Configure las propiedades
[12] Ejecute


Imagen en el user control

Ahora vamos hacer que en lugar del texto “Control Hola Mundo” aparezca una imagen
En la ficha "XSL Designer Render" vamos a cambiar esta línea
      Control Hola Mundo

Por estas:
<img>
<xsl:attribute name="src">
<xsl:value-of select="gxca:GetMyPath()"/>

<xsl:text>\HolaMundo.jpg</xsl:text>
</xsl:attribute>
<xsl:call-template name="AddStyleAttribute"/>
</img>

[13] Poner Imagen en el User Control

[14] User Control con la imagen

lunes, 16 de julio de 2012

Configurar Modelo Genexus Evolution I U7

Preparar archivos de la aplicación


·         Software a Instalar:
o   JavaSE 7 [http://www.oracle.com/technetwork/java/javase/downloads/index.html]
o   SQL Server
o   ApacheTomcat 6.0.35 [http://tomcat.apache.org/download-60.cgi] o tomcat 7.0 [http://tomcat.apache.org/download-70.cgi]

·         Crear carpeta del sistema web en C:\pahtInstallTomcat\webapps\<nombre carpeta>

·         Dentro de la carpeta <nombre carpeta>, crear la carpeta static
·         Dentro de la carpeta <nombre carpeta>, crear la carpeta META-INF y dentro de esta carpeta debe crear o copiar el archivo context.xml [https://docs.google.com/open?id=0B72G0BdzutieTUhRNGh6U3lJdjg]
·         Dentro de la carpeta <nombre carpeta>, crear la carpeta  WEB-INF

·         Dentro de la carpeta WEB-INF crear o copiar el archivo web.xml
o   Versiontomcat 6 [https://docs.google.com/open?id=0B72G0BdzutieSzN0VklNRGtzSlU]
o   Versión tomcat 7 ( renombrar a web.xml ) [https://docs.google.com/open?id=0B72G0BdzutieTWZEaTdPdXBzcGc]
·         Dentro de la carpeta WEB-INF crearla carpeta classes y lib.
·         Dentro de la carpeta lib copiar las librerías
o   gxclassr.zip
o   GxUtils.jar; (utilidades de Genexus)
o   iText.jar; (utilidades PDF)
o   jtds-1.2.jar;
o   lucene-core-2.2.0.jar

Configurar las propiedades del generador Java


·         Configurar las siguientes opciones de “Web Information”
o   Servlet directory:
C:\pahtInstallTomcat\webapps\<nombre carpeta>\WEB-INF\classes
o   use annotations for servlet definition: No (tomcat es 6.0) o Si (tomcat es 7.0)
o   Static content base URL: /static
o   Static content directory seen from client:
C:\pahtInstallTomcat\webapps\<nombre carpeta>\static 
·         Configurar las siguientes opciones de “Build Process”
o   Platform: Sun SDK
o   Classpath: gxclassr.zip;GxUtils.jar;.;lucene-core-2.2.0.jar;iText.jar;.\drivers\jtds-1.2.jar; C:\ pahtInstallTomcat\lib\servlet-api.jar
o   Compiler Path: C:\Program Files\Java\jdk1.7.0_01\bin\javac.exe
o   Make Path: C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\nmake.exe
o   Interpreter Path: C:\Program Files\Java\jdk1.7.0_01\bin\java.exe
o   Advanced
§  Use default browser: marcado
·         Configurar las siguientes opciones de “Execution”
o   Web aplication base URL: http://localhost:8080/<nombre carpeta>/servlet/

Configurar las propiedades del Data Store


·         Configurar las siguientes opciones de Access technology settings
o   Access technology to set: JDBC
·         Configurar las siguientes opciones de Connection Information
o   JDBC driver: jTDS Driver (Type 4)
o   Database name: myDataBase
o   Server name: myServer
o   Server TCP/IP port: 1433
o   User id: myuser
o   User password: mypass
·         Configurar las siguientes opciones de Database  Information
o   SQL server versión: 2005 o superior

Driver jtds-1.2.5.jar


sábado, 30 de junio de 2012

Configurar Modelo Prototipo/Producción Web con Tomcat + Java + SQL Server en Genexus 9.0


·         Software a Instalar:
o   JavaSE 7 [http://www.oracle.com/technetwork/java/javase/downloads/index.html]
o   SQL Server
o   ApacheTomcat 6.0.35 [http://tomcat.apache.org/download-60.cgi]

·         Crear carpeta del sistema web en C:\pahtInstallTomcat\webapps\<nombre carpeta>
·         Dentro de la carpeta <nombre carpeta>, crear la carpeta static
·         Dentro de la carpeta <nombre carpeta>, crear la carpeta META-INF y dentro de esta carpeta debe crear o copiar el archivo context.xml
·         Dentro de la carpeta <nombre carpeta>, crear la carpeta  WEB-INF
·         Dentro de la carpeta WEB-INF crear o copiar el archivo web.xml
·         Dentro de la carpeta WEB-INF crearla carpeta classes y lib.
·         Dentro de la carpeta lib copiar las librerías
o   gxclassr.zip
o   GxUtils.jar;
o   iText.jar;
o   jtds-1.2.jar;
o   jtds-1.2.5.jar;
o   gxclassr.jar

·         En el modelo Prototipo del proyecto, configurar las siguientes opciones de Properties
Blob local store path: /temp/
Servlet directory: C:\pahtInstallTomcat\webapps\<nombre carpeta>\WEB-INF\classes
Temp media directory: /temp
Static content base URL: /static
Static content directory seen from client: C:\pahtInstallTomcat\webapps\<nombre carpeta>\static
·         En el modelo Prototipo del proyecto, configurar las siguientes opciones de DBMS Options
Access technology to set: JDBC
JDBC driver: jTDS Driver (Type 4)
Database name: myDataBase
Server name: myServer
Server TCP/IP port: 1433
User id: myuser
User password: mypass
SQL server versión:

·         En el modelo Prototipo del proyecto, configurar las siguientes opciones de Execution
Platform: Sun SDK
Classpath: gxclassr.zip;GxUtils.jar;.;iText.jar;jtds-1.2.jar;jtds-1.2.5.jar;gxclassr.jar;C:\ pahtInstallTomcat\lib\servlet-api.jar
Compiler Path: C:\Program Files\Java\jdk1.7.0_01\bin\javac.exe
Make Path: C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\nmake.exe
Interpreter Path: C:\Program Files\Java\jdk1.7.0_01\bin\java.exe
Web aplication base URL: http://127.0.0.1:8080/<nombre carpeta>/servlet/
En esta misma ventana botón Advanced
Use default browser: marcado
Viewer path para GUI: C:\Program Files\Java\jdk1.7.0_01\bin\appletviewer.exe