Wie Sie sicherlich wissen, führen bekanntlich viele Wege nach Rom. Aus diesem Grund habe ich mich entschieden, den kürzesten Weg zu nehmen. Es gibt für den Datenimport zwei Möglichkeiten. Im ersten Schritt werden die Daten in die Datenbank geschrieben. Anhand der ProjectID geprüft. Ist der Datensatz vorhanden wird er abgedatet – wenn nicht neu erstellt. Gleichzeitig muss noch geprüft werden, ob ein Projekt gelöscht wurde oder nicht. Das kann man so machen oder aber einfach die Daten löschen und einmal am Tag einen neuen Export generieren.
Das letztere ist bei kleineren Datenmengen ebenso umzusetzen, wie die andere Option. Melden Sie sich erneut an Ihrem SQl Server 2016 an und öffnen Sie die SQL-Data Tools auf dem SQL-Server. Öffnen Sie das im vorherigen Artikel erstellte Projekt „Project Online Blog“. Ziehen Sie nun unter „Ablaufsetuerung“ ein „Task „SQL-Ausführen“ in den Arbeitsbereich. Führen Sie einen Doppelklick auf das Paket aus. Geben Sie als Namen „Task „Delete Projekts“ ein und als Beschreibung „Löscht Datensätze in Projekttabelle“ ein. Wählen Sie als Datenverbindung, Ihre im letzten Artikel angelegte Verbindung zu der PWA Datenbank aus.
Klicken Sie dann auf SQL-Statement und geben Sie dort das folgende Statement ein:
Klicken Sie anschließend auf „OK“. Der Arbeitsbereich müsste nun wie folgt aussehen.
Ziehen Sie als nächste einen „Datenflusstask“ in den Arbeitsbereich. Verbinden Sie den grünen Pfeil über Drag&Drop mit dem Datenfluss-Task. Der Arbeitsbereich müsste nun wie folgt aussehen.
Führen Sie auch hier einen Dopplklick drauf aus oder wechseln Sie in der oberen Zeile auf den Reiter „Datenfluss“. Suchen Sie in der SSIS-Toolbox die Option Odata-Quelle. Ziehen Sie diese in den Arbeitsbereich. Führen Sie einen Doppelklick auf die Odata-Quelle aus. Geben Sie als OData-Verbindung die in unserem letzten Teil angelegte oData-Verbindung an. Achten Sie darauf, dass unter „Auflistung oder Ressourcenpfad verwenden“ die Option „Auflistung“ selektiert ist und wählen Sie unter Auflistung die Option „Projekte“ aus. Als nächstes geben Sie nun die folgende Abfrageoption ein:
$select=ProjektID,ProjektName,ProjektIstArbeit,ProjektIstDauer,
ProjektIstAnfangsTermin,ProjektAnfangsTermin,ProjektEndTermin,
ProjektFixkosten,Projektnummer,Location,
ProjektIstKosten &$format=json
Hinweis: Im Gegensatz zur Microsoft Dokumentation funktioniert der Befehl „$Format=jcon“ nicht. Nach meiner Rechereche liegt das zum jetzigen Zeitpunkt an zwei Feldern innerhalb der Odata-Tabelle, die zu diesem Fehler führen. Aus diesem Grund muss hier mit dem direkten Connection-String gearbeitet werden. Ebenfalls ist zu beachten, dass beim Testen einer Verbindung immer nur die ersten 20 Datensätze abgerufen werden. Sollten Sie ein Test-Project angelegt haben, kann es sein, dass genau dieses aber nicht unter den ersten 20 ist. Hier können Sie dann zu Testzwecken die Option $Filter nutzen. In diesem String suche ich expliziet nach dem Projekt „Test-TB-SSIS“. „$filter=ProjektName eq ‚Blog-TB-SSIS’&$select=ProjektID, ProjektName, ProjektGeplanteKosten, ProjektGeplanteArbeit, ProjektGeplanteDauer &$format=json“
Klicken Sie nachdem Sie den String eingeführt haben auf „Vorschau“, die Ansicht müsste nun wie folgt aussehen.
Schließen Sie die Vorschau indem Sie auf „Schließen“ klicken. Schließen Sie gleichzeitig den Odata-Editor indem Sie auf „OK“ klicken. Damit Sie zu einem späteren Zeitpunkt die Datenverbindungen auseinanderhalten können, sollten Sie diese umbenennen. Klicken Sie hierzu mit der rechten Maustaste auf die Odata-Verbindung und wählen Sie im Kontextmenü die Option „Umbennen“. Geben Sie als Name „OData-Projekte“ ein.
Als nächstes werden wir die Odata Verbindung für die ProjektBasispläne-Tabelle anlegen. Ziehen Sie hierzu eine weitere OData-Quelle in den Arbeitsbereich und plazieren Sie diese neben der OData-Projekte-Quelle. Führen Sie einen Doppelklick auf der Odata-Quelle aus. Geben Sie wieder die zuvor erstellte OData-Verbindung an und wählen Sie nun in Bereich Auflistung die ProjektBasispläne aus. Geben Sie nun als Abfrageoptionen den folgenden String ein.
$select=ProjektID, ProjektName, ProjektGeplanteKosten, ProjektGeplanteArbeit, ProjektGeplanteDauer &$format=json
Klicken Sie anschließend wieder auf „Vorschau“. Die Anzeige müsste nun wie folgt aussehen.
Schließen Sie nun wieder das Vorschaufenster und den OData-Editor. Klicken Sie mit der rechten Maustaste auf die Datenverbindung und wählen Sie im Kontext-Menü die Option „Umbennen“. Geben Sie als Namen ProjektBasispläne ein. Ihre Ansicht müsste nun wie folgt aussehen:
Ziehen Sie nun ein „OLE DB Ziel“ unter der Option „Weitere Ziele“ in der SSIS Toolbox in den Arbeitsbereich. Verbinden Sie die „Odata-Projekte“ mit der OLE-DB-Ziel. Und führen Sie auf OLE-DB-Ziel einen Doppelklick aus. Geben Sie als „Name der Tabelle oder Ansicht“ die Projekte Tabelle an.
Kontrollieren Sie, ob die Zuordnungen richtig gefunden wurden. Klicken Sie hierzu auf der linken Seite die Option „Zuordnungen“ sollten alle Felder gefunden sein, so schließen Sie die Fenster.
Bennen Sie das Ziel nun um. Verfahren Sie hierzu genau wie oben beschrieben mit den OData-Verbindungen. Geben Sie als Namen „DB-Projekte“ an. Erstellen Sie nun eine weitere Ziel-Verbindung für die ProjektBasispläne-Tabelle. Verfahren Sie dazu auf die gleichen Weise wie mit der zuvor erstellten Projekt-Tabelle. Ziehen Sie erneut eine neue Ziel-Verbindung in den Arbeitsbereich, öffnen Sie die Verbindung, wählen Sie als Odata-Verbindung die Odata-Verbindung „ProjectOnline“ aus, selektieren Sie die Tabelle „ProjektBasispläne“. Kontrollieren Sie die Zuordnungen und vergeben Sie als Namen „DB-Projektbaispläne“. Danach sollte Ihre Ansicht wie folgt aussehen:
Zeit das Ganze einmal zu Debuggen. Klicken Sie hierzu auf „Ausführungsergebnisse“ in der oberen Menüleiste.
Klicken Sie anschließend im oberen Bereich auf „Start“. Nach einem kurzen Augenblick wird das Script ausgeführt. Klicken Sie die Registerkarte „Ablaufsteuerung“. Kontrollieren Sie, ob beide Aufgaben erfolgreich durchgeführt wurden.
Hinweis: Sollten hier Probleme entstanden sein, so kontrollieren Sie ebenfalls noch einmal die Registerkarte „Datenfluss“ bei welchem Task das Problem aufgetreten ist.
Schließen Sie nach erfolgreichem Debugging das Fenster.
Schreibe einen Kommentar