如何debug远程调用函数(RFC)

Posted lvdong18847870057

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何debug远程调用函数(RFC)相关的知识,希望对你有一定的参考价值。

1, 场景介绍

1. 准备两个系统:
Y58, 主程序会在该系统运行; Y57, 被调用系统, 主程序中会调用本系统的FM

2. 在系统Y58中,通过tcode SM59创建一个RFC destination ‘testrfc’, 将connection type 设置为’3′, 并指定登录语言, 客户端, 用户名(本例中的用户名是’TESTRFC’),登录密码等信息. 此处需要特别注意的是, 此处指定的用户’TESTRFC’必须在系统Y57中存在,并且必须是具有debug权限的dialog用户. 参照下图:

技术图片

在Technical Setting tab页,设置target Host,输入IP地址,当然也可以使host name。

技术图片

在系统Y57,通过tcode SU01将用户TESTRFC的user type设置成Dialog,这个很重要。

技术图片

3. 在系统Y57中创建一个RFC FM,将’processing type’ 选为’Remote-Enabled Module’

技术图片

代码很简单,就是修改一个数据库表。

技术图片

4. 在系统Y58创建主程序’ZTEST_RFC_DEBUG_MAIN’, 在该程序中调用系统Y57中的FM ‘ZRFC_DEBUG_1 ‘并指定destination为 Y58中创建的’testrfc ‘, 如下图:

技术图片

rfc debug场景创建完了,下面开始debug。

2, RFC debug

1. 登录系统Y57(此处需要注意,整个测试过程中要保持Y57的登录状态), 并设置被调用系统Y57的debug用户(即Y58中创建destination时指定的user ID)。设置路径:T-CD:SE38->Utilities->settings, 如下图:

技术图片

2. 在将要测试的FM中设置外部断点,

技术图片

3. 系统Y58中运行主程序,

技术图片

结果: 程序停在所设断点处

技术图片

3, 要点总结

1. RFC destination中指定的User ID必须是具有debug权限的dialog帐号

2. 被调用系统中必须设定debug user ID 为RFC destination中指定的user ID,且该User ID必须是具有debug权限的dialog用户

3. 断点类型必须为外部断点

以上。

以上是关于如何debug远程调用函数(RFC)的主要内容,如果未能解决你的问题,请参考以下文章

java程序无法远程调用sap函数

SAP的RFC接口的发布与JAVA调用

maven聚合项目以及使用dubbo远程服务调用debug操作。

什么是RFC

eclipse 远程 debug 调试

如何远程检查 JavaScript 应用程序的函数调用堆栈?