Creación de Webservices en Visual Foxpro


VFP9 es capaz de crear Webservices, haciendo uso del Microsoft SOAP Toolkit v 3.0.
La forma más fácil de iniciarse en FOX con los Webservices, es ir al Task Manager, y buscar la opción del XML. Allí se puede dar de alta un servicio web, así como consumirlo, previa configuración. En caso de consumirlo, tiene la ventaja de que se puede usar un pequeño formulario que facilita crear casos de ejemplo de peticiones web, siempre que la función llamada disponga de pocos parámetros. Por supuesto, la ayuda del Help del producto es muy recomendable leerla.
En el Task Manager, se puede publicar el webservice, aunque yo soy más partidario de hacerlo directamente con el Soap toolkit, ya que seguramente sea la herramienta que se use para hacer las instalaciones a los clientes.
Para empezar, hay que crear una clase custom, y añadirle los métodos que queramos publicar. Básicamente, este paso es exactamente el mismo que cuando generamos cualquier COM+. (aquellos que luego se invocan con instrucciones tipo Createobject). Hecha la clase, hay que generar la DLL, preferiblemente Multithead.
En el equipo servidor, habrá que instalar IIS y deberá registrar la librería que hemos desarrollado con Regsvr32. En algunos casos, también es necesario configurar en IIS la compatibilidad con la extensión .WSDL. Es recomendable configurar la DLL en el administrador de componentes de Windows, para poder pararla cuando sea necesario, así como configurar el número de instancias concurrentes y el tiempo de espera a finalizar la DLL cuando no se usa.
Con el soap toolkit, seleccionamos la DLL creada, y activamos los métodos de la clase que han de aparecer en el servicio. Se le puede ir siguiendo la corriente al resto del asistente.
El nombre de servicio que se configure en el asistente, debe contener la IP o nombre del equipo donde se publica el WSDL. Es recomendable que el nombre o IP sea el mismo desde la Intranet, como en peticiones provenientes de Internet.
Qué devolver en el webservice?
Lo más aconsejable por mi experiencia, es devolver un DATASET, con lo que podemos usar funciones nativas como CURSORTOXML, que son compatibles con ADO Dataset, por lo que es fácilmente manipulable con .NET.
Cursortoxml() convierte una tabla o cursor, en formato XML. También es interesante dar un vistazo a la clase XMLDATASET, que nos permitirá añadir varias tablas relacionadas entre sí, en lugar de devolver una sola tabla, como hace cursortoxml().

Anuncios

5 comentarios en “Creación de Webservices en Visual Foxpro

  1. Hola David,

    Comentas un panorama muy general de los Web Services con vfp9 y te pregunto si tienes un ejemplo muuuy detallado de como generarlo y otr de como consumirlo.
    Es un tema muy importante para los que desarrollamos en vfp9 pues con los web services nos volvemos a rejuvenecer y nos mantenemos en la pelea.

    En lo particular estoy desarrollando un sistema relacionado con la facturacion electronica y me vendria muy bien generar y consumir web services con vfp9.

    Puedes proporcionarme tu apoyo al respecto.

    Saludos

    Joaquinlr@hotmail.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s