Abbildung 1: Beispiel Workflow, der nach einer HTTP Anfrage einen zuvor exportierten Bericht per eMail verschickt und ihn danach in der Cloud speichert.
Und so geht’s:
- Sie benötigen mindestens Version 24 des combit Report Server
- Die REST API Ihres Report Servers aktivieren (Verwaltung > Erweiterte Einstellungen > REST API aktivieren)
- Einen Benutzer vom Typ „API-Konto mit Token“ im Report Server anlegen.
- Eigenen Custom connector mit Micosoft Flow erstellen
- Lokales Datengateway (On-premises data gateway) installieren, falls der ReportServer in Ihrem Intranet läuft
Lokales Datengateway einrichten (erforderlich, falls der Report Server NICHT im Internet erreichbar ist)
Das lokale Datengateway fungiert als Brücke, da es eine schnelle und sichere Datenübertragung zwischen lokalen Daten (Daten außerhalb der Cloud) und den Power BI-, Microsoft Flow-, Logic Apps- und PowerApps-Diensten bereitstellt.
Durch die REST API des combit Report Server können Sie nun aus Microsoft Flow den Report Server im eigenen Netzwerk anbinden.
Ein Custom Connector für den Datengateway (bei anderen Plattformen auch Service genannt) verbindet sich mit der REST API des Report Servers.
Abbildung 2: Laufendes lokales Datengateway.
Eigenen Connector erstellen
Wenn man einen Report Server betreibt, der auch im Internet erreichbar ist (z.B. https://myserver.com/combitReportServer) muss man sich seinen eigenen Custom Connector erstellen und benötigt das lokale Datengateway nicht.
- Auf der Microsoft Flow Seite unter Data auf Custom Connector klicken.
2. Auf die Schaltfläche + Create custom connector klicken, danach Import an OpenAPI file
3. Die Datei openapiflow.json herunterladen. Diese beinhaltet die Definition einiger API-Funktionen der Report Server REST API.
4. Auf Import klicken und die openapiflow.json auswählen. Danach einen Namen für den Connector festlegen und auf Continue drücken.
5. Icon und Farbe festlegen. Adresse des Report Servers angeben und falls die Adresse (z.B. https://localhost/rs24) nur im Intranet (also nicht von außen) verfügbar ist, das Häckchen bei Connect via on-premises data gateway setzen.
6. Mit „Create connector“ wird nun der Connector erstellt.
Die Reiter Security, Definition und Test sind nicht mehr relevant und Sie können direkt Ihren eigenen Flow erstellen.
Da die Authentifizierung bei jeder Aktion individuell geschieht, hat der Custom Connector selbst in Microsoft Flow keine Authentifizierungsart (Authentication Type auf none setzen)
Eigenen Flow erstellen
- Create from blank klicken
2. Nochmals Create from blank klicken
3. Beliebigen Trigger (Auslöser des Wokflows) hinzufügen (hier z.B. When a HTTP request is received)
4. + New step klicken
5. Auf den Reiter Custom gehen und den Connector auswählen, den sie zuvor erstellt haben.
6. Aktion „Get Export of a Report Template“ auswählen
7. Nur bei einer Verbindung mit lokalem Datengateway erforderlich
8. Alle erforderliche Felder ausfüllen (siehe Hinweise für Informationen zu IDs)
9. Save und ggf. Test drücken
Beispiel-Workflow 1: Export einer Berichtsvorlage und anschließendes abspeichern auf Google Drive / Dropbox:
Der Report Server könnte das Speichern auch direkt selbst durchführen. Da die Ablage eines Reports jedoch eine sehr häufig gestellte Anforderung ist, haben wir dies in diesem Workflow als Beispiel mit Hilfe von Microsoft Flow realisiert.
- Einen beliebigen Trigger hinzufügen (hier HTTP Request)
- Die Aktion „Get Export of a Report Template“ hinzufügen
- Verbindung mit ihrem Gateway herstellen
- IDs für den Export angeben
- Hierbei werden eindeutige IDs verwendet. Diese IDs (z.B. A0BCB71A-BA65-45C597F3-1282D9C7C126) können Sie aus der URL rauskopieren, diese steht stets ganz am Ende der Adresse:
- Für die ExportProfileID das Exportprofil zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/ExportConfig/Edit/A0BCB71A-BA65-45C5-97F3-1282D9C7C126
- Für die TemplateID die Berichtsvorlage zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/Template/Edit/DA023397-2AEB-417B-9BF9-07DB248D7E96
- Hierbei werden eindeutige IDs verwendet. Diese IDs (z.B. A0BCB71A-BA65-45C597F3-1282D9C7C126) können Sie aus der URL rauskopieren, diese steht stets ganz am Ende der Adresse:
- Bei Dateiprovider:
- File content => Add dynamic content
- Expression Tab
- Folgenden Ausdruck einfügen: base64ToBinary(body(‚Get_Export_of_a_Report_Template‘)[‚$content‘])
Wichtig: Bitte die Ausdrücke nicht einfach in das Feld selbst eintragen, sondern rechts in den Expression / Ausdruck Tab
6. Trigger ausführen => Testen!
Beispiel-Workflow 2: Versenden des Berichts per eMail
Führen sie hierfür Schritt 1-5 von Beispiel-Workflow 1 aus.
Danach + New Step:
Anlagen Inhalt (Ausdruck): base64ToBinary(body(‚Get_Export_of_a_Report_Template‘)[‚$content‘])
Anlagen Inhaltstyp (Ausdruck): body(‚Get_Export_of_a_Report_Template‘)[‚$content-type‘]
Sobald das Exportprofil geändert wird ändert sich auch der Content-Type und auch die Dateiendung.
Beispiel-Workflow 3: Ausführen eines geplanten Berichts
Hierfür benötigt man nur die ID des Geplanten Berichts und die Zugangsdaten des API-Nutzers.
Hinweis: Für die TaskID den Geplanten Berichten zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/Task/Edit/AC039DF1-EFB6-4181-A002-171463480E0F
Die Geplanten Berichte und deren Aktionen können dann im Report Server definiert werden. Microsoft Flow erhält beim Ausführen eines geplanten Berichts nicht den Export des Berichts selbst.
Hinweise:
- Statt body(‚Get_Export_of_a_Report_Template‘) am Besten den vorgefertigten Button nehmen, da die Aktion u.U. nicht ‚Get_Export_of_a_Report_Template‘ heißt:
Erklärungen:
IDs
Im Artikel werden eindeutige IDs verwendet. Diese IDs (z.B. A0BCB71A-BA65-45C597F3-1282D9C7C126) können Sie aus der URL rauskopieren, diese steht stets ganz am Ende der Adresse:
- Für die TaskID den Geplanten Berichten zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/Task/Edit/AC039DF1-EFB6-4181-A002-171463480E0F
- Für die ExportProfileID das Exportprofil zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/ExportConfig/Edit/A0BCB71A-BA65-45C5-97F3-1282D9C7C126
- Für die TemplateID die Berichtsvorlage zum Bearbeiten öffnen http://www.report-server.com/combitReportServer/Template/Edit/DA023397-2AEB-417B-9BF9-07DB248D7E96
- Ausdruck: base64ToBinary(body(‚Get_Export_of_a_Report_Template‘)[‚$content‘])
Beim Export einer Berichtsvorlage via REST API wird der fertige Bericht (PDF, DOCX, etc.) mit Base64 kodiert und wie folgt von der REST API zurückgegeben:
Der Ausdruck konvertiert die übertragene Datei aus Base64 zurück, welche im Body der Aktion Get_Export_of_a_Report_Template als $content hinterlegt ist.
Die vorgefertigten Funktionen base64ToBinary und body werden von Microsoft Flow bereitgestellt (es gibt noch viele weitere um Daten zu verarbeiten):
Fazit
Nach der Konfiguration des Custom Connectors und mithilfe dieser Beispiel-Workflows können Sie nun das Exportieren bzw. Erzeugen von Berichten in Ihre Flows integrieren. Sei es das Hochladen auf einen beliebigen Cloud-Server oder das allgemeine Verarbeiten eines Berichts.
Darüber hinaus wird der Report Server in der nächsten Version auch Flows über WebHooks auslösen können.
Seit mehr als 20 Jahren entwickelt Alexander Horak Software. Bereits während seines Informatikstudiums arbeitete Alex bei combit, heute ist er Entwicklungsleiter des combit Report Servers, eine auf ASP.NET MVC basierende Enterprise Reporting Lösung. Alex liebt Fußball und ist ein aktiver Unterstützer des FC Bayern München.