java jco sap 重连_Java连接SAP,使用SAPJCO3.jar
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相关推荐
- java获取达梦数据库_Java连接达梦数据库驱动dm_jdbc
[实例简介] Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm ...
- java对Oracle数据库查询_java 连接Oracle数据库 查询
java 连接Oracle数据库 查询 (2014-03-03 16:07:15) 标签: it 在ADF要先引入jar包 Oracle JDBC ;不然加载驱动不会成功. public static ...
- java mongodb怎删改查_Java连接MongoDB进行增删改查
1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.bea ...
- java插入数据库字符串拼接_java连接mysql数据库实现单条插入和批量插入
本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 p ...
- java链接mysql原始方法_java连接mysql数据库的方法
看了一阵 spring 框架,不怎么好懂,最近脑子也有点不够用,于是乎来点简单的,用java连接数据库玩玩,顺便回顾一下数据库的增删改查~ 使用的是 eclipse .创建了个项目,然后网上找了篇教程 ...
- java文件移动重命名_Java重命名文件和移动文件
Java重命名文件或移动文件是一种常见的IO操作.可以使用File.renameTo(File dest)方法进行重命名文件和移动文件操作. 1. Java重命名文件 如果文件重命名成功,则文件ren ...
- java mysql插入数据乱码_java连接mysql插入数据出现中文乱码
java连接了mysql数据库后,程序行向数据库中插入信息,代码如下: dbhelper boringdb = new dbhelper(); boringdb.connSQL(); String i ...
- java链接mysql出问题_java连接MySQL出现问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLNon ...
- java lock可重入_Java源码解析之可重入锁ReentrantLock
本文基于jdk1.8进行分析. ReentrantLock是一个可重入锁,在ConcurrentHashMap中使用了ReentrantLock. 首先看一下源码中对ReentrantLock的介绍. ...
- java查询数据库的方式_Java连接各种数据库方式速查表
1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...
最新文章
- MQ 消息中间件梳理
- qt文件选择控件_Qt编写的项目作品2-控件属性设计器(组态)
- php 连接oracle插入多张图片的方法
- zabbix api python使用
- 鸿蒙os 2.0跑分,预装鸿蒙 OS 2.0!华为 MatePad Pro2 跑分曝光:麒麟 9000、8GB 内存
- mybatis 原理_了解Mybatis的工作原理吗
- [BZOJ4897][Thu Summer Camp2016]成绩单
- load,initialize方法
- 【渝粤教育】国家开放大学2018年春季 0195-22T机械设计基础 参考试题
- 图像的常规边缘检测(梯度算子、Roberts算子和Sobel算子)(纯C++)
- android里图标大小设置在哪里,Android TextView设置图标,调整图标大小
- linux 路由配置工具下载,Linux/Openwrt路由安装配置UPNP服务提高迅雷下载速度
- Spring Cloud Ribbon
- 计算机不能上网的故障和解决办法,电脑无法上网的原因分析及解决办法
- Ant Design Pro从零到一(页面创建)
- 一文读懂 Java 反射机制那些事
- 查看电脑电池损耗状况
- java uuid去掉横线_UUID去横杠-的正确方式
- 【计算机毕业设计】Java ssm高校英语四六级报名系统
- 注意2022年软考网络规划设计师考试新版大纲和教程已出炉
热门文章
- scv文件单元格内存在换行符
- 【生信分析】clusterProfiler: universal enrichment tool for functional and comparative study(2)
- mintui MessageBox用法
- 泛泰Bin文件格式解析及解压出IMG方法
- 计算机视觉算法 面试必备知识点(2022)
- 汽车智能电气技术分析
- mysql中文版 win7_MySQL数据库下载64位下载-MySQL数据库64位【支持win7/win10】8.0.18 官方中文最新版-东坡下载...
- 系统性总结了 Pandas 所有知识点
- 超全Inventor 3d模型素材网站整理
- Oracle数据库数据恢复方法