Hybrid mit Project Online–Teil 1

Auch wenn wir bei dem Project Online Produkt nur eingeschränkte Möglichkeiten von Hybrid Szenarien besitzen, ist es doch möglich, die Project Online Daten in das eigene Rechenzentrum zu transferieren. Das Ganze funktioniert über die SQL Server Integration Services (SSIS) und dem OData Protokoll. Der Bericht wird dann später in den SQL Server 2016 Reporting Services (SSRS) erstellt. In einigen Beispielen im Internet und auch in den Videos von Microsoft, sieht es auf dem ersten Blick so aus, als ob die Erstellung der SSIS Pakete relativ einfach ist, bei der Umsetzung stößt man allerdings auf einige Komplikationen. Wer seine Server in der englischen Sprache betriebt, hat zwar einige Probleme weniger – dennoch sind so nicht alle Stolperfallen gelöst. In dieser Blog-Beitragsreihe möchte ich Ihnen zeigen, wie Sie ein SSIS-Paket erstellen und später einen Bericht in den SQL Reporting Services bereitstellen können.

Wie wird das Ganze nun funktionieren? Wir werden Project Daten aus unserem Project Online Tenant auslesen. Dafür werden wird ein ETL Paket erstellen, Daten werden dann in eine SQL-Datenbank geschrieben und der Bericht wird dann die Daten aus der SQL-Datenbank auslesen.

Hinweis: Es gibt von Seiten Microsoft ein ETL-Srcipt, welches Sie anpassen können. Allerdings habe ich in einigen Szenarien Probleme gehabt und nicht alle Daten müssen transferiert werden. Aus diesem Grund möchte ich Ihnen ein einfaches Beispiel geben, welches Sie mit eigenen Ideen erweitern können. Diese Beispiel gilt als Beispiel und sollte vor dem Produktivbetrieb angepasst werden.

Voraussetzung

Um diesen Blog-Beitrag nachzustellen, benötigen Sie die folgende Infrastruktur. SQL Server 2016 mit installierten und Konfigurierten SSIS-Service (SSIS), SQL Reporting Service (SSRS) und dem SQL Agent. Ebenfalls muss auf dem SQL Server 2016 das SQL Management Studio sowie due SQL Server Data Tools 2015 installiert sein. Bitte beachten Sie, dass die SQL-Server Data Tools 2015 (SSDT) und das SQL Server Management Studio (SSMS) nicht mehr Bestandteil des SQL-Server sind und separat durch den Administrator durchgeführt werden muss. Die Pakete können Sie hier herunterladen:

