版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、下面介绍如果通过JAVA调用RFC。我们使用的JAVA工具是SAP的NWDS(NetWaver Develop Stadio)。基本上可以说,JAVA调用RFC与.NET的实现原理是一样的,都会在调用端,自动生成相应的类,基于SAP提供的工具,很多代码系统会为我们自动生成。1 安装JCO工具以及配置开发环境1)从网上下载JCO工具,地址如下:如果不能下载,请邮件至我,可以共享(chunguangz)2)下载解压后,将JAR文件夹下的librfc32.dll和sapjcorfc.dll拷贝到SYSTEM32目录下3)将JAR文件夹下的sapjco.jar拷贝到开发目录下;4)将以下文件一并拷贝到
2、开发目录下: aii_proxy_rt.jar:NWDS安装目录aii_util_misc.jar:NWDS安装目录SAPmdi.jar: NWDS安装目录2 准备要调用的RFC我们以2个RFC为例,一个只返回文本;一个通过条件返回表结果:RFC一定要定义为Remote-Enabled Module1)返回文本RFC:只在EXPORT定义参数2)通过条件返回表数据的RFC:需要定义IMPORT和TABLE参数3 在NWDS中调用RFC1)打开NWDS,新建JAVA项目:将我们前面提到的4个JAR包,添加到项目中2)在JAVA项目中,添加对RFC的引用:在项目新建SAP Enterprise C
3、onnector,添加对RFC的引用:填写系统链接参数:选中需要引用的RFC,系统将根据RFC的接口格式,自动生成调用类:加载完成后,查看JAVA项目的内容如下:同样的方法,将ZFLIGHTS也添加到项目中来:最终内容结构如下:3)创建类调用RFC:首先,我们创建类JCO_HELLO,来调用ZHELLOW:代码如下:/* * Created on 2010-7-30 * * To change the template for this generated file go to * Window>Preferences>Java>Code Genera
4、tion>Code and Comments */* * author Administrator * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */import ZHELLO.ZHELLO_PortType;import ZHELLO.Zhellow_Input;import ZHELLO.Zhellow_Output;i
5、mport com.sap.mw.jco.*;import xy.framework.core.*;public class JCO_HELLO public static void main(String args)JCO.Client proxy;proxy = JCO.createClient("202","zhaocg","china001","en","7","00");try/connect to sap syse
6、tmproxy.connect();/define input/output/port_type according to class automatillyZhellow_Input input = new Zhellow_Input();Zhellow_Output output = new Zhellow_Output();ZHELLO_PortType p_type = new ZHELLO_PortType();/set client proxy for PORT_TYPEp_type.messageSpecifier.setJcoClient(proxy);/set output
7、according to input.output = p_type.zhellow(input);String str = output.getStr();System.out.print(str);catch(SystemFaultException e)System.out.print("System failed");catch(ApplicationFaultException e)System.out.print("Application failed");finallyproxy.disconnect();运行代码,查看结果:然后,我们创建
8、类JCO_FLIGHTS,来调用ZFLIGHTS:代码如下:/* * Created on 2010-7-30 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */* * author Administrator * * To change the template for this generated type comment go to * Windo
9、w>Preferences>Java>Code Generation>Code and Comments */import ZFLIGHT.SflightType;import ZFLIGHT.ZFLIGHT_PortType;import ZFLIGHT.Zflights_Input;import ZFLIGHT.Zflights_Output;import ZFLIGHT.util.SflightType_List;import com.sap.mw.jco.*;import xy.framework.c
10、ore.*;public class JCO_FLIGHTS public static void main(String args)JCO.Client proxy;proxy = JCO.createClient("202","zhaocg","china001","en","7","00");try/connect to sap sysetmproxy.connect();/define classes Zflights_Input input =
11、new Zflights_Input();Zflights_Output output = new Zflights_Output();ZFLIGHT_PortType p_type = new ZFLIGHT_PortType();SflightType data = new SflightType();SflightType_List dataList = new SflightType_List();/set client proxy for port_typep_type.messageSpecifier.setJcoClient(proxy);/set input(selection
12、) valueinput.setCarrid("LH");/get data according to INPUToutput = p_type.zflights(input);/Set data to Type_ListdataList = output.get_as_listData();/loop and output the valuesfor(int i = 0; i<dataList.size(); i+)data = new SflightType();data = dataList.getSflightType(i);System.out.print(
13、data.getCarrid();System.out.print(data.getConnid();System.out.print(data.getFldate();System.out.println(data.getPrice();catch(SystemFaultException e)System.out.print("System failed");catch(ApplicationFaultException e)System.out.print("Application failed");finallyproxy.disconnect(
14、);测试运行,结果如下:顺便贴上利用连接池调用RFC的例子:/* * Created on 2010-7-30 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */* * author Administrator * * To change the template for this generated type comment go to * Windo
15、w>Preferences>Java>Code Generation>Code and Comments */import ZFLIGHT.SflightType;import ZFLIGHT.ZFLIGHT_PortType;import ZFLIGHT.Zflights_Input;import ZFLIGHT.Zflights_Output;import ZFLIGHT.util.SflightType_List;import com.sap.mw.jco.*;import xy.framework.c
16、ore.*;import java.io.*;public class JCO_FLIGHTS_POOL public static void main(String args)String POOL_NAME = "Pool"JCO.Client proxy = null;try/connect to sap sysetmJCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME);if(pool = null)OrderedProperties proper = OrderedProperties.load(
17、"/perties");JCO.addClientPool(POOL_NAME,6,proper);proxy = JCO.getClient(POOL_NAME);/define classes Zflights_Input input = new Zflights_Input();Zflights_Output output = new Zflights_Output();ZFLIGHT_PortType p_type = new ZFLIGHT_PortType();SflightType data = new SflightType();Sflig
18、htType_List dataList = new SflightType_List();/set client proxy for port_typep_type.messageSpecifier.setJcoClient(proxy);/set input(selection) valueinput.setCarrid("LH");/get data according to INPUToutput = p_type.zflights(input);/Set data to Type_ListdataList = output.get_as_listData();/loop and output the valuesfor(int i = 0; i<dataList.size(); i+
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中考物理一轮基础复习:第九章 压强(专项练习)
- 多学科协作在氧疗护理中的实践与成效
- 2026中考英语语法复习分类训练:宾语从句,定语从句和状语从句100题(中考试题+中考模拟)原卷版
- 医学生基础医学 达芬奇机器人手术护理课件
- 2026年云南高考语文总复习:文言文句子翻译(知识梳理+考点)解析版
- 2026年高考数学一轮复习 第三章 导数及其应用(综合训练)解析版
- 2026年高考英语一轮复习:定语从句(含答案解析)
- 医学流行病学答辩 circRNA 数据教学课件
- 2026高考物理复习高频考点强化训练:带电粒子在复合场中的运动(原卷版)
- 公立医院运营成本风险预警机制
- 环境催化-课件1
- 旭辉地产年度品牌整合传播规划方案
- GB/T 27924-2011工业货架规格尺寸与额定荷载
- 政治理论水平任职资格考试题库
- 橡胶的加工工艺课件
- 广告制作常用材料专题培训课件
- 《我是运动小健将》课件
- 电子物证专业考试复习题库(含答案)
- 家禽屠宰建设项目可行性研究报告
- 思想政治教育学原理整套课件完整版电子教案课件汇总(最新)
- 《保障农民工工资支付条例》六制度两金管理解读
评论
0/150
提交评论