2020-09-03 07:17发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,在搜索了3天没有结果之后,也许有人可以在论坛中为我提供帮助:
我想使用JCO3 SDK用Java进行BAPI MDX调用。
连接正常,还发现了有关使用bapi_mddataset_create_object和其他功能的信息。
但是,如何构建完整的代码以从MDX select返回结果?
每个提示或解决方案都很棒!
Thx,罗兰(Roland)
知道了...代码很好,但是我需要找出如何使用bapi_mddataset_get_axis_data和... get_cell_data ...来访问数据
嗨,
到目前为止,我已经获得了可以正常运行的代码,
但不传送任何数据。
使用其他工具选择数据时,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 em>
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 (目标);
最多设置5个标签!
知道了...代码很好,但是我需要找出如何使用bapi_mddataset_get_axis_data和... get_cell_data ...来访问数据
嗨,
到目前为止,我已经获得了可以正常运行的代码,
但不传送任何数据。
使用其他工具选择数据时,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 em>
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 (目标);
一周热门 更多>