跳过导航,朗读正文21CN首页

新闻 | 财经 | 汽车 | 房产 | 体育 | 娱乐 | 数码 | 生活 | 女人 | 游戏 | 旅游 | 社区 | 邮件 | VGO | 播客 | 影院

  当前位置:21CN首页 > IT频道 > 行业频道 > 正文  
 
JCo – 在Java中调用ABAP服务
2008-04-15 17:15:27  网友投稿  【 浏览字号: 点击发表评论
精彩回顾 手机 | 数码 | 笔记本 | 家电 | 下载
·30秒清除电脑垃圾 使电脑急速如飞 ·最新版QQ2008下载 搞笑FlASH下载
·篮球宝贝的性感家居照 暗访:交楼问题大曝光 ·买家电 到3C特惠场 汽车维修市场黑幕揭秘
·诺基亚N96真机欣赏 不买魅族M8十大充足理由 ·颁奖典礼有奖拿有表演 迎奥运 运动型车导购
搜索更多 的资讯 >>>

远程调试

    一般的情况下,在SAP服务器上通过事务代码SE37可以测试ABAP函数。在保证ABAP函数的正确性之后,Java客户端只需要检查输入输出参数是否正确即可。这时可以利用JCo库为了方便调试而提供的了一个很强大的功能,把所有继承自JCO.Record的类的对象格式化输出到一个指定的HTML文档中。通过这种方式,我们可以检查输入输出参数是否正确。比如如下代码输出前面得到的FLIGHT_LIST参数的内容:

JCO.Table flights = funGetList.getTableParameterList().getTable(

            "FLIGHT_LIST");

flights.writeHTML("c:\\flight_list.html");

生成的HTML文件内容如下图所示:

更进一步地,通过启动ABAP的远程调试功能,可以像调试普通程序一样调试远程调用的ABAP函数。

要实现远程调试,首先需要在Java代码中,通过调用JCO.Client类或者JCO.Pool类的setAbapDebug方法激活JCoABAP调试功能。如下代码演示了如何激活一个连接池的ABAP调试功能:

JCO.Pool pool = JCO.getClientPoolManager().getPool(POOL_NAME);

pool.setAbapDebug(true);

如果一个连接池的ABAP调试功能被激活,那么其中的所有连接的ABAP调试功能都会被激活。使用这样一个连接来调用ABAP函数的时候,SAP系统会自动弹出一个调试器窗口(如下图所示)。当然,前提是客户端机器上已经安装了SAPGUI

从上图可以看到,这时候调试器仅仅停留在RFC调用的入口处,而并未进入所调用的ABAP函数。

为了让调试器直接进入ABAP函数,需要在事务代码SE37中为该函数设置一个外部断点(External BreakPoint)。如下图所示:

设置好外部断点之后,还必须通过事务代码SRDEBUG激活远程调试功能。SRDEBUG启动后的界面如下图所示:

如果之前没有直接在代码上设置过外部断点的话,也可以直接在SRDEBUG中设置断点所在的Function Module 要注意的是,在调试结束之前,不要关闭SRDEBUG的窗口,否则系统将会立即关闭远程调试功能。

此时,再执行Java代码,将会发现系统自动打开的DEBUG窗口自动停留在我们所设置的外部断点的位置,而Java进程在调试结束之前将会被挂起。

ABAP调试器中,可以检查通过RFC协议传过来的参数,以及ABAP程序运行的结果。通过这种方式,可以更清晰地跟踪整个执行过程。

调试结束的时候,不要忘记关闭SRDEBUG的窗口和清除外部断点。

更多资源

限于篇幅,本文只能介绍关于JCo库的基本使用方法。更进一步的技术细节,可以查看JCo库的下载文件中自带的文档。

开发者还可以在如下连接的SAP的在线帮助文档中找到丰富的文档资料和示例程序:

http://help.sap.com/saphelp_nw70/helpdata/EN/6f/1bd5c6a85b11d6b28500508b5d5211/frameset.htm

此外,在SDN网站(www.sdn.sap.com)上也有许多关于JCo的讨论。

(编辑:似水)
21CNIT最终页推荐
今日热点
手机 数码 家电 软件下载
意想不到的概念笔记本 点兵热门酷睿双核电脑 三大芯片巨头围攻英特尔
下一篇:B2B搜索 跨国采购商的必备功课
热门电影排行
夺帅
3K时代
极速飚风
瞬间激情 | 火车与玫瑰 | 马樱丹 | 超时空战士
| 黑帮太保 | 外星帝国 | 天国车站 | 明明
 点播更多    

热门剧集排行
夜郎王
廖家
给我一片蓝天
心不再遥远 | 东方母亲 | 广州教父
天使在线 | 鸦片战争演义 | 天下有情之甜蜜蜜
 点播更多    
 
 
公司简介  |  广告服务  |  网站导航  |  合作伙伴  |  诚征代理  |  联系我们