Linux下Java如何连SAP

本文档测试环境:

1Linux操作系统版本:

       Red Hat Enterprise Linux Server release 5

       2.6.18-8.el5

2jdk版本

       1.5.0_16

 

Linux下连Javasap步骤

1)下载sapjco.jar

       请到service.sap.com/connectors,下载sapjco.jar,本案下载的是sapjco-linuxintel-2.1.8.zip

2)解压zip文件,将其中librfccm.solibsapjcorfc.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.solibsapjcorfc.so文件所在的目录即可;

4)至此,已经完成jcolinux下的安装,下一步工作就是写一个测试用例,本案调用了一个sapRFC函数,该函数传如一个字符串参数,返回一个整形值;

    ·创建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)