BAPI_MDDATASET_CREATE_OBJECT MDX查询

时间:2016-05-10 13:31:02

标签: sap mdx bapi

我想从Java到BAPI进行BAPI调用" BAPI_MDDATASET_CREATE_OBJECT"。

因此我想使用以下MDX查询:

SELECT
[0DISTR_CHAN].Members ON COLUMNS,
[0MATERIAL].Members ON ROWS
FROM [$/PKG/AB_C01]

因为参数" COMMAND_TEXT"是短的我做了4个这样的条目: enter image description here

现在我运行BAPI并获得DATASETID作为回报。我将这个id用于下一个BAPI" BAPI_MDDATASET_CHECK_SYNTAX"

但现在我得到一个例外: enter image description here

英文版:

enter image description here

为什么会这样?

这个MDX查询似乎没问题,因为在transcation" MDXTEST"这个查询正在运行。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我只有c#和sap连接器才遇到同样的问题。 我解决了需要在一个上下文中使用所有命令:

RfcSessionManager.BeginContext(destination);
Create_Object();
CheckSyntax();
etc.
RfcSessionManager.EndContext(this.destination);

答案 1 :(得分:0)

以下将返回一个大表n * m,其中n是列数,m是行数:

SELECT
[0DISTR_CHAN].Members ON COLUMNS,
[0MATERIAL].Members ON ROWS
FROM [$/PKG/AB_C01]

n =此维度中的成员数[0DISTR_CHAN] + 1
m =此维度[0MATERIAL]

中的成员数

这不是答案,但可能有助于发现mdx是否是问题。如果您将上述内容简化为行上的单个成员,而列上的单个成员仍然会出现错误吗?

SELECT
  {[0DISTR_CHAN].[0DISTR_CHAN].[someMemberY]} ON COLUMNS,
  {[0MATERIAL].[0MATERIAL].[someMemberX]} ON ROWS
FROM [$/PKG/AB_C01];