01 marzo 2015

Tarea Web Service

Los servicios Web son de uso generalizado hoy en día, como un método para interactuar entre los sistemas en un entorno multiplataforma. Como los servicios web trabajan con XML y serializan sus salidas en el formato XML; y también obtienen sus entradas en el formato XML, que son ampliamente utilizados como una forma estándar para interconectar sistemas juntos. Hay un montón de ventajas de utilizar los servicios web, pero eso está más allá del alcance de este post.
Este ejercicio demuestra el uso de la tarea Web Service usando un servicio web gratuito, elegido de entre varias alternativas en Internet. Este servicio web es muy simple y devuelve las ciudades de un país específico (http://www.webservicex.net/ws/WSDetails.aspx?CATID=12&WSID=56):
Ejercicio de Aplicación
Considere un escenario donde SSIS necesita periódicamente obtener datos de un origen externo que proporciona datos a través de un servicio web.
El archivo WSDL lista los métodos que ofrece el servicio Web, los parámetros de entrada que los métodos requieren, y las respuestas que retornan los métodos.
1.    Abra el SSDT y cree un nuevo tipo de proyecto Integration Services en la siguiente ubicación: C:\SSIS\Control Flow\ y nombre el proyecto TareaWebService.
2.    Renombre el paquete como WebService_CiudadesPorPais.dtsx.
3.    Crear una conexión al servicio web gratuito encontrado en Internet. Este administrador de conexión HTTP puede apuntar a un sitio web o a un archivo Web Service Description Languaje (WSDL) como sigue:
·         En el Connection Manager haga clic derecho para añadir una New Connection.
·         En el Connection Manager, haga clic en el tipo HTTP y pulse Add.
· En la Server URL añada la ubicación para el WSDL: http://www.webservicex.net/globalweather.asmx?WSDL.
·         Pulse el botón Test Connection y si la prueba de la conexión HTTP tiene éxito, pulse OK para finalizar.
4.    Crear una variable SSIS (User::uvCountry) para pasar el parámetro país para el método del servicio web, que lo utilizará como un parámetro de entrada (para este ejemplo damos el valor: Italy).
5.    Agregue una tarea Web Service desde el Toolbox SSIS al diseñador Control Flow y ábralo para editarlo.
6.    En la ficha General, al lado de la propiedad desplegable HttpConnection, seleccione la conexión HTTP que hemos creado antes.
7.    En la propiedad WSDLFile, escriba la ruta absoluta del archivo WSDL que es requerido por SSIS para "entender" el servicio web. Por defecto este archivo es creado vacío por SSIS en la ubicación definida. Para nuestro ejemplo: C:\SSIS\Control Flow\Archivos\CitiesFromCountry.wsdl.
 
8.    Dado que el archivo WSDL se necesita localmente, pulse el botón Download WSDL para actualizar el archivo CitiesFromCountry.wsdl. Si la prueba tiene éxito, aparecerá un cuadro de mensaje.
9.    En la ficha Input, en la propiedad desplegable Service, seleccione el servicio proporcionado GlobalWeather y el Method GetCitiesByCountry. En Variable marque la casilla y seleccione User::uvCountry en Value.
10.  En la ficha Output, establezca la conexión de salida a un archivo XML donde se almacenarán los datos proporcionados por el servicio web. Seleccione <New Connection> de la lista desplegable al lado de File
 
11.  Establecer el Usage Type a Create file y establezca la ubicación del sistema de archivos para el archivo Result.xml.
12.  Ejecute el paquete pulsando F5, o a través del menú de depuracion Debug | Start Debugging. Abra el archivo Result.xml (con el XML Editor, de preferencia) y analice la salida proporcionada por el servicio web llamada desde el paquete.
 

Como Trabaja

La tarea Web Service de SSIS es útil cuando los datos provienen de otra compañía o aplicación a través de servicios web. Los servicios Web son una forma independiente de la plataforma para conectar sistemas juntos. En este ejercicio leemos algunos datos de un servicio web de pronóstico y guardamos los resultados en un archivo de salida.

2 comentarios:

Narcizo dijo...

El tema de este Post es la tarea Web Service, del cual no hay mucha información. Espero les sirve.

Anónimo dijo...

una vez que ya tengo el Result.xml. ¿Cómo extraigo la data del xml y la migro a una tabla en sql server?