Vorgehensweise: Aufrufen eines Webdiensts mit dem Task ‚Webdienst‘ (SQL Server-Video)

Betrifft: SQL Server 2008 Integration Services

Autoren: Douglas Laudenschlager, Microsoft Corporation

Länge: 00:10:57

Größe: 11,3 MB

Typ: WMV-Datei

Video ansehen

Verwandte Hilfethemen:

Webdienst (Task)

Videozusammenfassung

Erfahren Sie, wie Sie einen Webdienst erfolgreich von einem Integration Services-Paket aus aufrufen, indem Sie einen HTTP-Verbindungs-Manager und den Task Webdienst (Web Service) konfigurieren. Anschließend richten Sie einen XML-Task ein, um die abgerufenen Informationen zu lesen und im Paket zu verwenden.

Videotranskript

Guten Tag, ich heiße Douglas Laudenschlager, und ich arbeite im Dokumentationsteam für Microsoft SQL Server Integration Services.

Heute erfahren Sie, wie Sie einen Webdienst mit dem Task Webdienst (Web Service) aufrufen.

Außerdem werden Sie erfahren:

  • Wie Sie einen HTTP-Verbindungs-Manager konfigurieren.
  • Wie Sie den eigentlichen Task Webdienst (Web Service) konfigurieren.
  • Wie Sie die WSDL-Datei herunterladen, die den Webdienst beschreibt.
  • Wie Sie eine Webmethode aufrufen und die erwarteten Eingabewerte bereitstellen.
  • Wie Sie den Rückgabewert mit einem XML-Task lesen.
  • Und wie Sie die Ergebnisse des Webdiensts im Paket verwenden.

Wir befinden uns in Business Intelligence Development Studio. Dort habe ich bereits ein Integration Services-Projekt erstellt, ein Paket geöffnet und einige der Komponenten hinzugefügt, die wir für unser Beispiel benötigen.

Bevor die Arbeit am Paket beginnt, sehen wir uns den Webdienst an, den wir verwenden werden. Es ist ein kostenloser, öffentlicher Webdienst, der Währungsumrechnungen durchführt. Kopieren wir doch gleich die URL in die Zwischenablage, um sie in unserem Paket zu verwenden. Dieser Webdienst stellt eine einzelne Webmethode mit dem Namen ConversionRate zur Verfügung, die Wechselkurse für fast alle Währungen der Welt bereitstellt. Wenn wir versuchsweise den Wechselkurs von US-Dollar in Euro abfragen, ist die zurückgegebene XML-Antwort dieselbe, die auch unser Paket empfangen wird.

Nun zurück zu unserem Paket. Zunächst müssen einige Paketvariablen erstellt werden. Wir benötigen eine Variable, die die XML-Antwort des Webdiensts enthält, welche wir ConversionRateResponse nennen, und eine zweite Variable, die den Wechselkurs selbst enthält, welche wir ConversionRate nennen. Bei beiden handelt es sich um Zeichenfolgenwerte.

Die nächste Vorraussetzung für den Task Webdienst (Web Service) ist ein HTTP-Verbindungs-Manager, der die URL für den Webdienst enthält. Wir fügen hier eine neue HTTP-Verbindung hinzu und fügen die URL des Webdiensts ein. Da wir die Web Services Description Language-Datei, kurz WSDL, für den Webdienst herunterladen müssen, fügen wir am Ende der URL ?wsdl an. Nun speichern wir den Verbindungs-Manager...

...und der Task Webdienst (Web Service) kann hinzugefügt werden. Nachdem wir den Editor für den Task Webdienst (Web Service) geöffnet haben, ist unsere erste Aufgabe, den gerade erstellten HTTP-Verbindungs-Manager zuzuweisen. Jetzt muss die WSDL-Datei heruntergeladen werden, in der die Funktion des Webdiensts beschrieben wird. Eine Eigenart des Tasks Webdienst (Web Service) ist, dass die Schaltfläche WSDL herunterladen (Download WSDL) erst aktiviert wird, wenn Sie eine lokale Datei auf Ihrem Computer ausgewählt haben. Also werden wir diesem Erfordernis nachkommen, indem wir ein leeres Textdokument erstellen, das wir CurrencyConvertor.wsdl nennen. Als nächstes wählen wir die gerade erstellte Dummy-Datei aus und ändern den Wert für OverwriteWSDLFile von False in True. Jetzt können wir die WSDL-Datei herunterladen.

Wechseln wir nun zur Seite Eingabe (Input) des Editors. Dank der WSDL-Datei hat der Task alle Informationen über den Webdienst. Wir können den Webdienst auswählen, die zugehörige ConversionRate-Webmethode auswählen und den Webmethodenaufruf so konfigurieren, dass der Wechselkurs von US-Dollar in Euro abgefragt wird.

Wechseln wir nun zur Seite Ausgabe (Output) des Editors. Die Ausgabe soll nicht in einer Datei gespeichert werden, sondern in der Variable, die wir ConversionRateResponse genannt haben. Speichern wir nun den Task Webdienst (Web Service).

Die Antwort, die unser Task empfängt, ist das XML-Dokument, das wir gesehen haben, als wir den Webdienst online getestet haben. Der Wechselkurs muss aus diesem Dokument extrahiert werden. Hierfür verwenden wir einen XML-Task.

