博客参考: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接口相关推荐

  1. SpringBoot项目使用JCO实现调用SAP接口实例

    一.JCO接口介绍 JCO采用的是中间式接口,即外部系统将SAP系统所需的信息生成中间数据表,SAP系统直接读取中间文件或将中间表中的信息写入数据库中,中间式接口是比较常用的一种方式,这种方式外部系统 ...

  2. JAVA调用SAP接口地址_Java以webservice方式调用SAP接口传输数据

    Java以webservice方式调用SAP接口传输数据,在SAP中生成 会计凭证/冲销会计凭证 1.生成会计凭证(已完成) 2.冲销会计凭证(以下教程截图以该接口为例) Java调用sap的webs ...

  3. sapjco3调用sap接口

    一.环境 准备环境,本文用的是springboot项目,需要sapjco3.jar和sapjco3.dll文件,sqpjco3.dll文件需要放在system32文件夹下,sapjco3.jar因为m ...

  4. java使用axis2调用webservice接口实例

    说明:我目前的项目环境是struts2+spring+mybatis+oracle,以下代码是java使用axis2调用webservice接口实例. import javax.xml.namespa ...

  5. JAVA使用HttpClient调用webservice接口

    JAVA使用HttpClient调用webservice接口 关于HttpClient用法参考: HttpClient-4.5.2官方教程完整翻译 官方教程原文链接 HttpClient下载地址: 链 ...

  6. C#如何连接SAP调用SAP接口函数

    在项目中我们经常会遇到SAP与其他应用系统对接的情况,如OA对接SAP的FI.HR模块,生产系统对接SAP的MM模块等等.这里和大家介绍下C#如果调用SAP接口,从而调用SAP接口函数. 下面先贴出代 ...

  7. java使用jco连接sap调用rfc函数,环境配置+代码

    Windows环境配置 1.将sapjco3.jar引入 2.配置sapjco3.dll文件 32位系统:将sapjco3.dll放到C:\Windows\System32下  或者放到jdk/bin ...

  8. Java使用Jco连接sap详解

    SAP的R/3系统与Java平台一样有着许多类似的技术理念,以及同样广泛的企业级用户,但是它们完全是两个不同的世界.当用户面临流程 或者数据整合方面的需求的时候,就迫切需要一种高效的方式,在R/3系统 ...

  9. SpringBoot调用SAP接口(搭建部署)

    一.项目搭建 创建项目,添加依赖 引入maven依赖 编写工具类 测试是否成功 注意事项 二.打包部署 一.项目搭建 1.创建Maven项目,在src/main/resource目录下创建lib文件夹 ...

最新文章

  1. 安卓:安卓工程构建及第一个安卓程序运行
  2. 1130:找第一个只出现一次的字符
  3. Linux学习笔记-配置SAMBA服务
  4. php curl https_PHP FFI:一种全新的PHP扩展方式
  5. 车轮轴承行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  6. jenkins修改pom文件_jenkins参数化配置,pom.xml配置
  7. POJ 1088解题报告
  8. Android Studio运行程序出现Session ‘app’: Error Launching activity 解决办法
  9. 辽宁移动计算机类专业笔试题库,2019辽宁中国移动笔试行测模拟题(八)
  10. 读《大数据思维与决策》的读后感
  11. java计算机毕业设计ssm宠物店管理系统element vue前后端分离
  12. Linux命令:查看服务器IP地址
  13. python400集 高淇主讲pdf_高淇python400集全套视频教程 相关实例(示例源码)下载 - 好例子网...
  14. java 计算器 正负号转换_【计算器正负号】一个小程序,有点问题
  15. git-remote-https.exe-无法找到入口
  16. 九大遥感目标检测数据集(附下载链接)
  17. Queue队列操作-peek、pool、take等区别
  18. 2021年HECTF部分Writeup
  19. 源自神话的写作要义之英雄
  20. 4、乐趣国学—“满招损,谦受益。”

热门文章

  1. redis 什么是冷数据_redis一般存储什么类型数据
  2. wp load.php下载,wordpress网站打开首页出现下载页面解决方法
  3. redis过期推送操作及问题汇总
  4. Android实现图片点击放大
  5. 原百度员工去世 TechWeb报道引家属要求删帖
  6. GVINS代码求GNSS 的精度因子(GDOP、PDOP、HDOP、VDOP)
  7. Windows配置bat脚本后台运行
  8. Palindrome字符回文 (C语言)
  9. 如何解决高并发的问题
  10. ChatGPT超越经典,重新定义《青花瓷》的永恒之美!