针对Java程序调用RFC的APIJCo.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

要用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个文件: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:\WINDOWS\system32中。如果系统中已安装过SAP客户端,那么可能本来就已经有一个librfc32。dll在那里了,SAP官方要求你覆盖那个文件,这是一种很不负责的方法。当你覆盖这个文件后很可能你的SAPLogon就无法工作了。正确的做法是备份原来的文件,然后尝试覆盖后使用SAPLogon,如果出问题了,把原来那个文件找回来.我在安装了710FinalRelease版本的SAPLogon机器上使用原来的librfc32。dll运行JCo目前还没有发生什么异常.

?

好了,到现在为止,JCo算是安装好了,我们可以开始编写程序了。

?

1。使用JCo调用远程ABAP函数

使用Java程序远程调用ABAP函数的大致流程是这样地:先要有SAP系统所在服务器的IP地址、要登录的SAP系统的客户端号、系统编号、用户名、用户密码,有了这些后,就可以建立一个到该SAP系统的连接,然后在这个连接上调用允许远程调用的函数,得到调用后的结果,关闭连接.

这其中牵涉到一些细节,我们先看程序:

?

packagejcousage;

?

importcom.sap。mw.jco。IFunctionTemplate;

importcom.sap。mw。jco。JCO;

importjava。util。Properties;

?

publicclassTestJCo{

???publicstaticvoidmain(String[]args){

/*获得一个到SAP系统的连接?START?*/

???????PropertieslogonProperties=newProperties();

???????logonProperties。put(jco。client。ashost,192。168.1。123”);//系统的IP地址

???????logonProperties。put(”jco。client。client”,”800”);??????????//要登录的客户端

???????logonProperties.put(”jco.client。sysnr”,”00”);????????????//系统编号

???????logonProperties.put(”jco。client。user”,"young98);????????//登录用户名

???????logonProperties.put(jco。client。passwd,”password”);?????//用户登录口令

???????//用上述条件创建一个连接对象

???????JCO.ClientmyConnection=JCO。createClient(logonProperties);

/*获得一个到SAP系统的连接?END???*/

???????myConnection。connect();??????//进行实际连接

???????//如果连接不为null并且处于活动状态

???????if(myConnection!=null&myConnection.isAlive()){

???????????//从连接获得一个逻辑意义上的“仓库”对象(Repository)

???????????JCO.RepositorymyReposit

文档评论(0)

技术支持工程师 + 关注
实名认证
文档贡献者

仪器公司技术支持工程师

1亿VIP精品文档

相关文档