Java代码方式实现SAP连接
在开始之前需要导入如下的三个文件:
在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;
}
这次的内容借鉴了如下链接的文章:
(一)通过JAVA连接SAP调用接口 (sapjco3.jar在Windows和MacOS上的配置)
post SAP-Garson
原文链接:https://blog.csdn.net/weixin_42365313/article/details/120986403文章来自于网络,如果侵犯了您的权益,请联系站长删除!