您的位置:首页 > 运维架构 > Linux

Linux下Java如何连SAP

2009-10-20 10:45 120 查看
本文档测试环境:
1)Linux操作系统版本:
Red Hat Enterprise Linux Server release 5
2.6.18-8.el5
2)jdk版本
1.5.0_16

Linux下连Java连sap步骤
1)下载sapjco.jar
请到service.sap.com/connectors,下载sapjco.jar,本案下载的是sapjco-linuxintel-2.1.8.zip
2)解压zip文件,将其中librfccm.so、libsapjcorfc.so两个文件,拷贝复制到$JAVA_HOME/jre/lib/i386/server,并将sapjco.jar复制到特定目录下,然后设置CLASSPATH变量即可,本案export CLASSPATH=.:/usr/java/jdk1.5.0_16/lib:/usr/java/jdk1.5.0_16/jre/lib:/usr/wuxq/sapjco.jar
3)在进行sap rfc连接的时候,需要libstdc++-libc6.2-2.so.3库文件,可从csdn上下载,http://download.csdn.net/source/648150,将libstdc++-libc6.2-2.so.3库文件复制到librfccm.so、libsapjcorfc.so文件所在的目录即可;
4)至此,已经完成jco在linux下的安装,下一步工作就是写一个测试用例,本案调用了一个sap的RFC函数,该函数传如一个字符串参数,返回一个整形值;
·创建JCO.Client,并连接
public boolean connect(){
boolean rtn = false;
try{
client = JCO.createClient(sid, username,
password,language,host,系统编号);
//sid-集团号;language-ZH,EN等;系统编号-00等
client.connect();
rtn = true;
}catch(Exception e){
e.printStackTrace();
}
return rtn;
}
·创建RFC函数
public JCO.Function createFunction(String name) throws Exception {
try {
JCO.Repository mRepository;
mRepository = new JCO.Repository("ARAsoft", client);
IFunctionTemplate ft = mRepository.getFunctionTemplate(name
.toUpperCase());
if (ft == null)
return null;
return ft.getFunction();
} catch (Exception ex) {
throw new Exception("Problem retrieving JCO.Function object.");
}
}
·置传入参数、调用函数、返回值处理
public int ZSD_CALCULATE_VBELN_SO() throws Exception{
JCO.Function function = createFunction("ZSD_CALCULATE_VBELN_SO");
//设置参数
JCO.ParameterList input = function.getImportParameterList();
input.setValue("0020100306", "VGBEL");
//执行函数
client.execute(function);
//返回结果处理
JCO.ParameterList output = function.getExportParameterList();
int num = output.getInt("NUMS");
return num;
}
·断开连接
public void disConnect(){
client.disconnect();
}
5)编译运行JcoTest类,可以得到返回结果1,与在sap/r3中执行函数ZSD_CALCULATE_VBELN_SO,返回结果一致。
6)相关说明:
·jco支持连接池,因此建议在应用服务里使用jco连接池;
·示例代码,只是案例演示代码,并无做任何优化处理;
·更详细说明,请参阅JCo Tutorial.pdf
·附件,请在csdn上下载,查找"jco for linux"即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: