Beispiel: Mappen von Daten von einem RSS Feed

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Aufrufen von Webservices >

Beispiel: Mappen von Daten von einem RSS Feed

In diesem Beispiel wird gezeigt, wie Sie in MapForce einen generischen HTTP-Webservice aufrufen, um Daten von einem RSS (Rich Site Summary) Feed auf Microsoft Excel zu mappen. Die Design-Datei zu diesem Beispiel finden Sie unter dem folgenden Pfad <Dokumente>\Altova\MapForce2019\MapForceExamples\RssReader.mfd .

 

Die Response des Webservice wird in diesem Beispiel vom RSS Feed des Altova Blog (https://blog.altova.com/feed) gemappt. Dazu wird das Schema der Webservice Response-Struktur benötigt, damit MapForce die Struktur der vom Feed zurückgegebenen Daten erstellen kann. Sie finden das erforderliche Schema unter dem folgenden Pfad relativ zu Ihrem Ordner "(Meine) Dokumente":<Dokumente>\Altova\MapForce2019\MapForceExamples\rss-2-0.xsd.

 

Um den RSS Feed aufzurufen, werden keine Request-Parameter benötigt, daher bleibt der Request-Teil des Webservice-Aufrufs leer. Die Response wird auf eine Microsoft Excel-Datei gemappt. Um das Datum der Veröffentlichung der einzelnen RSS-Einträge leichter lesbar zu machen, wird es in der Excel-Datei als JJJJ-MM-TT formatiert. Zu diesem Zweck werden Datenverarbeitungsfunktionen verwendet.

 

Das Mapping besteht daher aus drei Hauptteilen: dem Webservice-Aufruf, der Excel-Zielkomponente und den Datenverarbeitungsfunktionen.

 

Schritt 1: Hinzufügen der Webservice-Komponente

1.Stellen Sie sicher, dass als Transformationssprache des Mappings BUILT-IN ausgewählt ist (siehe Auswählen einer Transformationssprache).
2.Klicken Sie im Menü Einfügen auf Webservice-Funktion.
3.Klicken Sie unter Service-Definition auf Manuell.
4.Setzen Sie die Request-Methode auf GET und geben Sie als URL http://blog.altova.com/feed ein.
5.Klicken Sie unter Response auf die Schaltfläche Bearbeiten und navigieren Sie zum Schema der Webservice Response. Das Schema befindet sich unter dem folgenden Pfad: <Dokumente>\Altova\MapForce2019\MapForceExamples\rss-2-0.xsd.

mf_rss_example_01

6.Klicken Sie auf OK.

 

Der Webservice steht nun im Mapping-Bereich zur Verfügung und Sie können nun die Daten vom Response-Teil mappen.

mf_rss_example_02

 

Schritt 2: Hinzufügen der Excel-Zielkomponente

1.Klicken Sie im Menü Einfügen auf Excel 2007+-Datei.
2.Wenn Sie aufgefordert werden, eine Beispieldatei bereitzustellen, klicken Sie auf Überspringen. Die Excel-Komponente steht nun im Mapping-Bereich zur Verfügung.
3.Klicken Sie neben Blatt 1 auf die Schaltfläche AddRemove_Selections und deaktivieren Sie die Option Arbeitsblätter nach Namen anzeigen.
4.Klicken Sie neben Zeile 1 auf die Schaltfläche AddRemove_Selections und ändern Sie die Optionen wie unten gezeigt.

mf_rss_example_03

5.Verbinden Sie die folgenden Datenelemente des Response Body mit den folgenden Datenelementen der Excel-Komponente:

 

Response Body

Excel-Datei

channel

Worksheets

title

Worksheet Name

item

Rows

item/title

Row B (Title)

item/link

Row C (Link)

 

Zu diesem Zeitpunkt fehlt in Zeile A (Date) ein Input-Wert. Dieser Wert wird im nächsten Schritt hinzugefügt.

 

Schritt 3: Hinzufügen der Datumsverarbeitungsfunktionen

Das Datum in der Response des RSS Feed wird im RFC-822-Format angezeigt, z.B.: Wed, 20 Jan 2016 14:49:35 +0000. Das Datum soll in der Excel-Datei aber als JJJJ-MM-TT angezeigt werden. Fügen Sie zu diesem Zweck die Funktionen substring-after und parse-date aus der MapForce code-Bibliothek zum Mapping hinzu (eine Anleitung zum Hinzufügen von Funktionen zum Mapping finden Sie unter Arbeiten mit Funktionen ).

ex_ws_rss_04

Wie oben gezeigt, erhält die Funktion substring-after ihren Wert aus dem Node pubDate und gibt nur den Text nach ,   zurück. Der erzeugte Wert wird anschließend an eine weitere MapForce-Funktion, nämlich parse-date übergeben, welche ihn anhand der Maske [T] [Mn] [J] parst und den Wert als xs:date  zurückgibt. Die Formatmaske bedeutet "Zahl für den Tag des Monats, gefolgt von einem Leerzeichen, gefolgt vom Monatsnamen beginnend mit einem Großbuchstaben, gefolgt von einem Leerzeichen, gefolgt von der vierstelligen Jahreszahl" (nähere Informationen finden Sie in der Beschreibung der Funktion format-dateTime).

 

Der geparste Wert wird am Ende an die Zeile Date der Excel-Komponente übergeben.

 

Schritt 4: Ausführen des Mappings

Sie können den Webservice nun aufrufen. Klicken Sie auf die Schaltfläche Ausgabe um das Mapping auszuführen und eine Vorschau der generierten Ausgabe anzuzeigen. Wenn der Webservice-Aufruf erfolgreich ausgeführt werden konnte, wird auf dem Register Ausgabe die zurückgegebene Datenstruktur angezeigt. Wenn der Aufruf nicht erfolgreich ausgeführt werden konnte, gibt MapForce den entsprechenden Fehler zurück.

 

Wenn Sie MapForce Server (https://www.altova.com/de/mapforce/mapforce-server.html) installiert haben, können Sie das Mapping auch zu einer Mapping-Ausführungsdatei (*.mfx)-Datei kompilieren und es über die Befehlszeile oder über die MapForce Server API auf dem Server-Rechner, auf dem MapForce Server ausgeführt wird, ausführen (siehe Kompilieren von Mappings zu MapForce Server-Ausführungsdateien ).

 

Sie haben nun einen generischen HTTP-Webservice-Aufruf erstellt, in dem Daten aus einem RSS Feed mit Hilfe einer GET-Methode abgerufen werden. Nähere Informationen zum Arbeiten mit generischen Webservices finden Sie unter Hinzufügen eines Webservice-Aufrufs (REST).


© 2019 Altova GmbH