zoukankan      html  css  js  c++  java
  • Java使用JCO调用RFC函数

    配置SAP集成开发环境

    windows

    librfc32.dll,sapjcorfc.dll 放到c:windowssystem32下面 
    sapjco.jar 放到当前项目的web-inflib下面

    linux

    librfccm.so、libsapjcorfc.so放到jdk所安装的路径下的jre/lib/amd64下面 
    sapjco.jar 放到当前项目的WEB-INFlib下面

    代码示例

    // sap连接属性
    Properties logonProperties = new Properties();
    logonProperties.put("jco.client.ashost", "192.168.255.256");
    logonProperties.put("jco.client.client", "800");
    logonProperties.put("jco.client.sysnr", "12");
    logonProperties.put("jco.client.user", "username");
    logonProperties.put("jco.client.passwd", "password");
    logonProperties.put("jco.client.lang", "zh");
    logonProperties.put("jco.client.CodePage", "8400");
    JCO.Client client = JCO.createClient(logonProperties);
    // 建立连接
    client.connect();
    
    // 建立repository 
    JCO.Repository repository = new JCO.Repository("myRepository", client);
    // 获取函数模版
    IFunctionTemplate functionTemplate = repository.getFunctionTemplate("Y_FUNCTION_NAME");
    // 获取函数对象
    JCO.Function function = functionTemplate.getFunction();
    // 输入参数列表
    JCO.ParameterList parameterList = function.getImportParameterList();
    // 输入结构赋值
    JCO.Structure oaidStructure = parameterList.getStructure("IS_OAID");
    oaidStructure.setValue("12", "OAID");
    oaidStructure.setValue("23", "MATNR");
    
    // client 执行函数
    client.execute(function);
    
    // 获取输出参数列表
    ParameterList exportParameterList = function.getExportParameterList();
    // 根据参数名获取参数值
    System.out.println("EX_TYPE : " + exportParameterList.getString("EX_TYPE"));
    System.out.println("EX_MESSAGE : " + exportParameterList.getString("EX_MESSAGE"));
    // 获取表
    ParameterList tableParameterList = function.getTableParameterList();
    Table etOaid = tableParameterList.getTable("ET_OAID");
    for (int i = 0; i < etOaid.getNumRows(); i++) {
        etOaid.setRow(i); // 设置游标
        System.out.print("MANDT : " + etOaid.getString("MANDT"));
        System.out.print(" MATNR : " + etOaid.getString("MATNR"));
        System.out.print(" OAID : " + etOaid.getString("OAID"));
        System.out.println(" CONFX : " + etOaid.getString("CONFX"));
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    其它

    rfc函数编辑

    如图,RFC函数包括: 
    * 导入-输入参数(普通参数,结构) 
    * 导出-输出参数(普通参数,结构) 
    * 表-不区分导入导出,同一个表可作为导入表,也可作为导出表,甚至可以同时作为导入导出表

  • 相关阅读:
    Qt之JSON生成与解析
    Qt的QLineEdit显示密码
    Ubuntu14.04 64位运行32位程序
    Xcode 7在支持ipad的设备中需要支持分屏!
    「模板」平衡树
    [NOI2016]区间 题解(决策单调性+线段树优化)
    [NOIP模拟测试12]题解
    [笔记乱写]0/1分数规划
    [NOIP模拟测试11] 题解
    [SCOI2014]方伯伯的玉米田 题解(树状数组优化dp)
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/13681293.html
Copyright © 2011-2022 走看看