JCo是一个高性能的,基于JNI的中间件,它实现了SAP的RFC(Remote Function Call)协议。

1、JCo的安装

从 http://files.cnblogs.com/byfhd/jco.rar 下载JCo,解压后将librfc32.dll和sapjcorfc.dll拷贝到WINNT"SYSTEM32下,将sapjco.jar加入项目的classpath中。

2、与SAP的连接

JCo支持两种连接方式,direct connections和connection pools。

direct connections:

import com.sap.mw.jco.*;

public TutorialConnect1() {
         JCO.Client mConnection;
         try {
            mConnection = JCO.createClient("001", // SAP client
                                                         "",           // userid
                                                         "****",               // password
                                                         null,                 // language
                                                         "",         // server host name
                                                         "00");                // system number          mConnection.connect();                                                                            
         mConnection.disconnect();
         } catch (Exception ex) {
         }
     }

connection pools:

static final String POOL_NAME = "Pool";
      public TutorialConnect2() {
         JCO.Client mConnection;
         try {
            JCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME);
            if (pool == null) {
               OrderedProperties properties = OrderedProperties.load("/logon.properties");
               JCO.addClientPool(POOL_NAME,  // pool name
                                                 5,          // maximum number of connections
                                                 logonProperties); // properties
            }
            mConnection = JCO.getClient(POOL_NAME);
         } catch (Exception ex) {
         } finally {                                                                                                                            //返回连接到连接池,否则会导致无可用连接
            JCO.releaseClient(mConnection);
         }
      }

logon.properties文件的定义:

jco.client.client=001
      jco.client.user=userid
      jco.client.passwd=****
      jco.client.ashost=hostname
      jco.client.sysnr=00

3、对SAP进行操作

SAP中有JCO.Repository对象,包含着SAP的RFM的运行环境元数据。

JCO.Repository mRepository;
      mRepository = new JCO.Repository("ARAsoft", mConnection); 
      构造器中包含两个参数,第一个是一个任意名称,第二个是连接池或JCO.Client对象。

IFunctionTemplate对象包含着某个特定的RFM元数据,JCO.Function则代表着一个包含所有参数的RFM。它们之间的关系类似Java中Class和Object的关系。

IFunctionTemplate ft = mRepository.getFunctionTemplate("BAPI_SALESORDER_GETLIST");
      //ft为空表示没有在SAP发现对应的RFM
      if (ft == null) return null;
      JCO.Function function = ft.getFunction();

JCO.ParameterList对象包含做Function的输入、输出和表参数。

client = JCO.getClient(SID);    //从Pool中取得Client
      JCO.ParameterList input = function.getImportParameterList();
      //设置参数,参数名为第二个参数,参数值为第一个参数,
      input.setValue("0000001200", "CUSTOMER_NUMBER"   );
      input.setValue(      "1000", "SALES_ORGANIZATION");
      client.execute(function);

Download jco: http://files.cnblogs.com/byfhd/jco.rar

SAP Java Connector(JCo)的更多相关文章

  1. 使用Java connector消费ABAP系统的函数

    Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDI ...

  2. 使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数

    最近Jerry接到一个原型开发的任务,需要在微信里调用ABAP On Premise系统(SAP CRM On-Premise)里的某些函数.具体场景和我之前的公众号文章 Cloud for Cust ...

  3. J2EE: JCA (Java Connector Architecture) [转]

    JCA (J2EE 连接器架构,Java Connector Architecture)是对J2EE标准集的重要补充.因为它注重的是将Java程序连接到非Java程序和软件包中间件的开发.连接器特指基 ...

  4. “SAP.Middleware.Connector.RfcDestinationManager”的类型初始值设定项引发异常

    在VS2015中使用SAP Connector 3.0(SapNco)的.net4.0x86版本开发时,程序运行到RfcDestinationManager.TryGetDestination时报错: ...

  5. 如何给SAP Cloud Connector Region列表中添加新的Region

    SAP help里提供了CloudFoundry和Neo环境下可用的Region和API endpoint: 当我们期望用SAP Cloud Connector连接某个SAP云平台Region时,一般 ...

  6. 使用SAP open connector调用第三方系统的API

    我们把hubspot这个SaaS CRM作为第三方系统,首先登录hubspot,创建一个新的API key: 把创建的key拷贝到剪切板里: 然后登录SAP Cloud for Customer上的o ...

  7. UI5-学习篇-15-云连接SAP Cloud Connector

    请关注地址:http://blog.itpub.net/29829936/viewspace-2128829/ 1.SCC下载及安装 https://tools.hana.ondemand.com/# ...

  8. SAP R3和JAVA交换数据之JCO

    SAP Java Connector (JCo)     SAP的JAVA中间件,使用它可以使SAP的客户和合作伙伴使用JAVA语言轻松地建立可以和SAP系统通信的兼容的组件和应用程序下面是JCo一些 ...

  9. JAVA_用_JCO连接_SAP,实现调用SAP_的_RFC_函数(整理)(附一篇看起来比较全面的说明)(JCO报错信息)

    // 获取RFC返回的字段值 11 JCoParameterList exportParam = function.getExportParameterList(); 12 String exPara ...

随机推荐

  1. 最全面的Android Intent机制讲解

    对于大型软件开发经验较少的程序员来说,这可能是一个不太容易理解的抽象概念,因为它与我们平常使用的简单函数调用,或者通过库调用接口的方式不太一样.在 Intent 的使用中你看不到直接的函数调用,相对函 ...

  2. mac中vmware tools进行磁盘压缩和vmware-tools-cli的使用方法

    前言: 高高兴兴的在vmware9.0中安装了mac10.8系统,然后学习iphone开发,但是发现下载的pdf都是基于xcode3.2.5的,又在10.8上面安装3.2.5,出现“五国”无法解决,最 ...

  3. linux文件 编辑常用 inux手把手vi ---针对文件操作

    命令语法 说明 使用频率(1:常用;2一般:3:偶尔) 1.VI编辑器的启动与退出 VI编辑器的启动与退出 vi  file1 新建一个文本文件名为file1 :q 退出,如果对缓存去进行过修改,则提 ...

  4. 第一章 01 namespace 命名空间

    一.什么是namespace? namesapce是为了防止名字冲突提供的一种控制方式. 当一个程序需要用到很多的库文件的时候,名字冲突有时无法避免.之前的解决思路是使用更长的变量名字,使用不方便. ...

  5. About Webkit

    http://blog.csdn.net/spacetiller/article/details/5784461 一 . WebKit 简介 Webkit 是一个开放源代码的浏览器引擎 (web br ...

  6. android.os.NetworkOnMainThreadException 异常处理

    当我试图在UI线程(MainActivity)连接网络的时候,运行时抛出异常droid.os.NetworkOnMainThreadException 安卓的官方文档说 The exception t ...

  7. Android开发了解——Dalvik

    Dalvik是Google公司自己设计用于Android平台的Java虚拟机.Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一.它可以支持已转换为 .dex ...

  8. [YII]将ar查询结果转化成数组

    $Column= Column::model()->findAll(); $data = array_map(create_function('$m', 'return $m->getAt ...

  9. form表单按enter键自动提交的问题

    废话不多说.直接上代码. 1:form表单按enter键自动提交的情况 <!doctype html> <html lang="en"> <head& ...

  10. transition和animation动画简介

    本文介绍CSS动画的两大组成部分:transition和animation.我不打算给出每一条属性的详尽介绍,那样可以写一本书.这篇文章只是一个简介,帮助初学者了解全貌,同时又是一个快速指南,当你想不 ...