cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with executing mdx query through XMLA

Former Member
0 Kudos

I'm trying to execute simple mdx statement from my WD application and use XMLA for this purposes, code is the same simple as from sdk_bi tutorial. And I get strange error. Maybe someone have some ideas about it. Any help will be rewarded.

Warning ! Protocol Implementation [com.sap.engine.services.webservices.jaxrpc.wsdl2java.features.builtin.MessageIdProtocol] could not be loaded (NoClassDefFoundError) !

Error Message is :com/sap/guid/GUIDGeneratorFactory

Nov 20, 2007 9:46:52 PM ...dk.dac.connector.xmla.impl.Connection [Thread[main,5,main]] Error: Service call exception; nested exception is:

java.lang.NullPointerException

Nov 20, 2007 9:46:52 PM ...dk.dac.connector.xmla.impl.Connection [Thread[main,5,main]] Error: Cannot execute command SELECT NON EMPTY [TS_PROJ].[LEVEL01].MEMBERS * [TS_RESRC].[LEVEL01].MEMBERS ON AXIS(1) FROM [TS_C01/TS_C01_NW001]

Nov 20, 2007 9:46:52 PM ...dk.dac.connector.xmla.impl.Connection [Thread[main,5,main]] Error: Exception com.sap.ip.bi.sdk.exception.BIResourceException: Cannot execute command SELECT NON EMPTY [TS_PROJ].[LEVEL01].MEMBERS * [TS_RESRC].[LEVEL01].MEMBERS ON AXIS(1) FROM [TS_C01/TS_C01_NW001]

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection$ProxyWrapper.execute(Connection.java:1788)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection.getDataSet(Connection.java:364)

at com.sap.ip.bi.sdk.dac.connector.xmla.XmlaOlap.execute(XmlaOlap.java:186)

at com.sap.ip.bi.sdk.samples.Huy.main(Huy.java:33)

Caused by: java.rmi.RemoteException: Service call exception; nested exception is:

java.lang.NullPointerException

at com.sap.ip.bi.sdk.dac.connector.xmla.standalone.MsXmlAnalysisSoapStub.execute(MsXmlAnalysisSoapStub.java:147)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.StandaloneProxy.execute(StandaloneProxy.java:118)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection$ProxyWrapper.execute(Connection.java:1771)

... 3 more

Caused by: java.lang.NullPointerException

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.DatasetContentHandler.endElement(DatasetContentHandler.java:729)

at com.sap.engine.lib.xml.parser.handlers.SAXDocHandler.endElement(SAXDocHandler.java:156)

at com.sap.engine.lib.xml.parser.XMLParser.scanEndTag(XMLParser.java:1951)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1844)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2843)

at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:160)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:261)

at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:280)

at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:342)

at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)

at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.handlerSAXMessage(MimeHttpBinding.java:1570)

at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1449)

at com.sap.ip.bi.sdk.dac.connector.xmla.standalone.MsXmlAnalysisSoapStub.execute(MsXmlAnalysisSoapStub.java:140)

... 5 more

com.sap.ip.bi.sdk.exception.BIResourceException: Cannot get data set

at com.sap.ip.bi.sdk.dac.connector.xmla.XmlaOlap.execute(XmlaOlap.java:189)

at com.sap.ip.bi.sdk.samples.Huy.main(Huy.java:33)

Caused by: com.sap.ip.bi.sdk.exception.BIResourceException: Cannot execute command SELECT NON EMPTY [TS_PROJ].[LEVEL01].MEMBERS * [TS_RESRC].[LEVEL01].MEMBERS ON AXIS(1) FROM [TS_C01/TS_C01_NW001]

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection$ProxyWrapper.execute(Connection.java:1788)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection.getDataSet(Connection.java:364)

at com.sap.ip.bi.sdk.dac.connector.xmla.XmlaOlap.execute(XmlaOlap.java:186)

... 1 more

Caused by: java.rmi.RemoteException: Service call exception; nested exception is:

java.lang.NullPointerException

at com.sap.ip.bi.sdk.dac.connector.xmla.standalone.MsXmlAnalysisSoapStub.execute(MsXmlAnalysisSoapStub.java:147)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.StandaloneProxy.execute(StandaloneProxy.java:118)

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.Connection$ProxyWrapper.execute(Connection.java:1771)

... 3 more

Caused by: java.lang.NullPointerException

at com.sap.ip.bi.sdk.dac.connector.xmla.impl.DatasetContentHandler.endElement(DatasetContentHandler.java:729)

at com.sap.engine.lib.xml.parser.handlers.SAXDocHandler.endElement(SAXDocHandler.java:156)

at com.sap.engine.lib.xml.parser.XMLParser.scanEndTag(XMLParser.java:1951)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1844)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanContent(XMLParser.java:2440)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1841)

at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2843)

at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:160)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:261)

at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:280)

at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:342)

at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)

at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.handlerSAXMessage(MimeHttpBinding.java:1570)

at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1449)

at com.sap.ip.bi.sdk.dac.connector.xmla.standalone.MsXmlAnalysisSoapStub.execute(MsXmlAnalysisSoapStub.java:140)

... 5 more

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member751941
Active Contributor
0 Kudos

