JAVA 连接SAP Jco3
1、在java 工程中引入sapjco3.jar sapjco3.dll 包
2、创建链接池
package test;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import com.sap.conn.jco.ext.DestinationDataProvider;
public class ConnectPooled {
static String ABAP_AS_POOLED = "ConnectionPool"; //配置文件名
static {
Properties connectProperties = new Properties();
connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "*.*.*.*"); // IP
connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "00"); // 系统编号
connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800"); // 客户端编号
connectProperties.setProperty(DestinationDataProvider.JCO_USER, "SCM_USER"); // 用户名
connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "*"); // 密码
connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 语言// *********连接池方式与直接不同的是设置了下面两个连接属性*******
// JCO_PEAK_LIMIT - 同时可创建的最大活动连接数,0表示无限制,默认为JCO_POOL_CAPACITY的值
// 如果小于JCO_POOL_CAPACITY的值,则自动设置为该值,在没有设置JCO_POOL_CAPACITY的情况下为0
connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10");
// JCO_POOL_CAPACITY - 空闲连接数,如果为0,则没有连接池效果,默认为1
connectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "2");
createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);
}
/* 创建连接池的配置文件 */
static void createDataFile(String name, String suffix, Properties properties) {
File cfg = new File(name + "." + suffix);
if (!cfg.exists()) {
try {
FileOutputStream fos = new FileOutputStream(cfg, false);
properties.store(fos, "for tests only !");
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
3、调用SAP具体方法
package test;
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.JCoRepository;
import com.sap.conn.jco.JCoTable;
public class ConnectPooledTest {
public static void main(String[] args) throws JCoException {
String bapiFunctionName = "ZSP_CP_SKU_BOX";
JCoDestination destination = JCoDestinationManager.getDestination(ConnectPooled.ABAP_AS_POOLED);
JCoRepository repository = destination.getRepository(); //JCoFunction是一个接口,代表SAP系统的函数库
JCoFunction function = repository.getFunction(bapiFunctionName); // 从这个函数模板获得该SAP函数的对象
JCoParameterList input = function.getImportParameterList(); // 获得函数的import参数列表
input.setValue("LV_MATNR", "979329010312");
input.setValue("LV_STYPE", "QUERYNOAUTH");
function.execute(destination);
JCoTable etResult= function.getTableParameterList().getTable("IT_SKU"); // 获得Export变量列表。
if(etResult!=null){
for(int i=0;i<etResult.getNumRows();i++){
etResult.setRow(i);
System.out.println("SKU:"+etResult.getString("MATNR"));
System.out.println("箱规:"+etResult.getString("ZMATEBOX"));
System.out.println("装箱数:"+etResult.getString("ZMATENUM"));
getBox(etResult.getString("ZMATEBOX"));
}
}
}
public static void getBox(String boxtype) throws JCoException{
String bapiFunctionName = "ZSP_BASIC_BOX ";
JCoDestination destination = JCoDestinationManager.getDestination(ConnectPooled.ABAP_AS_POOLED);
JCoRepository repository = destination.getRepository(); //JCoFunction是一个接口,代表SAP系统的函数库
JCoFunction function = repository.getFunction(bapiFunctionName); // 从这个函数模板获得该SAP函数的对象
function.execute(destination);
JCoTable etResult= function.getTableParameterList().getTable("IT_BOX"); // 获得Export变量列表。
if(etResult!=null){
for(int i=0;i<etResult.getNumRows();i++){
etResult.setRow(i);
System.out.println("箱规:"+etResult.getString("ZMATEBOX"));
System.out.println("长:"+etResult.getDouble("LAENG"));
// System.out.println("装箱数:"+etResult.getString("ZMATENUM"));
}
}
}
}
4、在windows下可以将sapjco3.dll 包放到 C:\Windows\System32
5、在Linux下可以将sapjco3.so 包放到jdk 安装目录下/jdk1.8.0_251/jre/lib/amd64/server
修改环境变量
vim /etc/profile 输入i 添加
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${JAVA_HOME}/jre/lib/amd64/server
按Esc键 输入:wq 保存
刷新环境变量 source etc/profile
JAVA 连接SAP Jco3相关推荐
- Java 连接SAP Hana数据库
最近项目有用到hana数据库的,记录一下相关资料. hana连接可参考官网:Hana JDBC创建 整个步骤如下: 项目中增加ngdbc.jar,可以从该博客中链接下载com.sap.db.jdbc. ...
- Java连接sap无明显报错信息,Kettle连接SAP报错问题
请问下你是怎么连接到sap的,我现在连接报错 Unable to connect to the SAP ERP server: Cannot get SAP function Connect to S ...
- java jco连接sap帐号权限设定,Java连接SAP的JCO调用RFC配置
第一步:下载librfc32.dll和sapjcorfc.dll文件,版本分别为6405.5.132.5092 - 6400.132.12.49905 第二步:将下载的两个DLL文件放在的window ...
- JAVA使用JCo连接SAP介绍
SAP Java Connector (SAP JCo) 是JAVA与SAP相互通信的中间件组建.该组建支持双向通讯模式(inbound calls 和 outbound calls ). JCo支持 ...
- java连接 mdx,olap4j连接sap hana的xmla服务mdx查询报错【已解决】
olap4j连接sap hana的xmla服务mdx查询报错[已解决] 各位大神,求指教~~我在java中通过olap4j连接上了sap hana的xmla xs 服务,通过mdx查询hana中的数据 ...
- JCO连接SAP例子
JCO连接SAP例子 SAP JCo(SAP Java Connector,SAP Java连接器)是SAP组件和Java应用程序之间的中间件和接口实现机制. JCo基于JNI(Java Native ...
- pajek软件使用方法_使用Jco远程连接SAP软件系统方法
作者:JongWill声明:本文章仅用于SAP软件的应用与学习,不代表SAP公司.(注:文中所示截图来源SAP软件,相应著作权归SAP所有.)SAP公司的ERP系统是一套成熟的套装软件,它是博大精深的 ...
- JAVA与SAP数据交互的方式总结
JAVA与SAP数据交互的方式总结 RFC方式:Java程序直接通过RFC访问SAP的对象(或称函数,可能叫法不对) SAP提供了BAPI(Business Application Progr ...
- 帆软数据决策平台连接SAP RFC实例
一.介绍 由于SAP ABAP开发出来的报表很单一,形式很有限,而且调整报表格式和形式都显得特别的鸡肋,所以现在将SAP系统通过RFC接口模式接入到帆软报表数据决策平台下展示.本文将详细介绍如何将数据 ...
- 基于Python驱动的SAP流程自动化(二)-下载安装SAP Scripting Tracker脚本录制工具,编写Python连接SAP
目录 录制脚本代码 Python连接SAP GUI 录制脚本代码 Scripting Tracker SAP脚本录制工具是 SAP ® GUI 脚本开发工具的替代品,和SAP自带的脚本录制功能一样,都 ...
最新文章
- 一文了解卷积神经网络基础,建议收藏
- 老李分享:jvm垃圾回收
- USB和串口(COM)的区别,以及相互转换
- 小型车、中型车、大型车、重型车的区分和定义见下表:
- 紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人
- public 函数_UE4精品教程 | 渲染编程(C++篇)【第三卷:从仿函数到std::function再到虚幻4Delegate】...
- python必背语法_python常用语法合集
- 安卓线程同步面试_面试BAT大厂,可少不了这些题目!
- 远程桌面/远程登陆中强行登陆(他人退出)与切换回话(登陆后切换到上次别的登陆)3389...
- LINUX使用消息队列的代码
- 视觉机器学习20讲-MATLAB源码示例(13)-稀疏表示算法
- python getchar函数_linux命令行下用getchar()函数捕获按键
- PS:给图片添加方格
- VRRP主备网关原理
- 1977年图灵奖--约翰·巴克斯简介
- 干货 | SQL 进阶技巧
- 保研论坛app服务器网站,保研通论坛 - 中国最大的保研交流社区
- 如何判断DLL是否注册过?
- 【杂谈】她养花10年从来没买过花盆,简单几招,废物变盆栽!
- 华为项目管理10大模板Excel版(可直接套用_非常实用)
热门文章
- 【网络工程师配置篇】华三交换机基本配置大全(文末附下载链接),网络工程师必备手册
- matlab样本标准差,关于样本标准差(SD)与样本标准误差(SE)
- word中的特殊文本符号
- mrpoid模拟器java版_mrpoid2冒泡模拟器下载-mrpoid2模拟器下载3.0安卓版-西西软件下载...
- 你肯定遇到过这些电脑使用问题, 此文帮你快速解决一些常见的电脑问题(持续更新中, 建议收藏)
- 电子电路设计——multisum中快捷设置555定时器
- 从Visual SourceSafe (VSS)服务器下载文件(C#)
- 网管员常用工具(二)
- xp怎么设置计算机共享的打印机共享的打印机共享,XP设置打印机局域网共享的解决方法步骤...
- 微软高性能缓存AppFabric (一) 安装