Ejemplo: asignar datos de un canal RSS
Este ejemplo explica cómo puede llamar a un servicio web HTTP genérico desde MapForce para poder asignar datos de un canal RSS a un documento de Microsoft Excel. El ejemplo viene acompañado de un archivo de diseño de asignación de datos que está en esta ruta de acceso: <Documentos>\Altova\MapForce2025\MapForceExamples\RssReader.mfd .
En este ejemplo, la respuesta del servicio web se asigna desde el canal RSS del blog de Altova ( https://blog.altova.com/feed ). MapForce necesitará el esquema de la estructura de respuesta del servicio web para poder crear la estructura de los datos que devuelve el canal RSS. Este esquema está ubicado en esta ruta de acceso:<Documentos>\Altova\MapForce2025\MapForceExamples\rss-2-0.xsd.
Para llamar a un canal RSS no hace faltan parámetros de solicitud, de modo que la parte de solicitud del servicio web estará vacía. La respuesta, por su parte, se asignará a un archivo de Microsoft Excel. En tercer lugar, para que la fecha de publicación de cada entrada RSS sea fácilmente legible, se aplicará el formato AAAA-MM-DD en el archivo Excel. Para lograr este objetivo, se utilizarán funciones de procesamiento de fechas.
Por tanto, el diseño de la asignación de datos estará compuesto por tres componentes: la llamada al servicio web, el componente de destino Excel y las funciones de procesamiento de datos.
Paso 1: agregar el componente de servicio web
1.Compruebe que está seleccionado el motor de transformación integrado BUILT-IN.
2.En el menú Insertar haga clic en Función de servicio web.
3.En el grupo de opciones Definición del servicio elija la opción Manual.
4.Elija el método de solicitud GET y la URL https://blog.altova.com/feed.
5.En el grupo de opciones Respuesta, haga clic en el botón Editar y busque el esquema de la respuesta del servicio web. Encontrará el esquema aquí: <Documentos>\Altova\MapForce2025\MapForceExamples\rss-2-0.xsd.
6.Haga clic en Aceptar.
Llegados a este punto, el servicio web aparece en el área de asignación y podemos empezar a asignar datos desde la parte de respuesta.
Paso 2: agregar el componente Excel de destino
1.En el menú Insertar, haga clic en Archivo Excel 2007+.
2.Cuando se le pida que proporcione un archivo de muestra, haga clic en Omitir. El componente Excel aparece en el área de asignación.
3.Haga clic en el botón de Hoja 1 y desactive la casilla Mostrar las hojas de cálculo por su nombre.
4.Haga clic en el botón de Fila 1 y cambie las opciones tal y como se muestra a continuación.
5.Cree conexiones entre estos elementos del cuerpo de la respuesta y estos elementos del componente Excel:
Cuerpo de la respuesta | Archivo Excel |
---|---|
channel | Worksheets |
title | Worksheet Name |
item | Filas |
item/title | Row B (Title) |
item/link | Row C (Link) |
Llegados a este punto todavía falta un valor de entrada para Fila A (Fecha). En el siguiente paso lo añadiremos.
Paso 3: agregar las funciones de procesamiento de fechas
La fecha de la respuesta del canal RSS aparece formateada en formato RFC-822, por ejemplo: Mie, 20 Ene 2016 14:49:35 +0000. El objetivo, sin embargo, es presentar la fecha en el archivo Excel en formato AAAA-MM-DD. Para ello, agregue a la asignación las funciones substring-after y parse-date de la biblioteca core de MapForce (ver también Agregar una función a la asignación de datos).
Como se muestra arriba, la función substring-after toma el valor del nodo pubDate y devuelve solo el texto posterior a , . El valor resultante se pasa a la función parse-date, que la analiza con la máscara [D] [Mn] [Y] y devuelve el valor como xs:date. La máscara de formato significa «día numérico del mes, seguido de un espacio, seguido del nombre del mes en mayúsculas, seguido de un espacio, seguido del año de cuatro dígitos». Para ver ejemplos de formato de fecha y hora, consulte la referencia de la función parse-dateTime.
Por último, el valor analizado se pasa a la fila Date del componente Excel.
Paso 4: ejecutar la asignación
Ya podemos llamar al servicio web. Haga clic en el panel Resultados para ejecutar la asignación y consultar la vista previa del resultado que se genera. Si la llamada al servicio web se ejecuta correctamente, en el panel Resultados aparece la estructura de datos devuelta. Si no se ejecuta correctamente, MapForce devuelve un mensaje de error.
Si tiene MapForce Server (https://www.altova.com/es/mapforce-server), también puede compilar la asignación en un archivo de ejecución de asignaciones (*.mfx) y ejecutarlo desde la línea de comandos o desde la API de MapForce Server en el equipo servidor donde se ejecute MapForce Server (véase Compilar asignaciones en archivos de ejecución de MapForce Server).
Ya hemos terminado de crear una llamada a servicio web HTTP genérico que usa un método GET para leer datos de un canal RSS. Para obtener información general sobre cómo trabajar con servicios web genéricos, consulte Agregar una llamada a un servicio web.