ABAP RFC 调试
我是一名 ASP.NET 和 ABAP 开发人员。 多年来,我一直使用 RFC 通过 SAP .NET Connector 与 ASP.NET 进行通信。
在集成测试过程中,有时我们需要调试从 ASP.ENT 调用的 RFC,因为我们面临的错误不会发生在 SE37 上。
因此,每次我需要调试 RFC 时,我都会插入:
IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.
这样做,程序就会卡住。 然后我就去SM50调试一下。
我想知道是否有其他方法可以做到这一点,因为我不喜欢更改代码以进行调试或实现某些调试控制功能的想法。
那么,当您需要调试 RFC 时该怎么办?
提前致谢!
I'm a ASP.NET and ABAP developer. For years, I used RFC's to communicate with ASP.NET using SAP .NET Connector.
During the integrated tests, sometimes we need to debug a RFC that has been called from ASP.ENT, just because the bug we are facing does not happens at SE37.
So, everytime I needed to debug the RFC, I just inserted:
IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.
By doing so, the program gets stuck. Then I go to SM50 and debug it.
I was wondering if there is any other way of doing this, because I don't like the idea of changing code in order to debug, or implementing some debug control functionality.
So, what do you do when you need to debug RFC's?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我假设您使用的是最新版本的 sap (4.7+)
执行以下操作:
这应该有效。
I assume you are using a fairly recent version of sap (4.7+)
Do the following:
This should work.
棘手..你能详细说明一下“错误不会发生在se37”是什么意思吗?
这是否意味着您无法重现导致问题的数据,或者问题特定于通过 RFC 调用功能模块的事实?
通常,您应该能够使用se37来启动功能模块,并且有一些方法可以将不同的数据星座记录到功能模块。 功能模块的行为应该是相同的,无论是从 se37 调用还是通过 RFC ...
Tricky .. can you elaborate what you mean by "the bug does not happen at se37"?
Does that mean that you cannot reproduce the data that leads to your problem or that the problem is specific to the fact that the function module is called via RFC?
Usually, you should be able to use se37 to start the function module, and there are some ways to record different data constellations to the function module. The behavior of the function module should be the same, regardles of being called from se37 or via RFC ...
当您通过 SE37 调用 RFM 时,您会不知不觉地使用 SAP 选择屏幕。
如果您有一个带有标题行的表格
当从 RFC 调用时,它可能会“填满”标题行。
如果您从 RFC 中调用相同的 FM,则标题行会处于初始状态。
循环在 PT_JNC。
出口。
ENDLOOP。
或读取表 PT_JNC 索引 1。
将有助于填充标题行
这是一个微妙的区别。
其他简单的区别是 SAP 使用 YYYYMMDD 日期格式和 HH24MISS 时间
问候
jnc 加尔各答
When you call a RFM via SE37 you unknowingly use SAP selection screen.
In case you have a table with header-line
when invoked from RFC it might have header line "filled up"
In case you call same FM from RFC the header line in initial.
LOOP AT PT_JNC.
EXIT.
ENDLOOP.
or READ TABLE PT_JNC INDEX 1.
will help populate header line
This is a subtle difference.
Other simple differences are SAP uses YYYYMMDD date format and HH24MISS time
Regards
jnc at Kolkata