Java代码方式实现SAP连接

54 篇文章 0 订阅

在开始之前需要导入如下的三个文件:

在Java文件夹下新建一个lib文件夹,把下面的JCO3文件添加到lib文件后右键lib文件。选择Add to library即可。

然后就可以开始写代码。

我在整个开始的函数段定义了自己需要的连接字段:

private static String ASHOST = "";
    //sap系统编号
    private static String SYSNR = "";
    //sap集团
    private static String CLIENT = "";
    //sap用户名与密码
    private static String USER = "";
    private static String PASSWD = "";
    //语言
    private static String LANG = "";
    //最大连接数
    private static String POOL_CAPACITY = "";
    //最大链接线程
    private static String PEAK_LIMIT = "";
    //SAP ROUTER
    private static String SAPROUTER = "";

    private final static String ABAP_AS_POOLED = "";

这是关于SAP初始链接的函数段。

/**
     * 初始化SAP连接
     */
    private static void initProperties() {
        Properties connectProperties = new Properties();
        // SAP服务器
        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, ASHOST);
        // SAP系统编号
        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,SYSNR);
        // SAP集团
        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT,CLIENT);
        // SAP用户名
        connectProperties.setProperty(DestinationDataProvider.JCO_USER, USER);
        // SAP密码
        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, PASSWD);
        // SAP登录语言
        connectProperties.setProperty(DestinationDataProvider.JCO_LANG, LANG);
        // 最大连接数
        connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY,POOL_CAPACITY);
        // 最大连接线程
        connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT,PEAK_LIMIT);
        // SAP ROUTER
        connectProperties.setProperty(DestinationDataProvider.JCO_SAPROUTER, SAPROUTER);

        createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
    }

createDataFile函数:

    /**
     * 创建SAP接口属性文件。
     * @param name  ABAP管道名称
     * @param suffix    属性文件后缀
     * @param properties    属性文件内容
     */
    private static void createDataFile(String name, String suffix, Properties properties){
        File cfg = new File(name+"."+suffix);
        if(cfg.exists()){
            cfg.deleteOnExit();
        }
        try{
            FileOutputStream fos = new FileOutputStream(cfg, false);
            properties.store(fos, "for tests only !");
            fos.close();
        }catch (Exception e){
            System.out.println("Create Data file fault, error msg: " + e.toString());
            throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);
        }
    }

SAP链接:

/**
     * 获取SAP连接
     * @return  SAP连接对象
     */
    public static JCoDestination connect(){
        System.out.println("开始尝试链接!");
        //JCoDestination代表后台SAP系统,程序员不用关心与SAP的连接,jco3.0运行时环境负责管理连接和释放连接。
        JCoDestination destination = null;
        initProperties();
        try {
            destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);
            //调用ping()方法测试SAP系统的连接
            destination.ping();
            System.out.println("成功建立和sap的连接!");
        } catch (JCoException e) {
            System.out.println("链接失败,错误日志: " + e.toString());
        }
        return destination;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值