INSTITUCIONAL
COMUNIDAD
BLOG
AYUDA
MI CUENTA
EN PT ES

Imagen6279S

De la versión Olimar de GeneXus: más fácil usar Web Services

(11/02/2003-00:00)
La versión GeneXus 7.5 ya permitía proveer Web Services y a partir de la versión Olimar, GeneXus brinda soporte total para web services, al incorporar WSDL Inspector, que permite consumir Web Services en forma transparente.

Alcance

Lenguajes: Java, C/SQL, .NET, Visual FoxPro, Visual Basic

Interfaces: Win, Web

 

Introducción

El WSDL Inspector permite a partir del WSDL (Web Services Description Language Inspector) de un web service definir los tipos de datos necesarios en GeneXus para consumir el web service en forma transparente, sin preocuparse de los protocolos involucrados en el proceso y su definición

 

Descripción

El WSDL es un archivo que describe el web service con toda la información necesaria para consumirlo.

GeneXus brinda una herramienta llamada WSDL Inspector que permite a partir del WSDL de un web service, definir en la base de conocimientos todo lo necesario para poder consumir los métodos del web service en forma transparente.

 

Para acceder al WSDL Inspector hay que ejecutar la opción Tools/WSDL Inspector.

 

En "Web Service URL" se debe ingresar el camino hacia el WSDL.

Puede ser referenciado por medio del protocolo http (por ej. http://api.google.com/GoogleSearch.wsdl ) o file (por ej. file:C:\Servicios\AmazonWebServices.wsdl).

Una vez ingresado el camino del WSDL se debe presionar el botón "Inspect", con lo cual en caso de no existir ningún error se mostrará la información de los distintos métodos que brinda el web service, junto con los tipos de datos necesarios para poder consumirlos.

Para poder importar la información necesaria dentro de la base de conocimientos que permita consumir el web service se debe presionar el botón "Add Reference".

En la imagen anterior se muestra la información de un web service simple, el cual cuenta con un solo método llamado BabelFish que recibe dos parámetros de entrada de tipo Carácter y retorna otro parámetro de tipo Carácter. En el mismo no existe definición para ningún tipo de datos complejo.

El siguiente ejemplo muestra otro caso en el cual el web service cuenta con más de un método y existen tipos de datos complejos:


Add reference
Como se mencionó anteriormente al presionar el botón "Add Reference" se genera dentro de la base de conocimientos los tipos de datos necesarios para poder consumir el web service en forma trasparente. O sea, se genera un tipo de datos que identifica el web service y en caso de que el mismo utilice tipos de datos complejos se genera un tipo de datos para cada uno de ellos.

De esta forma se puede definir una variable a la cual asignarle el tipo de datos definido para el web service y utilizando los métodos de la misma poder invocar a los distintos métodos que el web service provee.


Estructuras de datos

Los Web Services normalmente retornan valores en estructuras de datos. Por ejemplo, retornan un "Cliente" que es una estructura que tiene "Codigo" y "Nombre" que a su vez es otra estructura que tiene "PrimerNombre", "SegundoNombre", etc.

En GeneXus se podrá definir variables de tipo de datos "Cliente" y modificar/acceder a sus "miembros" con la sintaxis: Cliente.Nombre.PrimerNombre.

Por el momento, la definición de estructuras de datos está disponible únicamente a través del WSDL Inspector. En el futuro se incluirá un editor que permita definir las estructuras que el desarrollador entienda necesario.

Invocación de los métodos de un  web service

Volvamos entonces a la primera imagen para poder mostrar en un caso sencillo como poder consumir un web service.

En este caso al presionar el botón 'Add Reference' se agrega a los tipos de datos que maneja GeneXus el tipo "net_xmethods_www_sd_BabelFishService.BabelFishService". (Notar que en el nombre asignado al tipo de datos esta precedido por el namespace que identifica al web service, de esta forma GeneXus  asegura que no van a existir dos tipos de datos con el mismo nombre para distintos web services).

De esa forma se puede definir una variable a la cual asignarle ese tipo de datos; llamaremos a la misma "ws".

Luego podremos invocar utilizando la variable "ws" a cualquiera de los métodos que el web service provee (en este caso solo uno) de la siguiente forma: &result = &ws.BabelFish(&traslationmode, &source)

Donde &result, &traslationmode y &source son variables de tipo character.

¡Eso es todo!, de esta forma usted pudo invocar a un web service en forma sencilla sin tener que preocuparse de los protocolos involucrados en el proceso y la definición del mismo; solamente usted tuvo que dar la ubicación de su WSDL y GeneXus se encargó de esconder la complejidad y definir un tipo de datos que represente al web service.

 

Ejemplo

En el GXOpen se encuentra una KB de ejemplo en la cual se consumen tres web services; GXChart (servidor de gráficas), Babelfish (traductor de textos) y GetJoke (provee chistes agrupados por categorías).

El mismo puede ser obtenido en http://www.gxopen.com/main/hproject.aspx?176

Enlaces de interés:

WSDL Inspector
WSDL
web service

 

Relacionado
Versión Olimar de GeneXus: órdenes y filtros condicionales
De la versión Olimar de GeneXus: Validación en el cliente
Un negocio on line rentable, usa última tecnología GeneXus
Nueva versión de TEAMS con GeneXus 8.0
GeneXus Training Uruguay publicó su calendario de capacitación para el primer semestre del año
Certificaciones #GeneXus en el #GX24
En GeneXus Uruguay buscamos nuevos talentos
Trabajar en GeneXus: Todo lo que tienes que saber si quieres trabajar con nosotros #Training #Becas #BolsaDeTrabajo #GXjobs
En GeneXus México buscamos nuevos talentos
Sistema educativo, mercado laboral, empresas B, Forge y GeneXus: la importancia de la capacitación, los valores y la inserción laboral en los jóvenes
Alta demanda de profesionales TI en el mundo
Próximos cursos y certificaciones #GeneXus en América: Argentina, Colombia, Chile, Brasil, México y Uruguay
Nuevos Analistas GeneXus en el Instituto Superior de Informática #Uruguay
Toolnology continúa presentando GeneXus X Evolution 3 con cursos gratuitos #Argentina
#Mayo Próximos cursos y certificaciones #GeneXus en América: Argentina, Brasil, Colombia, México y Uruguay