ABAP RFC 调试

发布于 2024-07-13 19:17:36 字数 434 浏览 7 评论 0原文

我是一名 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

不美如何 2024-07-20 19:17:36

我假设您使用的是最新版本的 sap (4.7+)
执行以下操作:

  • 获取在 ASP 中对 SAP 进行 RFC 调用的用户名
  • 启动 SE37,转到 RFC 的代码部分
  • 查看顶部的菜单,单击“实用程序”
  • 单击“设置
  • ”转到“调试”选项卡
  • 填写将从 ASP 进行调用的用户名
  • 单击 IP 匹配(否则每次任何用户进行调用时都会出现调试会话)
  • 会话断点立即处于活动状态也很好单击
  • 将外部断点放在您需要的位置(单击带有停止标志和小人)
  • 测试你的 ASP 连接器
  • 断点应该生效,将弹出一个调试窗口
  • 你可能没有权限执行此操作,如果不起作用,请使用 SU53 找出你缺少的内容。

这应该有效。

I assume you are using a fairly recent version of sap (4.7+)
Do the following:

  • Get the username that makes the RFC call into SAP in ASP
  • Fire up SE37, go to the code section of your RFC
  • Look at the menu on top, click on 'Utilities'
  • Click on Settings
  • Go for the Debugging tab
  • Fill in the username that will make the call from ASP
  • Click IP Matching (otherwise a debug session appears for every time any user makes the call)
  • Session breakpoint active immediately is nice to click as well
  • Put your external breakpoint where you need it (click the icon with the stop sign and the little man)
  • Test your ASP connector
  • The breakpoint should come into effect, a debug window will pop up
  • You might not have the authorization to do this, if it doesnt work, use SU53 to find out what you're missing.

This should work.

他夏了夏天 2024-07-20 19:17:36

棘手..你能详细说明一下“错误不会发生在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 ...

才能让你更想念 2024-07-20 19:17:36

当您通过 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文