本文档测试环境:
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.youkuaiyun.com/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"即可
本文介绍如何在Linux环境下使用Java连接SAP系统。主要包括下载并配置sapjco.jar,设置必要的环境变量,以及编写Java示例代码来调用SAP的RFC函数。
388

被折叠的 条评论
为什么被折叠?



