如何使用RFC在JCO表中设置多个数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用RFC在JCO表中设置多个数据?相关的知识,希望对你有一定的参考价值。
我想在我的JCO Table
中使用RFC到SAP服务器添加多个数据。
以下是我的代码。
但问题只是最后一次将被设置为闷棍。
我错过了什么?
我正在使用一个函数与SAP同步数据。
JCO.Function function = null;
JCO.Repository mRepository;
public String updateCustomerToSAP(String bapi){
String message = null;
Connection conn = new Connection();
JCO.client mConnection = conn.open();
JCO.Table GETZPRTL_VISIT = null;
mConnection.connect();
try{
function = this.createFunction(bapi);
if(function == null){
// Not fount
}else{
GETZPRTL_VISIT = function.getTableParameterList().getTable("CUSTOMER_VISIT");
for(int i = 0 ; i < 10 ; i++){
GETZPRTL_VISIT.appendRow();
GETZPRTL_VISIT.setValue("0001 "+i,"ID");
GETZPRTL_VISIT.setValue("john_ro "+i,"USER_NAME");
GETZPRTL_VISIT.setValue("John "+i,"FIRST_NAME");
GETZPRTL_VISIT.setValue("Martin "+i,"LAST_NAME");
GETZPRTL_VISIT.setValue("john.martin@gmail.com "+i,"EMAIL");
}
// Above data is just for and example. I fetch those data from ArrayList and all data are diffrent.
function.getImportParameterList().setValue("Data1","USER_ID");
function.getImportParameterList().setValue("type goes here","TYPE");
function.getImportParameterList().setValue("reason goes here","REASON");
function.getImportParameterList().setValue("final status","STATUS");
function.getImportParameterList().setValue("0001","NUMBER");
mConnection.execute(function);
message = (String) function.getExportParameterList().getValue("MESSAGE");
}
}catch(Exception e){
}
conn.disconnect();
return message;
}
public JCO.Function createFunction(String name) throws Exception{
try{
IFunctionTamplate ft = mRepository.getFunctionTamplate(name.toUpperCase());
if(ft == null)
return null;
return ft.getFunction();
}catch(Exception e){
throw new Exception("Problem retriving JCO.Function object"+ e);
}
}
这里的CUSTOMER_VISIT是我的RFC内部的表。
结构示例
USER_ID
TYPE
REASON
STATUS
NUMBER
CUSTOMER_VISIT <= This is Table inside function module.
CUSTOMER_VISITOR表结构
ID
USER_NAME
FIRST_NAME
LAST_NAME
EMAIL
答案
可能问题在于功能模块的ABAP代码吗?不熟悉ABAP的人很容易将“表格的标题行”与“表格本身”混为一谈......
是否有可能只将标题行插入数据库?
如果激活JCo跟踪级别,您可以看到JCo向R / 3发送的数据。您还可以在ABAP端设置外部断点,然后单步执行功能模块以查看其获得的数据。
以上是关于如何使用RFC在JCO表中设置多个数据?的主要内容,如果未能解决你的问题,请参考以下文章