Hi Aliaksandr,

Have you configure The BI Java Connectors(XMLA) in your Visual Administrator ?

Follow the Steps for BI XMLA Connector.

Check this link :

<a href="http://help.sap.com/saphelp_nw70/helpdata/en/ba/e380e03c3a4dbf8cf082f0c910f9cf/frameset.htm">Configuring the BI Java Connectors</a>

<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/60f35908-ecd4-2910-6c89-e75e1054d9d1">WDJ - Application to execute MDX query using the BI Java SDK</a>

Regards,

Mithu

Former Member
0 Kudos

Hi Mithu,

Yes, I configured, and I can perform basic operations f.e. find for cube by name and etc., but I can't execute mdx and get DataSet. So I don't think the problem actually is in configuration.

Former Member
0 Kudos

I have concern that it could be connected to mdx statement syntax, because I managed to execute other statement, but not this one I need. So maybe can explain what is wrong with this statement:

SELECT

NON EMPTY [TS_PROJ].[LEVEL01].MEMBERS * [TS_RESRC].[LEVEL01].MEMBERS ON AXIS(1) FROM [TS_C01/TS_C01_NW001]

We have BW 7.0 and on it, it runs perfectly with MDX TestEditor.

former_member751941
Active Contributor
0 Kudos

Hi Aliaksandr,

Go to the MDX Testeditor

Select your CATALOG and CUBE name then from right hand side under Query there is a button “Operation; Process object” click on it will give you a generated Query. First execute the query then modify it as per your requirement and execute.

Check this code

In MDX Testeditor

-


SELECT

[Measures].MEMBERS ON AXIS(0),

NON EMPTY [0PROD_HIER].[LEVEL01].MEMBERS

  • [ZFUND_ID].[LEVEL01].MEMBERS

  • [0DATEFROM].[LEVEL01].MEMBERS

  • [0DATETO].[LEVEL01].MEMBERS

  • [0CURRENCY].[LEVEL01].MEMBERS

  • [0UNIT].[LEVEL01].MEMBERS

  • [0PH_CREATBY].[LEVEL01].MEMBERS

  • [0CPR_CREATE].[LEVEL01].MEMBERS

dimension properties [0PROD_HIER].[20PROD_HIER],

[0CURRENCY].[20CURRENCY],[0UNIT].[20UNIT],

[0PH_CREATBY].[20PH_CREATBY]ON AXIS(1)

FROM [ZTPM_FUND/Z_QUERY_Q0001_TPML_FUND_SA]

WHERE [0SALESORG].[BP01]

In Web Dynpro

-


Context initctx = new InitialContext();

// perform JNDI lookup to obtain connection factory

connectionFactory =

(IConnectionFactory) initctx.lookup(

"deployedAdapters/SDK_XMLA/shareable/SDK_XMLA");

connection =

(IBIConnection) connectionFactory.getConnectionEx(null);

IBIOlap olap = ((IBIConnection) connection).getOlap();

String salesOrg = "BP01";

String mdxQuery =

"SELECT"

+ " [Measures].MEMBERS ON AXIS(0),"

+ " NON EMPTY [0PROD_HIER].[LEVEL01].MEMBERS"

+ " * [ZFUND_ID].[LEVEL01].MEMBERS"

+ " * [0DATEFROM].[LEVEL01].MEMBERS"

+ " * [0DATETO].[LEVEL01].MEMBERS"

+ " * [0CURRENCY].[LEVEL01].MEMBERS"

+ " * [0UNIT].[LEVEL01].MEMBERS"

+ " * [0PH_CREATBY].[LEVEL01].MEMBERS"

+ " * [0CPR_CREATE].[LEVEL01].MEMBERS"

+ " dimension properties [0PROD_HIER].[20PROD_HIER],"

+ " [0CURRENCY].[20CURRENCY],[0UNIT].[20UNIT],"

+ " [0PH_CREATBY].[20PH_CREATBY]ON AXIS(1)"

+ " FROM [ZTPM_FUND/Z_QUERY_Q0001_TPML_FUND_SA]"

+ " where [0SALESORG].["

+ salesOrg

+ "]";

IBIDataSet dataset = olap.execute(mdxQuery);

BIDataSetTableModel table =

new BIDataSetTableModel(dataset, false);

int row = table.getRowCount();

int col = table.getColumnCount();

Regards,

Mithu

Former Member
0 Kudos

Hi Mithu,

Yes, off course I tested my mdx in MDXTest before I load it in WebDynpro

Actually, problem was in that not every mdx statement which is correct in MDXTest can be executed through XMLA. I don't know the reason of such behaviour, maybe it related to version of lib's or smt like this. I rewrite statement in more old fashion menner and now it works.

Former Member
0 Kudos

I am having the same problem here.

SELECT [dimension].[LEVEL01].MEMBERS PROPERTIES [dimension].[2dimension] ON ROWS FROM [$cube] gives me an Error: Exception com.sap.ip.bi.sdk.exception.BIResourceException: Cannot execute command

I tried to execute this query in transaction MDXTEST and it worked.

Other much more comlicated MX-Queries work, using the XMLA-interface.

I can't really repoduce this error.