cancel
Showing results for 
Search instead for 
Did you mean: 

MDX Bapi throw .Net connector

Former Member
0 Kudos

Hello.

I use sap net connector and have some issue.

It's my code for executing mdx.

IRfcFunction fn = dest.Repository.CreateFunction("BAPI_MDDATASET_CREATE_OBJECT");
var queryTable = fn.GetTable("COMMAND_TEXT");
queryTable.Append();
queryTable.CurrentRow.SetValue("LINE", "SELECT ");
queryTable.Append();
queryTable.CurrentRow.SetValue("LINE", "[Measures].[0COST] ON COLUMNS, ");
queryTable.Append();
queryTable.CurrentRow.SetValue("LINE", "[0SALESORG].[3091] ON ROWS ");
queryTable.Append();
queryTable.CurrentRow.SetValue("LINE", "FROM [$CA_SD_02M] ");

fn.Invoke(dest);

var datasetId = fn.GetString("DATASETID");

IRfcFunction selectData = dest.Repository.CreateFunction("BAPI_MDDATASET_SELECT_DATA");
selectData.SetValue("DATASETID", datasetId);
selectData.Invoke(dest);

var returnedValue = selectData.GetStructure("RETURN");
if (returnedValue.GetString("TYPE") == "E")
{
   Console.WriteLine("message: " + returnedValue.GetString("MESSAGE"));
   Console.WriteLine("message v1: " + returnedValue.GetString("MESSAGE_V1"));
   Console.WriteLine("message v1: " + returnedValue.GetString("MESSAGE_V2"));
   Console.WriteLine("message v1: " + returnedValue.GetString("MESSAGE_V3"));
   Console.WriteLine("message v1: " + returnedValue.GetString("MESSAGE_V4"));            

}

it shows follow, without any details:

message: An exception was raised.
message v1: An exception was raised.
message v1:
message v1:
message v1:

I tested this query throw oledb for olap (mdrmsap), it works.

Any suggestion?

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Solved.

Need to use

RfcSessionManager.BeginContext(dest)