1.[代码][Java]代码

package intf;

import java.io.File;

import java.io.FileOutputStream;

import java.util.Properties;

import org.apache.log4j.Level;

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.JCoTable;

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

/**

* 连接SAP

*/

public class SapRFC {

private JCoFunction function;

// 输入参数列表

private JCoParameterList inPara = null;

// 输出参数列表

private JCoParameterList outPara = null;

private JCoParameterList tabPara = null;

private String functionName;

private static String ABAP_AS = "ABAP_AS_WITHOUT_POOL";

private JCoDestination destination;

private SapRFC(String portId) throws SAPException {

connect(); // 连接SAP

}

// 调用SapRFC

public static SapRFC getInstance(String portId) throws SAPException, JCoException {

//RFC接口调用开始 ==========

SapRFC common = new SapRFC(portId);

return common;

}

// 连接 SAP

public void connect() throws SAPException {

// set properties参数,

String clientName = "100";

String userid = "sap";

String password = "sap123";

String language = "ZH";

String host = "192.168.1.1";

String system = "01";

// 设置SAP的连接参数

Properties connectProperties = new Properties();

connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, host);

connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, system);

connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, clientName);

connectProperties.setProperty(DestinationDataProvider.JCO_USER, userid);

connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, password);

connectProperties.setProperty(DestinationDataProvider.JCO_LANG, language);

try {

// 创建DestinationDataProvider,

createDataFile(ABAP_AS, "jcoDestination", connectProperties);

destination = JCoDestinationManager.getDestination(ABAP_AS);

} catch (JCoException ex) {

throw new SAPException("SAP连接失败" + ex.getMessage());

}

}

/*

* 设置参数 name - the name of the field to set value - the value to set for the

* field

*/

public SapRFC addParameter(String name, String value) {

inPara.setValue(name, value);

return this;

}

public SapRFC addParameter(int name, String value) {

inPara.setValue(name, value);

return this;

}

// 执行方法

public SapRFC prepare(String functionName) throws SAPException {

this.functionName = functionName;

try {

// 取得要执行的方法

function = destination.getRepository().getFunction(functionName);

} catch (JCoException e) {

throw new SAPException("SAP获取方法" + functionName + "失败:" + e.getMessage());

}

if (function == null) {

throw new SAPException(functionName + "方法不存在");

}

// 取得参数列表

inPara = function.getImportParameterList();

outPara = function.getExportParameterList();

tabPara = function.getTableParameterList();

logger.info(functionName + "方法调用开始");

return this;

}

// 执行方法

public JCoParameterList execCall() throws JCoException {

// Execute

function.execute(destination);

logger.info(functionName + "方法调用结束");

return outPara;

}

// 取得返回结果

public JCoTable getResultTable(String tableName) {

return tabPara.getTable(tableName);

}

// //取得参数列表

// public JCoTable getParamTable(String tableName) {

// return tabPara.getTable(tableName);

// }

// SAP传入参数为列表

public JCoTable getParamTableList(String tableName) {

return function.getTableParameterList().getTable(tableName);

}

// DisConnect

public void close() {

// if (client != null)

// client.disconnect();

}

// Creates a connection configuration file based on parameters given above

static void createDataFile(String name, String suffix, Properties properties) throws SAPException {

File cfg = new File(name + "." + suffix);

// if (!cfg.exists()) {

try {

FileOutputStream fos = new FileOutputStream(cfg, false);

properties.store(fos, "Destination - ABAP_AS_WITHOUT_POOL");

fos.close();

} catch (Exception e) {

throw new SAPException("不能创建SAP连接需要的Destination文件" + cfg.getName(), e);

}

//}

}

public String convertNull(String str){

if (str == null)

return "";

return str;

}

}

java jco sap 重连_Java连接SAP,使用SAPJCO3.jar相关推荐

  1. java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc

    [实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...

  2. java对Oracle数据库查询_java 连接Oracle数据库 查询

    java 连接Oracle数据库 查询 (2014-03-03 16:07:15) 标签: it 在ADF要先引入jar包 Oracle JDBC ;不然加载驱动不会成功. public static ...

  3. java mongodb怎删改查_Java连接MongoDB进行增删改查

    1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.bea ...

  4. java插入数据库字符串拼接_java连接mysql数据库实现单条插入和批量插入

    本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 p ...

  5. java链接mysql原始方法_java连接mysql数据库的方法

    看了一阵 spring 框架,不怎么好懂,最近脑子也有点不够用,于是乎来点简单的,用java连接数据库玩玩,顺便回顾一下数据库的增删改查~ 使用的是 eclipse .创建了个项目,然后网上找了篇教程 ...

  6. java文件移动重命名_Java重命名文件和移动文件

    Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...

  7. java mysql插入数据乱码_java连接mysql插入数据出现中文乱码

    java连接了mysql数据库后,程序行向数据库中插入信息,代码如下: dbhelper boringdb = new dbhelper(); boringdb.connSQL(); String i ...

  8. java链接mysql出问题_java连接MySQL出现问题

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNon ...

  9. java lock可重入_Java源码解析之可重入锁ReentrantLock

    本文基于jdk1.8进行分析. ReentrantLock是一个可重入锁,在ConcurrentHashMap中使用了ReentrantLock. 首先看一下源码中对ReentrantLock的介绍. ...

  10. java查询数据库的方式_Java连接各种数据库方式速查表

    1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...

最新文章

  1. MQ 消息中间件梳理
  2. qt文件选择控件_Qt编写的项目作品2-控件属性设计器(组态)
  3. php 连接oracle插入多张图片的方法
  4. zabbix api python使用
  5. 鸿蒙os 2.0跑分,预装鸿蒙 OS 2.0!华为 MatePad Pro2 跑分曝光:麒麟 9000、8GB 内存
  6. mybatis 原理_了解Mybatis的工作原理吗
  7. [BZOJ4897][Thu Summer Camp2016]成绩单
  8. load,initialize方法
  9. 【渝粤教育】国家开放大学2018年春季 0195-22T机械设计基础 参考试题
  10. 图像的常规边缘检测(梯度算子、Roberts算子和Sobel算子)(纯C++)
  11. android里图标大小设置在哪里,Android TextView设置图标,调整图标大小
  12. linux 路由配置工具下载,Linux/Openwrt路由安装配置UPNP服务提高迅雷下载速度
  13. Spring Cloud Ribbon
  14. 计算机不能上网的故障和解决办法,电脑无法上网的原因分析及解决办法
  15. Ant Design Pro从零到一(页面创建)
  16. 一文读懂 Java 反射机制那些事
  17. 查看电脑电池损耗状况
  18. java uuid去掉横线_UUID去横杠-的正确方式
  19. 【计算机毕业设计】Java ssm高校英语四六级报名系统
  20. 注意2022年软考网络规划设计师考试新版大纲和教程已出炉

热门文章

  1. scv文件单元格内存在换行符
  2. 【生信分析】clusterProfiler: universal enrichment tool for functional and comparative study(2)
  3. mintui MessageBox用法
  4. 泛泰Bin文件格式解析及解压出IMG方法
  5. 计算机视觉算法 面试必备知识点(2022)
  6. 汽车智能电气技术分析
  7. mysql中文版 win7_MySQL数据库下载64位下载-MySQL数据库64位【支持win7/win10】8.0.18 官方中文最新版-东坡下载...
  8. 系统性总结了 Pandas 所有知识点
  9. 超全Inventor 3d模型素材网站整理
  10. Oracle数据库数据恢复方法