java使用JCO调用SAP接口
博客参考:http://blog.csdn.net/jay_1989/article/details/51821069 (可以说我是基本照抄,所以本篇博客为转载)
其实在写这篇博客之前,已经有很多前辈写过类似的技术博客,
所以我这篇博客算是对我自己技术的一个记录。
首先。最基本的准备你需要有一下两个小东西(根据自己电脑装的jdk去下载)
- sapjco3.jar
- sapjco3.dll
sapjco3.dll,你可以将他放在WEB-INF\lib目录下。也可以将相对应位数的sapjco3.dll文件拷贝至system32文件下。
博主是将sapjco3.dll文件放在WEB-INF\lib
多的不说了,上代码
SAPConn.java即JAVA与sap连接代码
/*** 与SAP连接配置* @author changcheng*/
public class SAPConn {private static Logger log = Logger.getLogger(SAPConn.class);private static final String ABAP_AS_POOLED = "ECD";//连接池名static{Properties connectProperties = new Properties();connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "***.***.***.***"); //服务器开发机connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "*"); //系统编号 connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "*"); //SAP集团 开发机connectProperties.setProperty(DestinationDataProvider.JCO_USER, "x"); //账户connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "*"); //密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); //登录语言connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "30"); //最大连接数 connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "100"); //最大连接线程createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);}/*** 创建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();}/** Properties类是集合和IO技术结合的成果.可以把数据以Map集合的形式存入,也可以通过IO流技术读取或者输出. * 该类的store方法,是一个输出方法. store(OutputStream out, String comments) * 以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。*/try{FileOutputStream fos = new FileOutputStream(cfg, false);properties.store(fos, "for tests only !");fos.close();}catch (Exception e){log.error("Create Data file fault, error msg: " + e.toString());throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);}}/*** 获取SAP连接* @return SAP连接对象*/public static JCoDestination connect(){JCoDestination destination =null;try {destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);//获取SAP连接} catch (JCoException e) {log.error("Connect SAP fault, error msg: " + e.toString());}return destination;}
}
SAPtest。连接sap获取到具体sap接口
public class SAPtest {public static void main(String[] args) { try {//连接SAP,获取一个连接对象JCoDestination lj = SAPConn.connect();//获取到SAP的函数JCoFunction function = lj.getRepository().getFunction("ZEPIC_ACCT_DOC_POST");//将该函数的结构打印出来System.out.println(SAPUtil.formatXML(function.toXML()));//该入参没有放在结构表或者表格中,直接使用getImportParameterList方法JCoParameterList imP = function.getImportParameterList();//利用setValue将入参参数传入imP.setValue("key", "value");//入参结构表时,使用JCoStructure声明对象//IS_ORDER表示该结构的名称JCoStructure stu = function.getImportParameterList().getStructure("IS_ORDER");stu.setValue("key", "value");stu.setValue("key", "value");stu.setValue("key", "value");stu.setValue("key", "value");stu.setValue("key", "value");//入参表格 表格是具有多行数据的JCoTable jCoTable = function.getTableParameterList().getTable("IT_ITEMS"); jCoTable.appendRow();//增加一行 jCoTable.setValue("key", "value");//执行将数据传给sapfunction.execute(lj);//既然是传给,那sap也会给你返回信息,首先你的看清楚返回的时表格还是结构//返回的是表格//获取到该表格的名称JCoTable jCoTable1 = function.getTableParameterList().getTable("ET_TTCLEAR");for (int i = 0; i < jCoTable.getNumRows(); i++) {//定位到当前行jCoTable.setRow(i);//然后将字段数据一一拿出String str = jCoTable.getString("字段名称");//为了方便} //返回的时结构//获取到该结构的名称JCoStructure jCoStructure = function.getExportParameterList().getStructure("ES_RETURN");//然后将数据拿出String str1 = jCoStructure.getString("字段名称");String str2 = jCoStructure.getString("字段名称");/*** 接下来就时用SAP返回给你的数据处理自己的业务了*/} catch (Exception e) {e.printStackTrace();}}}
java使用JCO调用SAP接口相关推荐
- SpringBoot项目使用JCO实现调用SAP接口实例
一.JCO接口介绍 JCO采用的是中间式接口,即外部系统将SAP系统所需的信息生成中间数据表,SAP系统直接读取中间文件或将中间表中的信息写入数据库中,中间式接口是比较常用的一种方式,这种方式外部系统 ...
- JAVA调用SAP接口地址_Java以webservice方式调用SAP接口传输数据
Java以webservice方式调用SAP接口传输数据,在SAP中生成 会计凭证/冲销会计凭证 1.生成会计凭证(已完成) 2.冲销会计凭证(以下教程截图以该接口为例) Java调用sap的webs ...
- sapjco3调用sap接口
一.环境 准备环境,本文用的是springboot项目,需要sapjco3.jar和sapjco3.dll文件,sqpjco3.dll文件需要放在system32文件夹下,sapjco3.jar因为m ...
- java使用axis2调用webservice接口实例
说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...
- JAVA使用HttpClient调用webservice接口
JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链 ...
- C#如何连接SAP调用SAP接口函数
在项目中我们经常会遇到SAP与其他应用系统对接的情况,如OA对接SAP的FI.HR模块,生产系统对接SAP的MM模块等等.这里和大家介绍下C#如果调用SAP接口,从而调用SAP接口函数. 下面先贴出代 ...
- java使用jco连接sap调用rfc函数,环境配置+代码
Windows环境配置 1.将sapjco3.jar引入 2.配置sapjco3.dll文件 32位系统:将sapjco3.dll放到C:\Windows\System32下 或者放到jdk/bin ...
- Java使用Jco连接sap详解
SAP的R/3系统与Java平台一样有着许多类似的技术理念,以及同样广泛的企业级用户,但是它们完全是两个不同的世界.当用户面临流程 或者数据整合方面的需求的时候,就迫切需要一种高效的方式,在R/3系统 ...
- SpringBoot调用SAP接口(搭建部署)
一.项目搭建 创建项目,添加依赖 引入maven依赖 编写工具类 测试是否成功 注意事项 二.打包部署 一.项目搭建 1.创建Maven项目,在src/main/resource目录下创建lib文件夹 ...
最新文章
- 安卓:安卓工程构建及第一个安卓程序运行
- 1130:找第一个只出现一次的字符
- Linux学习笔记-配置SAMBA服务
- php curl https_PHP FFI:一种全新的PHP扩展方式
- 车轮轴承行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
- jenkins修改pom文件_jenkins参数化配置,pom.xml配置
- POJ 1088解题报告
- Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
- 辽宁移动计算机类专业笔试题库,2019辽宁中国移动笔试行测模拟题(八)
- 读《大数据思维与决策》的读后感
- java计算机毕业设计ssm宠物店管理系统element vue前后端分离
- Linux命令:查看服务器IP地址
- python400集 高淇主讲pdf_高淇python400集全套视频教程 相关实例(示例源码)下载 - 好例子网...
- java 计算器 正负号转换_【计算器正负号】一个小程序,有点问题
- git-remote-https.exe-无法找到入口
- 九大遥感目标检测数据集(附下载链接)
- Queue队列操作-peek、pool、take等区别
- 2021年HECTF部分Writeup
- 源自神话的写作要义之英雄
- 4、乐趣国学—“满招损,谦受益。”