Einbinden von MS SSAS als OLAP-View in JasperReports

Die Microsoft(R) SQL Server Analysis Services (MS SSAS) stellen den OLAP-Dienst des Microsoft SQL Servers(R) ab Version 2000 (Shiloh) und auch in den späteren Versionen 2005 (Yukon) und 2008 (Katmai) dar. Auch wenn mit SQL Server 2012 (Denali) die nächste Version bereits vor der Tür steht und getestet werden kann, stellt SQL Server 2008 R2 (Kilimanjaro) die aktuelle Version dar.

Es kam in einem laufenden Projekt die Frage auf, ob man die OLAP-Cubes aus SSAS 2008 R2 in JasperReports Server darstellen kann. Dies wurde mit dem Jasperserver-Pro in der Version 4.5 positiv evaluiert.
Laut Doku unterstützt Jasper vorrangig OLAP-Verbindungen mit Mondrian. Allerdings sind auch XML/A-Verbindungen explizit in der Softare als Verbindungsoption vorgesehen. XML/A-Verbindungen können von MS SSAS mittels “HTTP Access to SQL Server Analysis Services on IIS 7.0” durch Bereitstellung der DLL MSMDPUMP.dll als ISAPI-Erweiterung (Internet Server Application Programming Interface) bereitgestellt werden.
Eine Anleitung zur Bereitstellung dieses Dienstes ist im Microsoft Developer Network (MSDN) unter http://msdn.microsoft.com/en-us/library/gg492140.aspx zu finden.

Die Einbindung in iReport stellt kein Problem dar. Mit Hilfe von XML/A-Verbindungen lässt sich das leicht bewerkstelligen.

Leider lassen sich damit erstellte Reports zwar in iReport ausführen, aber nicht auf den Jasperserver hochladen. Der Versuch des Hochladens führt zu der Fehlermeldung:
“Unsupported language: You are trying to upload on JasperServer a report which uses the xmla-mdx query language. This language is not supported by JasperServer and it is outdated. You should use the mdx language instead.”

Mit dem iReport Designer lassen sich durch den Repository-Navigator XML-A Verbindungen auf den Server laden. Dieser Vorgang läuft zwar ohne Fehlermeldung, jedoch sind die entstandenen Repository-Einträge des Typs “XML-A-Verbindung” bzw. “XML-A connection” für spätere OLAP-Anfragen nicht zu gebrauchen, da die Einträge für Katalog (bzw. Catalog) und Datenquelle (bzw. Data Source) falsch sind. Dies ist an der Fehlermeldung
“com.jaspersoft.jasperserver.api.JSException: com.tonbeller.jpivot.olap.model.OlapException: Malformed data source given for determining XML/A provider”
zu erkennen.
Die Lösung besteht darin, JasperReports die “SQL Server Analysis Services” als Mondrian-Datenquelle zu verkaufen. Die eigentlich korrekte Datenquelle (z.B. Provider=MSOLAP.4;Data Source=Localhost;Initial Catalog=AdventureWorksDW2008R2) wird nicht erkannt, was mit der Fehlermeldung
“com.jaspersoft.jasperserver.api.JSException: com.tonbeller.jpivot.olap.model.OlapException: Unexpected data source determining XML/A provider” quittiert wird. Stattdessen führt eine Mondrian Datenquelle (z.B. “Provider=Mondrian;DataSource=Adventure Works DW 2008R2”) mit der URI des durch MSMDPUMP.dll (z.B. http://localhost/olap/msmdpump.dll) bereitgestellten SSAS-Dienstes zum gewünschten Erfolg. Die funktionierende XML/A-Verbindung wird in folgendem Screenshot dargestellt:

Der in JasperReports navidierbare OLAP-Cube des folgenden Screenshots basiert auf der Beispiel-MDX-Anfrage der AdventureWorks-Testdatenbank:
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2008],
[Date].[Fiscal].[Fiscal Year].&[2009] } ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )

Mit diesem Workaround kann MS SSAS auch in JasperReports als OLAP-Datenquelle verwendet werden.

Folgende Fehlerquellen sind mir aufgefallen:
com.jaspersoft.jasperserver.api.JSException: com.tonbeller.jpivot.olap.model.OlapException: java.lang.Exception: Schwerwiegender Fehler beim Parsen von MDX: Couldn’t repair and continue parseUngültiges Symbol “FROM”
Dieser Fehler kann bei MDX-Anfragen auftreten, die der Parser zum Erkennen der Ergebnisspalten (fields provider) nicht verarbeiten kann. Dies kann auch bei Anfragen geschehen, die im Microsoft SQL Server Management Studio fehlerfrei durchlaufen.

Englische Übersetzung unter: http://blog.itransparent.de/using-ms-ssas-as-olap-view-in-jasperreports/?lang=en

 

, , , , , ,

Bisher sind keine Kommentare vorhanden.

Hinterlasse eine Antwort