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