I'm building a Java service that generates reports (with the JasperReports 4.0.5 library), with olap datasource (XML-A server).
On iReport I write XMLA-MDX query and I visualize correctly the preview.
But when I run it in Java, I get error "line 1:1: unexpected token: [Measures]" on execution!
Detail message says: net.sf.jasperreports.engine.JRRuntimeException: Invalid field mapping "[Measures].[Full price]".
This is the code:
try{
net.sf.jasperreports.engine.util.JRProperties.setProperty("net.sf.jasperreports.query.executer.factory.xmla-mdx", "net.sf.jasperreports.olap.xmla.JRXmlaQueryExecuterFactory");
String url = "http://localhost/olap/msmdpump.dll";
String ds = "localhost";
String cat = "MyCat";
Map parameters = new HashMap();
parameters.put(JRXmlaQueryExecuterFactory.PARAMETER_XMLA_DATASOURCE, ds);
parameters.put(JRXmlaQueryExecuterFactory.PARAMETER_XMLA_CATALOG, cat);
parameters.put(JRXmlaQueryExecuterFactory.PARAMETER_XMLA_URL, url);
String fileJasper = "I:\\Work\\prod_ireport\\myOlapReport.jasper";
JasperPrint jp = JasperFillManager.fillReport(fileJasper, parameters);
}
catch (Exception e) {
System.out.println(e.getMessage());
}
And this is MDX-XMLA query in jrxml file
SELECT
NON EMPTY {
[Measures].[Full price]
, [Measures].[Promo price]
} ON COLUMNS,
NON EMPTY {
[Items].[Items Hierarchy].[Repo].Members
, [Items].[Items Hierarchy].[Family].Members
} ON ROWS
FROM [MY CUBE]
Where am I doing wrong?