1、在java 工程中引入sapjco3.jar  sapjco3.dll 包

2、创建链接池

package test;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;

import com.sap.conn.jco.ext.DestinationDataProvider;

public class ConnectPooled {
     static String ABAP_AS_POOLED = "ConnectionPool";    //配置文件名
        static {

Properties connectProperties = new Properties();
            connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "*.*.*.*"); // IP
            connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00"); // 系统编号
            connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800"); // 客户端编号
            connectProperties.setProperty(DestinationDataProvider.JCO_USER, "SCM_USER"); // 用户名
            connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "*"); // 密码
            connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 语言// *********连接池方式与直接不同的是设置了下面两个连接属性*******
            // JCO_PEAK_LIMIT - 同时可创建的最大活动连接数,0表示无限制,默认为JCO_POOL_CAPACITY的值
            // 如果小于JCO_POOL_CAPACITY的值,则自动设置为该值,在没有设置JCO_POOL_CAPACITY的情况下为0
            connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");
            // JCO_POOL_CAPACITY - 空闲连接数,如果为0,则没有连接池效果,默认为1
            connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "2");
            createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
        }

/* 创建连接池的配置文件 */
        static void createDataFile(String name, String suffix, Properties properties) {
            File cfg = new File(name + "." + suffix);
            if (!cfg.exists()) {
                try {
                    FileOutputStream fos = new FileOutputStream(cfg, false);
                    properties.store(fos, "for tests only !");
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

}

3、调用SAP具体方法

package test;

import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoRepository;
import com.sap.conn.jco.JCoTable;

public class ConnectPooledTest {

public static void main(String[] args) throws JCoException {
        String bapiFunctionName = "ZSP_CP_SKU_BOX";
        JCoDestination destination = JCoDestinationManager.getDestination(ConnectPooled.ABAP_AS_POOLED); 
        JCoRepository repository = destination.getRepository();                 //JCoFunction是一个接口,代表SAP系统的函数库
        JCoFunction function = repository.getFunction(bapiFunctionName);     // 从这个函数模板获得该SAP函数的对象        
        JCoParameterList input = function.getImportParameterList();         // 获得函数的import参数列表
        input.setValue("LV_MATNR", "979329010312");
        input.setValue("LV_STYPE", "QUERYNOAUTH");        
        function.execute(destination);
        JCoTable etResult= function.getTableParameterList().getTable("IT_SKU");         // 获得Export变量列表。
        if(etResult!=null){
            for(int i=0;i<etResult.getNumRows();i++){
                etResult.setRow(i);
                System.out.println("SKU:"+etResult.getString("MATNR"));
                System.out.println("箱规:"+etResult.getString("ZMATEBOX"));
                System.out.println("装箱数:"+etResult.getString("ZMATENUM"));
                getBox(etResult.getString("ZMATEBOX"));
            }
        }

}
    public static void getBox(String boxtype) throws JCoException{
        String bapiFunctionName = "ZSP_BASIC_BOX ";
        JCoDestination destination = JCoDestinationManager.getDestination(ConnectPooled.ABAP_AS_POOLED); 
        JCoRepository repository = destination.getRepository();                 //JCoFunction是一个接口,代表SAP系统的函数库
        JCoFunction function = repository.getFunction(bapiFunctionName);     // 从这个函数模板获得该SAP函数的对象            
        function.execute(destination);
        JCoTable etResult= function.getTableParameterList().getTable("IT_BOX");         // 获得Export变量列表。
        if(etResult!=null){
            for(int i=0;i<etResult.getNumRows();i++){
                etResult.setRow(i);
                System.out.println("箱规:"+etResult.getString("ZMATEBOX"));
                System.out.println("长:"+etResult.getDouble("LAENG"));
            //    System.out.println("装箱数:"+etResult.getString("ZMATENUM"));
            }
        }
    }

}

4、在windows下可以将sapjco3.dll 包放到 C:\Windows\System32

5、在Linux下可以将sapjco3.so 包放到jdk 安装目录下/jdk1.8.0_251/jre/lib/amd64/server

修改环境变量

vim /etc/profile   输入i  添加

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/amd64/server

按Esc键 输入:wq  保存

刷新环境变量    source etc/profile

JAVA 连接SAP Jco3相关推荐

  1. Java 连接SAP Hana数据库

    最近项目有用到hana数据库的,记录一下相关资料. hana连接可参考官网:Hana JDBC创建 整个步骤如下: 项目中增加ngdbc.jar,可以从该博客中链接下载com.sap.db.jdbc. ...

  2. Java连接sap无明显报错信息,Kettle连接SAP报错问题

    请问下你是怎么连接到sap的,我现在连接报错 Unable to connect to the SAP ERP server: Cannot get SAP function Connect to S ...

  3. java jco连接sap帐号权限设定,Java连接SAP的JCO调用RFC配置

    第一步:下载librfc32.dll和sapjcorfc.dll文件,版本分别为6405.5.132.5092 - 6400.132.12.49905 第二步:将下载的两个DLL文件放在的window ...

  4. JAVA使用JCo连接SAP介绍

    SAP Java Connector (SAP JCo) 是JAVA与SAP相互通信的中间件组建.该组建支持双向通讯模式(inbound calls 和 outbound calls ). JCo支持 ...

  5. java连接 mdx,olap4j连接sap hana的xmla服务mdx查询报错【已解决】

    olap4j连接sap hana的xmla服务mdx查询报错[已解决] 各位大神,求指教~~我在java中通过olap4j连接上了sap hana的xmla xs 服务,通过mdx查询hana中的数据 ...

  6. JCO连接SAP例子

    JCO连接SAP例子 SAP JCo(SAP Java Connector,SAP Java连接器)是SAP组件和Java应用程序之间的中间件和接口实现机制. JCo基于JNI(Java Native ...

  7. pajek软件使用方法_使用Jco远程连接SAP软件系统方法

    作者:JongWill声明:本文章仅用于SAP软件的应用与学习,不代表SAP公司.(注:文中所示截图来源SAP软件,相应著作权归SAP所有.)SAP公司的ERP系统是一套成熟的套装软件,它是博大精深的 ...

  8. JAVA与SAP数据交互的方式总结

    JAVA与SAP数据交互的方式总结 RFC方式:Java程序直接通过RFC访问SAP的对象(或称函数,可能叫法不对)     SAP提供了BAPI(Business Application Progr ...

  9. 帆软数据决策平台连接SAP RFC实例

    一.介绍 由于SAP ABAP开发出来的报表很单一,形式很有限,而且调整报表格式和形式都显得特别的鸡肋,所以现在将SAP系统通过RFC接口模式接入到帆软报表数据决策平台下展示.本文将详细介绍如何将数据 ...

  10. 基于Python驱动的SAP流程自动化(二)-下载安装SAP Scripting Tracker脚本录制工具,编写Python连接SAP

    目录 录制脚本代码 Python连接SAP GUI 录制脚本代码 Scripting Tracker SAP脚本录制工具是 SAP ® GUI 脚本开发工具的替代品,和SAP自带的脚本录制功能一样,都 ...

最新文章

  1. 一文了解卷积神经网络基础,建议收藏
  2. 老李分享:jvm垃圾回收
  3. USB和串口(COM)的区别,以及相互转换
  4. 小型车、中型车、大型车、重型车的区分和定义见下表:
  5. 紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人
  6. public 函数_UE4精品教程 | 渲染编程(C++篇)【第三卷:从仿函数到std::function再到虚幻4Delegate】...
  7. python必背语法_python常用语法合集
  8. 安卓线程同步面试_面试BAT大厂,可少不了这些题目!
  9. 远程桌面/远程登陆中强行登陆(他人退出)与切换回话(登陆后切换到上次别的登陆)3389...
  10. LINUX使用消息队列的代码
  11. 视觉机器学习20讲-MATLAB源码示例(13)-稀疏表示算法
  12. python getchar函数_linux命令行下用getchar()函数捕获按键
  13. PS:给图片添加方格
  14. VRRP主备网关原理
  15. 1977年图灵奖--约翰·巴克斯简介
  16. 干货 | SQL 进阶技巧
  17. 保研论坛app服务器网站,保研通论坛 - 中国最大的保研交流社区
  18. 如何判断DLL是否注册过?
  19. 【杂谈】她养花10年从来没买过花盆,简单几招,废物变盆栽!
  20. 华为项目管理10大模板Excel版(可直接套用_非常实用)

热门文章

  1. 【网络工程师配置篇】华三交换机基本配置大全(文末附下载链接),网络工程师必备手册
  2. matlab样本标准差,关于样本标准差(SD)与样本标准误差(SE)
  3. word中的特殊文本符号
  4. mrpoid模拟器java版_mrpoid2冒泡模拟器下载-mrpoid2模拟器下载3.0安卓版-西西软件下载...
  5. 你肯定遇到过这些电脑使用问题, 此文帮你快速解决一些常见的电脑问题(持续更新中, 建议收藏)
  6. 电子电路设计——multisum中快捷设置555定时器
  7. 从Visual SourceSafe (VSS)服务器下载文件(C#)
  8. 网管员常用工具(二)
  9. xp怎么设置计算机共享的打印机共享的打印机共享,XP设置打印机局域网共享的解决方法步骤...
  10. 微软高性能缓存AppFabric (一) 安装