SQL Server Management Studio (SSMS) (https://msdn.microsoft.com/de-de/library/mt238290.aspx)

SQL Server Data Tools (SSDT) (https://msdn.microsoft.com/de-DE/library/mt204009.aspx)

SharePoint Server 2013 Client Components SDK. Diese können Sie auch hier herunterladen (https://www.microsoft.com/en-us/download/details.aspx?id=35585)

Hinweis: Dieses Beispiel habe ich extra auf der neuen SQL-Server 2016 Version dargestellt. OData wird ab der SQL Server Version 2012 R2 mit SP 1 unterstützt. Allerdings ist das OData Paket nicht in der Installation integriert und muss nachträglich bereitgestellt werden. Das Paket finden Sie jeweils bei Ihrer SQL Version unter den Feature-Packs. Weiterhin benötigen Sie für die vorherigen Installation das Visual Studio 2010 oder 2012. Sollten Sie SharePoint Server 2016 benötigen, installieren Sie trotzdem den 2013 SDK.

Datenbank anlegen

Als erstes werden wir zwei Datenbanken anlegen. In diesen Datenbanken sollen unsere Project Online Daten gespeichert werden. Bevor Sie beginnen, sollten Sie sich überlegen, welche Daten in Ihrem Bericht benötigt werden und schauen dann, welche Daten, in welcher Tabelle von Project Online stehen. Grundsätzlich gilt, je weniger Daten aberufen werden, je schneller der Transfer. In meinem Beispiel möchte ich die folgende Information aus Project Online auslesen.

Projektname, den Sponsor des Projektes, DL-Nummer (Projektnummer), den Starttermin des Projektes, den aktuellen Endtermin des Projektes, die Lokation des Projektes, die geplanten Personalkosten, Arbeit sowie Dauer, die aktuellen Personalkosten, Arbeit Dauer und die noch nicht verbrauchten Kosten, Arbeit und Dauer des Projektes.

Hinweis: Die Informationen DL-Nummer, Location und Sponsor sind keine Standardfelder in Project Online. Bei beiden Feldern, handelt es sich um Text-Felder.

Diese Information befinden sich in der Tabelle Projekte und Projektbasispläne. Die Daten ProjektName, ProjektIstAnfangsTermin, ProjektIstArbeit, ProjektIstDauer, ProjektAnfangsTermin, ProjektEndTermin, ProjektFixkosten, Projektnummer, Location, ProjektIstKosten finden Sie in der Tabelle Projekte.

Die Daten ProjektGeplanteKosten, ProjektGeplanteArbeit und der ProjektGeplanteArbeit sind Bestandteil der Tabelle ProjektBasispläne

Hierzu erstellen wir als erstes eine Tabelle in dem SQL Server 2016. Melden Sie sich hierzu an dem SQl Server 2016 Management Studio als DB-Admin an (SSMS). Extrahieren Sie den Server und gehen Sie mit der rechten Maustaste auf den Knoten „Datenbanken“. Wählen Sie  im Kontextmenü den Eintrag „Neue Datenbank…“ aus. Geben Sie als Namen „PWA“ ein. Klicken Sie anschließend auf „OK“

image

Legen Sie als nächstes zwei Tabellen an. Ein mal die Tabelle Projekte und einmal die Tabelle „ProjekteBasisplaene“. Extrahieren Sie den Datenbaum der gerade erstellten Datenbank „PWA“. Gehen Sie dann mit der Maus auf Tabellen und klicken Sie die rechte Maustaste. Wählen Sie im Kontextmenü die Option „Neu“ und dort auf „Tabelle“. Geben Sie nun die folgenden Spaltennamen mit den folgenden Datentypen ein.

Spaltennamen Datentyp
ProjektID [uniqueidentifier] NULL
ProjektName [nvarchar](max) NULL
ProjektIstArbeit [numeric](38, 4) NULL,
ProjektIstDauer [numeric](38, 4) NULL
ProjektIstAnfangsTermin [datetime] NULL
ProjektAnfangsTermin [datetime] NULL
ProjektEndTermin [datetime] NULL
ProjektFixkosten [numeric](38, 4) NULL
Projektnummer [nvarchar](max) NULL
Location [nvarchar](max) NULL
ProjektIstKosten [numeric](38, 4) NULL

Die Ansicht müsste wie folgt aussehen:
image

Klicken Sie nun in der oberen Menüleiste die Option „Speichern von Tabelle_1“. Geben Sie als Namen „Projekte“ ein. Klicken Sie anschließend auf „OK“

image

Als nächstes legen wir noch die Tabelle „ProjekteBasispläne“ an. Klicken Sie erneut mit der rechten Maustaste auf den Ordner Tabelle. Wählen Sie im Kontextmenü erneut „Neu“ und wählen Sie dann die Option „Tabelle“ Geben Sie nun die folgenden Spaltennamen und Datentypen an.

image

Spaltennamen Datentyp
ProjektID [uniqueidentifier] NULL
ProjektName [nvarchar](max) NULL
ProjektGeplanteKosten [numeric](38, 4) NULL
ProjektGeplanteArbeit [numeric](38, 4) NULL
ProjektGeplanteDauer [numeric](38, 4) NULL

Klicken Sie nun wieder in der Menüleiste auf Speichern. Geben Sie als Namen diesmal „ProjekteBaisplaene“ ein und klicken Sie anschließend auf „OK“. Extrahieren Sie nun die Option „Tabelle“. Die Ansicht müsste nun wie folgt aussehen.
SNAGHTML14d8531f

Natürlich können Sie das Ganze auch über SQL-Script anlegen. Das Script können Sie hier herunterladen. Nun können wir im nächsten Schritt unser TLE-Paket erstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Die folgenden im Rahmen der DSGVO notwendigen Bedingungen müssen gelesen und akzeptiert werden:
Durch Abschicken des Formulars wird dein Name, E-Mail-Adresse und eingegebene Text in der Datenbank gespeichert. Für weitere Informationen wirf bitte einen Blick in die Datenschutzerklärung.