来源:Kelly Wang-https://blogs.sap.com/2013/10/15/sap如何debug远程调用的函数模块-sap-how-to-debug-rfc/
在跨系统debug RFC函数的时候,例如,A系统的程序中通过RFC调用了B系统中的一个function module,在B系统中设置断点后,如何才能让程序执行到该断点是停下来呢?下面我将通过一个例子来说明。
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. 断点类型必须为外部断点
以上。
发表评论