迈克尔.梅
JAVA 简介
JAVA是当前最流行的编程语言,面向对象,简单易学,用途广泛。目前JAVA应用包括以下两种
1、J2EE WEB 应用主要用于建设各种网站,目前京东,淘宝等网站都是用J2EE创
建,J2EE技术特点是,系统稳定性、兼容性和可扩展性强,访问速度快,资源丰富。
2、移动设备应用主要用在Android平台上,目前各种手机和PAD上面基于Android系统的各种App,都是由JAVA开发的,将来也会有其他平台加入JAVA阵营中。
JCO简介
JCO全称为JAVA
Connector,是SAP提供的一套基于RFC的,在ABAP和JAVA两种语言之间通讯的组件。JCO可以在ABAP和JAVA两种语言之间,直接进行数据转换,无需通过中间组件,转换效率高。这种转换过程是轻量级的,不需要消耗太多系统资源。
各种接口对比
以下是Web Service, PO和JCO接口技术特点对比,通过对比可以发现JCO的优势和弊端
技术名称 | 容易开发 | 支持多平台 | 数据保密 | 双向通讯
---|---|---|---|---
Web Service | 否 | 是 | 是 | 是
PO | 是 | 是 | 否 | 是
JCO | 是 | 否 | 是 | 否
JCO的优势
1、简单易用,对于ABAP开发,只需提供RFC函数即可,无需额外开发。对于JAVA开发,只需把JCO的JAR包,引入到开发组件中。无需转换任何XML格式数据。接口如果经常变动,例如频繁新增字段,此方法优势明显。
2、保密性强,直接在ABAP和JAVA之间进行数据交换,不会产生任何日志文件。适用于有保密要求的接口,例如工资接口等。
JCO的弊端
1、不支持多平台,只能在ABAP和JAVA之间进行数据转换。如果客户使用的是微软的C#语言,有类似的技术支持。目前不支持JAVA和C#以外的平台。
2、不能双向通讯,目前只能让外围系统主动发起,并调RFC函数。ABAP目前没法主动调用外围系统方法。
大家可以通过以下链接,在官网下载最新版Eclipse安装包
https://www.eclipse.org/downloads/
sapjco3.dll和sapjco3.jar文件可以找我要
安装好Eclipse之后,新建项目,并把sapjco3.jar引入项目中
图中红框1为新建的项目,红框2为自定义的文件夹,红框3为引入的JCO的JAR包
引入JCO的JAR包方法
按照上面步骤就可以把JCO的JAR包引入项目中
Windows下还需要将sapjco3.dll文件放到system32的目录下
新建2个JAVA类,用于注册跟SAP的接口,注册内容包括系统IP地址,客户端,账号和密码等信息。这两个类都可以连接SAP,只是一个带连接池,一个不带
上图红框部分是SAP的IP地址,客户端,密码和账号等信息
创建好注册类之后执行这2个类。执行后,会在指定目录下生成2个文件
上图左边红框生成了2个文件,我们打开的是不带连接池连接方式生成的文件。
ABAP_AS_WITHOUT_POOL.jcoDestination中包含SAP的IP地址,密码账号等信息,用于连接SAP调用RFC函数。
创建ABAP RFC函数,用于JAVA远程调用
上图:创建函数Z_JAVA_JCO,函数处理类型必须选择”远程启用的模块“,才能被远程调用
下图:此函数通过表IN_BUKRS输入需要查询的公司代码,函数被调用之后,查询结果返回在表OUT_T00中,返回公司代码和公司名称2个字段。
创建CallRFCFunction类用于调用Z_JAVA_JCO函数,并显示结果
红框1: 表示通过不带连接池方式连接
红框2: 调用函数Z_JAVA_JCO
红框3: 调用输入参数IN_BUKRS
红框4: 给输入参数赋值,查询范围为 0001到9999
红框5: 调用输出参数OUT_T001
红框6: 把公司代码和公司名称显示出来
红框7: 触发调用上面方法,开始执行
执行类CallRFCFunction,并显示执行结果
点击按钮开始执行,右下框为输出结果。结果显示成功输出从0001到9999的公司代码和公司名称字段