JCO简介
JCO是Java Connector的简称,它封装了JAVA-enabled RFC,实现了基于RFC的BAPI与JAVA接口。它提供结构化的BAPI调用,目前不支持面向对象的开发。
JCO使用
1)类导入
import com.sap.mw.jco.*;

2)建立R3连接,有两种方法:
a.持久连接

  1. //申明连接
  2. JCO.Client mConnection;
  3. // 初始化连接
  4. mConnection =
  5. JCO.createClient("001", // SAP client
  6. "<userid>", // userid
  7. "****", // password
  8. "EN", // language (null for the default language)
  9. "<hostname>", // application server host name
  10. "00"); // system number
  11. //建立连接
  12. try {
  13. mConnection.connect();
  14. }
  15. catch (Exception ex) {
  16. ex.printStackTrace();
  17. System.exit(1);
  18. }
  19. //关闭连接
  20. mConnection.disconnect();

复制代码

b.连接池方式

  1. static final String POOL_NAME = "Pool";
  2. JCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME);
  3. if (pool == null) {
  4. OrderedProperties logonProperties =
  5. OrderedProperties.load("/logon.properties");
  6. JCO.addClientPool(POOL_NAME, // pool name
  7. 5, // maximum number of connections
  8. logonProperties); // properties
  9. mConnection = JCO.getClient(POOL_NAME);
  10. System.out.println(mConnection.getAttributes());
  11. }
  12. catch (Exception ex) {
  13. ex.printStackTrace();
  14. }
  15. 。。。。。。
  16. finally {
  17. JCO.releaseClient(mConnection);
  18. }

复制代码

3)获得BAPI方法

  1. JCO.Repository mRepository;
  2. mRepository = new JCO.Repository("ARAsoft", mConnection);
  3. IFunctionTemplate ft =
  4. try{
  5. mRepository.getFunctionTemplate(“BAPI_SALESORDER_GETSTATUS”);
  6. }
  7. catch (Exception ex) {
  8. throw new Exception("Problem retrieving JCO.Function object.");
  9. }
  10. // Create a function from the template
  11. jcoFunction = new JCO.Function(ft);

复制代码

4)设定输入参数

  1. JCO.Field SalesDocumentField = jcoFunction.getImportParameterList().getField("SALESDOCUMENT");
  2. SalesDocumentField.setValue(iSalesDocument);

复制代码

5)执行BAPI

  1. mConnection.execute(jcoFunction);

复制代码

6)处理“return”参数

  1. JCO.Structure jcoBapiReturn = jcoFunction.getExportParameterList().getStructure("RETURN");
  2. if ((jcoBapiReturn.getField("TYPE").getValue()).toString().equals("E"))
  3. throw new Exception();

复制代码

7) 获得返回值

  1. JCO.Table jcoStatusInfo = jcoFunction.getTableParameterList().getTable("STATUSINFO");

复制代码

8)最后是异常的捕获与处理

JCO开发建议
基于JAVA语言的特征,建议以如下的方式开发JCO应用。

1)主要的类:
输入参数封装到java bean类中,并统一进行有效性检查。
针对所要调用的BAPI建立代理类,将BAPI的业务功能封装起来。
建立一个解释类,负责调用业务功能类,并将参数从java beans传递到业务功能类。
2)流程:

JCO与bapi的联合使用相关推荐

  1. SAP JCO connector 例子

    SAP JCO connector3与SAP 通过RFC的方式建立连接以及数据交互的例子. 步骤: 初始化连接用户名,密码,连接池等信息 sap-conig.properties文件: #notes: ...

  2. SAP JCo业务情景:在线发票

    SAP JCo业务情景:在线发票 以下示例项目描述了SAP JCo在业务场景中的用法,该业务场景使客户可以选择从SAP供应商系统在线检索和显示其发票. 客户交货的数据存储在供应商SAP系统中,但实际客 ...

  3. SAP JCo 功能

    SAP JCo 功能 SAP JCo提供以下功能来创建兼容SAP的Java应用程序: SAP JCo基于JNI(Java本机接口),它有助于访问CPIC库. 它支持从3.1H版本开始的SAP(R / ...

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

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

  5. mysql建立联合索引,mysql建立唯一键,mysql如何解决重复记录联合索引

    在项目中,常常要用到联合唯一   在一些配置表中,一些列的组合成为一条记录.   比如,在游戏中,游戏的分区和用户id会形成一条记录.(比如,一个qq用户可以在艾欧尼亚.德玛西亚创建两个账号) 添加联 ...

  6. 2022-2028年中国联合办公行业深度调研及投资前景预测报告

    [报告类型]产业研究 [报告价格]¥4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国联合办公行行业市场行业相关概述.中国联 ...

  7. 联合索引最左匹配原则成因

    使用col3,col2,col1 顺序建立联合索引,通过col3的值建立一个b+tree ,通过关键值去查找"Alice",在叶子节点中找到两个"Alice", ...

  8. oracle主从关系表查询,Oracle 主从表联合查询解决方法

    Oracle 主从表联合查询 表A id   type   name 1    E      AA 2    F 表B id   Aid    name 1    2      BB 2    2   ...

  9. c语言枚举3位数相加等于10,C语言 联合和枚举

    联合(union): 一.联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量. 联合说明和联合变量定义与结构十分相似.其形式为: union 联合名 { 数据类型 成员名; 数 ...

最新文章

  1. redis中密码设置
  2. python的jupyter的使用教程-Python神器之Jupyter Notebook作图教程
  3. go context之WithCancel的使用
  4. spark-on-yarn日志配置
  5. Kubernetes 在宜信落地实践
  6. Lync Server 2010迁移至Lync Server 2013部署系列 Part3:部署后端备用服务器
  7. 使用ILSpy探索C#7.0新增功能点
  8. 垃圾回收算法_垃圾回收算法有哪些
  9. Leanote使用mysql_《搭建个人Leanote云笔记本》阿里云体验实验室 教程
  10. Android 10 发布
  11. 零基础学python看什么书好?
  12. .gitignore忽略文件提交服务器
  13. 2022年陕西中级审计师考试练习题及答案
  14. 复合查询sql子查询操作
  15. 《Revisiting Self-Supervised Monocular Depth Estimation》论文笔记
  16. 【听】天才在左,疯子在右,天才与疯子一线之间
  17. 5款网络故障排除软件
  18. 英雄联盟手游版(MOBA)游戏体验报告
  19. 解决无法下载/502 com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+
  20. 116张!2021年最全铁塔排名(含图片)值得收藏!

热门文章

  1. 6000字思考!一篇看懂促销系统的底层逻辑
  2. 一篇网易获奖的产品分析来敲门:『有道云笔记』产品体验报告
  3. 【产品】阿里产品经理内训:能力模型解读
  4. 【干货】理发师都知道的产品经理最容易犯的几个错误
  5. ubuntu如何实现双屏显示(转)
  6. 【百度地图API1.1】修改文本标注的样式
  7. 浅淡绿萝2.0和星火计划
  8. (第一篇)FFilmation Glossary 术语
  9. DELPHI实现游戏内存的修改
  10. PE关于导入表(IAT)知识复习