Mit dem XML-Task können XML-Dokumente auf viele verschiedene Weisen bearbeitet werden, deshalb enthält er viele konfigurierbare Eigenschaften. Zunächst müssen wir, auch wenn es nicht das erste Element auf der Seite ist, den auszuführenden Vorgang auswählen, in diesem Fall eine XPATH-Abfrage für die XML. Die XML-Quelle befindet sich in der Variable, die wir ConversionRateResponse genannt haben. Das Ergebnis der Abfrage soll in der Variable mit dem Namen ConversionRate gespeichert werden, und jeder vorhandene Wert soll mit dem aktuellen Wert überschieben werden. Die XPATH-Abfrage geben wir direkt ein und fragen den Knoten „/double“ ab, der den Wechselkurs enthält. Dies ist ein XPATH-Vorgang zum Extrahieren von Values. Speichern wir nun den XML-Task.

Ich möchte Ihnen eine nützliche Technik zeigen, mit der Werte von Paketvariablen überprüft werden können, während das Paket ausgeführt wird. Also setzen wir einen Haltepunkt am OnPostExecute-Ereignis des XML-Tasks und führen unser Paket aus.

[Pause]

Das Paket wurde nun am festgelegten Haltepunkt angehalten, und wir können uns im Fenster Lokal (Locals) den aktuellen Wert aller Paketvariablen ansehen. Wenn wir in der Liste einen Bildlauf nach unten ausführen, finden wir ConversionRateResponse mit der langen XML-Zeichenfolge und ConversionRate mit dem eigentlichen Wechselkurs. Wenn wir diese beiden Elemente in einer übersichtlicheren Liste anzeigen möchten, können wir sie mit dem Befehl Add Watch zum separaten Fenster Überwachung (Watch) hinzufügen.

Nun führen wir unseren Task bis zum Abschluss aus, beenden das Debuggen und entfernen den festgelegten Haltepunkt.

Als nächstes können wir eine Verbindung herstellen und den Datenflusstask wieder aktivieren, mit dessen Einrichtung ich schon begonnen habe.

Zuerst verwenden wir eine OLE DB-Quelle, um Daten aus einer Ansicht in der AdventureWorks-Beispieldatenbank zu extrahieren. Wir werden die Nachnamen der einzelnen Vertriebsmitarbeiter und deren Verkäufe in US-Dollar seit Jahresbeginn abrufen.

Anschließend verwenden wir den Wechselkurs, den wir vom Webdienst erhalten haben, um eine neue Spalte hinzuzufügen, in der die Verkäufe seit Jahresbeginn in Euro umgerechnet werden. Zum Hinzufügen einer neuen Spalte verwenden wir eine Transformation für abgeleitete Spalten. Wir nennen die neue Spalte SalesYTDEuro und definieren diese als die Werte der Spalte SalesYTD, multipliziert mit dem Wechselkurs, den wir vom Webdienst abgerufen haben. Zunächst muss der Wechselkurs, der als Zeichenfolge vorliegt, in einen entsprechenden numerischen Datentyp umgewandelt werden. Anschließend runden wir das Ergebnis auf zwei Dezimalstellen und speichern die Transformation für abgeleitete Spalten.

Wir halten uns nicht damit auf, unsere Beispieldaten zu speichern und verwenden eine Transformation für Zeilenanzahl, um den Datenfluss zu beenden. Das ist eine praktische Abkürzung, und die einzige Anforderung ist, einer Paketvariable die Zeilenanzahl zuzuweisen, die ignoriert werden kann.

Nun fügen wir dem Datenfluss einen Daten-Viewer hinzu, um die Ergebnisse unserer Arbeit während der Ausführung des Pakets anzuzeigen. We akzeptieren das standardmäßige Rasterformat und führen das fertige Paket aus.

[Pause]

Nach wenigen Augenblicken sehen wir, dass alles wie geplant funktioniert hat. Unsere Daten enthalten nun eine neue Spalte mit den Verkäufen seit Jahresbeginn, die von Dollar in Euro mit dem Wechselkurs umgerechnet wurden, den wir mit dem Task Webdienst (Web Service) und dem XML-Task vom Webdienst abgerufen haben.

In diesem Video haben Sie erfahren, wie Sie einen Webdienst mit dem Task Webdienst (Web Service) aufrufen.

Sie haben außerdem gelernt:

  • Wie Sie einen HTTP-Verbindungs-Manager konfigurieren.
  • Wie Sie den eigentlichen Task Webdienst (Web Service) konfigurieren.
  • Wie Sie die WSDL-Datei herunterladen, die den Webdienst beschreibt.
  • Wie Sie eine Webmethode aufrufen und die erwarteten Eingabewerte bereitstellen.
  • Wie Sie den Rückgabewert mit einem XML-Task lesen.
  • Und wie Sie die Ergebnisse des Webdiensts im Paket verwenden.

Wir hoffen, dass Sie durch dieses Video neue und nützliche Fertigkeiten erlangt haben. Wenn Sie dieses Video schließen und zur Webseite zurückkehren, stehen Ihnen weitere Integration Services-Videos zur Verfügung. Vielen Dank!