Showing results for 
Search instead for 
Did you mean: 

Using JCO3 for MDX query on BW Server - CX_RSR_MDX_EMPTY

Active Participant
0 Kudos

We are attempting to execute an MDX query using a BAPI_MDDATASET_CREATE_OBJECT call, then a BAPI_MDDATASET_SELECT_DATA. Using JCO2, the call works successfully. However, after migrating to JCO3, we receive the following error.

occurred (program: CL_RSR_MDX_COMMAND============CP, include: CL_RSR_MDX_COMMAND============CM001, line: 15).; LOG_NO=; LOG_MSG_NO=0; MESSAGE_V1=Exception CX_RSR_MDX
_EMPTY occurred (program:; MESSAGE_V2=CL_RSR_MDX_COMMAND============CP, include:; MESSAGE_V3=CL_RSR_MDX_COMMAND============CM001, line: 15).; MESSAGE_V4=; PARAMETER=

As this CX_RSR_MDX_EMPTY message infers (but is seemingly undocumented) the BW server is not receiving (or not recognizing) the MDX query. However, we have stepped through both versions (2 and 3) in memory, and the query is being assigned, serialized, compressed, and sent to the server.

We believe the issue is with the introduction of the generic input params and using a table-as-input paradigm. All JCO3 examples show tables-as-output, but none as input. (To clarify, I do not mean actual INPUT parameters, the data is sent as TABLE parameters.)

First, is what we are trying to accomplish feasible? Is there something in JCO3 that does not allow this? Does JCO3 support MDX queries to BW?

Second, is there a way to change the protocol or turn off compression during serialization in JCO3? It seems as if uncompressed and even XML serialization is available, but I see nothing in the API allowing it to be utilized.

Third, is there more information available for this error? Other posts suggest authorization/authentication issues, but our security team insists the login is successful to the server. Is it possible that the error is misrepresenting the actual problem: that there may be a problem with the decompression or deserialization, but the server returns CX_RSR_MDX_EMPTY?

Finally, does anyone have any other ancillary information they may be able to provide? Does an example of setting table data before execution exist, so we might use that as a baseline? We have tried numerous combinations, but always receive the same error.

Thanks for any and all help.

Accepted Solutions (0)

Answers (1)

Answers (1)

0 Kudos

I have a small suspicion: By default all calls executed via JCo3 are stateless; if you don't have it already, try wrapping your function calls that belong in one unit in a

// Execute all function calls here and end context once done

This might fix your problem.