针对Java程序调用RFC的API——JCo.doc

针对Java程序调用RFC的API——JCo.doc

ID:59295903

大小:49.00 KB

页数:16页

时间:2020-09-06

针对Java程序调用RFC的API——JCo.doc_第1页
针对Java程序调用RFC的API——JCo.doc_第2页
针对Java程序调用RFC的API——JCo.doc_第3页
针对Java程序调用RFC的API——JCo.doc_第4页
针对Java程序调用RFC的API——JCo.doc_第5页
资源描述:

《针对Java程序调用RFC的API——JCo.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、要用Java程序远程调用ABAP函数可以使用SAP提供的RFC针对Java程序的API——JCo。0.JCo的安装很不幸,虽然JCo是用Java语言编写的但却是平台相关的。(具体来说,JCo的Java包sapjco.jar确实是平台无关的,但是运行JCo需要RFC库支持,而RFC库是平台相关的)目前为止我还只有在Windows系统中安装的版本,因为JCo不是一个开源组件,甚至在SAP官方下载它是需要SAPServiceMarketPlace的用户帐号的。目前我手上的是JCo2.1.6Windows版本。除了API文档和一些DEMO程序,你需要用到的有3个文件

2、:librfc32.dll,sapjcorfc.dll,sapjco.jar。 安装配置步骤如下:(1).将sapjco.jar导入到你的项目库路径中。SAP官方的指导是要你配置CLASSPATH,这种方法在我看来不值得提倡,因为eclipse或netBeans这样的IDE可以帮你轻松导入jar库而无需摆弄系统环境变量。(2).将sapjcorfc.dll文件拷贝至sapjco.jar所在的文件夹中。注意,这两个文件必须放在同一个文件夹里,它们俩必须像热恋中的情人一样一直黏在一起才能使JCo正常工作。(3).将librfc32.dll文件拷贝至C:WIND

3、OWSsystem32中。如果系统中已安装过SAP客户端,那么可能本来就已经有一个librfc32.dll在那里了,SAP官方要求你覆盖那个文件,这是一种很不负责的方法。当你覆盖这个文件后很可能你的SAPLogon就无法工作了。正确的做法是备份原来的文件,然后尝试覆盖后使用SAPLogon,如果出问题了,把原来那个文件找回来。我在安装了710FinalRelease版本的SAPLogon机器上使用原来的librfc32.dll运行JCo目前还没有发生什么异常。 好了,到现在为止,JCo算是安装好了,我们可以开始编写程序了。 1.使用JCo调用远程ABAP函

4、数使用Java程序远程调用ABAP函数的大致流程是这样地:先要有SAP系统所在服务器的IP地址、要登录的SAP系统的客户端号、系统编号、用户名、用户密码,有了这些后,就可以建立一个到该SAP系统的连接,然后在这个连接上调用允许远程调用的函数,得到调用后的结果,关闭连接。这其中牵涉到一些细节,我们先看程序: packagejcousage; importcom.sap.mw.jco.IFunctionTemplate;importcom.sap.mw.jco.JCO;importjava.util.Properties; publicclassTestJCo{

5、   publicstaticvoidmain(String[]args){/*获得一个到SAP系统的连接 START */       PropertieslogonProperties=newProperties();       logonProperties.put("jco.client.ashost","192.168.1.123");//系统的IP地址       logonProperties.put("jco.client.client","800");          //要登录的客户端       logonProperties.pu

6、t("jco.client.sysnr","00");            //系统编号       logonProperties.put("jco.client.user","young98");        //登录用户名       logonProperties.put("jco.client.passwd","password");     //用户登录口令       //用上述条件创建一个连接对象       JCO.ClientmyConnection=JCO.createClient(logonProperties);/*获得一个到S

7、AP系统的连接 END   */       myConnection.connect();      //进行实际连接       //如果连接不为null并且处于活动状态       if(myConnection!=null&&myConnection.isAlive()){           //从连接获得一个逻辑意义上的“仓库”对象(Repository)           JCO.RepositorymyRepository=                newJCO.Repository("Repository", //只是一个名字   

8、                          

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。