- Cuadernos 4D - http://www.faq-mac.com/4D -
¿Cómo invocar un servicio Web desde 4D?
Publicado por: redaccion el 16th Julio 2007 @ 19:19 en Programación 4D | No hay comentarios
Cuando un servicio Web está publicado, puede ser invocado desde cualquier aplicación o cualquier lenguaje compatible con el protocolo SOAP. Hoy en día casi cualquier lenguaje de programación lo permite: Java, .NET, ActionScript, Delphi y obviamente 4D.
Con 4D es muy fácil crear un cliente para servicios Web, gracias al Asistente de servicios Web.
En un primer ejemplo vamos a consultar un servicio Web que calcula la tasa de cambio entre dos monedas.
El WSDL que describe los procedimientos disponibles se encuentra en:
[1] http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
No resulta imprescindible saber que el Servicio Web fue creado con la tecnología .NET ya que el estándar funciona como una caja negra y privilegia la información cualquiera que sea su fuente.
Tras dejar el Asistente 4D descubrir el WSDL, vemos que existe un Servicio Web llamado CurrencyConvertor que ofrece un método llamado ConversionRate con dos parámetros de entrada y uno de salida. Simplemente seleccionando el método ConversionRate, nombrando el método a generar en 4D (Proxy_ConversionTasas) y haciendo clic en el botón Crear, 4D creará automáticamente un método en lenguaje 4D apto para consumir el servicio Web.

Método creado por el Asistente de Servicios Web de 4D

Analizando el método creado por 4D deducimos que este servicio Web da una respuesta en formato XML, la cual 4D se encarga de procesar para convertirla a una variable de tipo real.
Hemos podido generar estas más de 30 líneas de código sin tener grandes conocimientos de XML. Así pues, nuevamente 4D demuestra su capacidad para ahorrar nuestro tiempo escribiendo el código por nosotros.
El siguiente paso es utilizar el método creado en nuestra aplicación como una función normal, pasándole parámetros de entrada y recibiendo la respuesta generada por el Servicio Web en .NET. Aquí hemos creado un formulario donde se puede introducir el código de dos monedas (EUR y USD en el ejemplo) y devuelve la tasa de cambio actual.

Servicio Web de 4D a 4D
La misma lógica se puede aplicar para conectarse a un Servicio Web creado por 4D. En este segundo ejemplo, vamos a “consumir” el servicio creado en el artículo anterior [2] Publicar Servicios Web con 4D.
La WSDL se presenta de la siguiente forma:

Descubrimos un Servicio WS_4D con el método IP_a_Pais. Acepta una cadena como parámetro (IP) y devuelve otra cadena como resultado (País). El método proxy se genera automáticamente.

Solo nos queda llamar al servicio Web desde un botón de formulario

Para saber más:
[3] http://www.4d.com/docs/V6U/V6U00064.HTM
[4] http://es.wikipedia.org/wiki/Servicios_Web
[5] Testimonio de uso de Servicios Web para sincronizar bases 4D
Artículo impreso desde: Cuadernos 4D: http://www.faq-mac.com/4D
Enlace al artículo: http://www.faq-mac.com/4D/2007/07/16/%c2%bfcomo-invocar-un-servicio-web-desde-4d/
URLs in this post:
[1] http://www.webservicex.net/CurrencyConvertor.asmx?wsdl: http://www.webservicex.net/CurrencyConvertor.asmx?wsdl
[2] Publicar Servicios Web con 4D: http://www.faq-mac.com/4D/2007/07/10/publicar-servicios-web-con-4d/
[3] http://www.4d.com/docs/V6U/V6U00064.HTM: http://www.4d.com/docs/V6U/V6U00064.HTM
[4] http://es.wikipedia.org/wiki/Servicios_Web: http://es.wikipedia.org/wiki/Servicios_Web
[5] Testimonio de uso de Servicios Web para sincronizar bases 4D: http://www.4dhispano.com/solutions/cge.html
Click aquí para imprimir.