JCO3 Java bapi mdx调用

2020-09-03 07:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,在搜索了3天没有结果之后,也...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,在搜索了3天没有结果之后,也许有人可以在论坛中为我提供帮助:

我想使用JCO3 SDK用Java进行BAPI MDX调用。

连接正常,还发现了有关使用bapi_mddataset_create_object和其他功能的信息。

但是,如何构建完整的代码以从MDX select返回结果?

每个提示或解决方案都很棒!

Thx,罗兰(Roland)

2条回答
Cikesha
2020-09-03 07:28

嗨,

到目前为止,我已经获得了可以正常运行的代码,

但不传送任何数据。

使用其他工具选择数据时,MDX本身可以正常工作。

如果有人可以看到,我的代码有什么问题,请回答。 谢谢!

JCoContext。开始(目标);

JCoFunction function_create = destination.getRepository()。getFunction(" BAPI_MDDATASET_CREATE_OBJECT");
JCoParameterList tableParams = function_create.getTableParameterList() ; try {
JCoTable table = null;
JCoFieldIterator iter = tableParams.getFieldIterator(); while(iter.hasNextField())
{
JCoField f = iter.nextField(); if(f .getName()。equals(" COMMAND_TEXT")&f.isTable()){
table = f.getTable();
}
}
//设置mdx语句 table.appendRow();
table.setValue(" LINE"," SELECT {[4F0Q0T89JPDJCFX8AUVRPFVA0]。[C2RRWD6RC4GKR195AFCVHE9LQ]}");
table.appendRow();
table.setValue( " LINE"," ON COLUMNS,非空[0COMP_CODE]。[LEVEL01]。成员尺寸");
table.appendRow();
table.setValue(" LINE","属性[0COMP_CODE]。[ 10COMP_CODE] ON ROWS");
table.appendRow();
table.setValue(" LINE"," FROM [STCO_M01/YSTFI02_BRAND_PL_COGNOS]");
//分配给objec

tableParams.setValue(" COMMAND_TEXT",table);
//执行

function_create.execute(destination);
//获取数据集ID

对象数据集ID = function_create.getExportParameterList()。getValue(" DATASETID");
//定义下一个函数

JCoFunction function_select = destination.getRepository()。getFunction(" BAPI_MDDATASET_SELECT_DATA");
//使用dataidid形式的function_create

function_select.getImportParameterList()。setValue(" DATASETID",datasetid);
function_select.execute(destination);
System。 out .println(" execulated 2");
//获取exportParams

JCoParameterList selectReturnList = function_select.getExportParameterList();
JCoParameterFieldIterator paramIt = selectReturnList.getParameterFieldIterator();
JCoStructure struc = null;
//通过参数循环

while(paramIt.hasNextField()){尝试{
JCoField field = paramIt.nextField(); if(field.getName()。equals(" RETURN")){
struc = field.getStructure ();
System。 out .println(" message:" + struc.getString(" MESSAGE"));
System。 out .println( "消息类型:" + struc.getString(" TYPE"));
}
} catch(异常e){
e.printStackTrace();
}
}
//获取Axis信息

JCoFunction function_getAxisInfo = destination.getRepository()。getFunction(" BAPI_MDDATASET_GET_AXIS_INFO");
function_getAxisInfo.getImportParameterList()。setValue(" DATASETID",数据集ID);
function_getAxisInfo.execute(destination);

System。 out .println(function_getAxisInfo.getImportParameterList());
System。 out .println(function_getAxisInfo.getExportParameterList());
系统 。 out .println(function_getAxisInfo.getTableParameterList());


JCoContext。 end (目标);

一周热门 更多>