【问题标题】:ABAP RFC DebuggingABAP RFC 调试
【发布时间】:2009-02-02 13:02:24
【问题描述】:

我是一名 ASP.NET 和 ABAP 开发人员。多年来,我使用 RFC 通过 SAP .NET 连接器与 ASP.NET 进行通信。

在集成测试期间,有时我们需要调试从 ASP.ENT 调用的 RFC,因为我们面临的错误不会发生在 SE37。

所以,每次我需要调试 RFC 时,我就插入:

IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.

这样,程序就会卡住。然后我去SM50调试一下。

我想知道是否有其他方法可以做到这一点,因为我不喜欢更改代码以进行调试或实现一些调试控制功能的想法。

那么,当你需要调试 RFC 时,你会怎么做?

提前致谢!

【问题讨论】:

  • 我能否获得一些关于如何编写从 rfc 获取数据的代码的链接。我对这种方法完全陌生。

标签: asp.net abap saprfc


【解决方案1】:

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

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

这应该可行。

【讨论】:

  • 调试窗口是在 SAPGUI 中还是在 ASP“应用程序”中?
  • 这将在 SAPGUI 中,您必须登录到正确的系统和客户端,当然还有调试权限等。
【解决方案2】:

棘手..您能否详细说明“该错误不会发生在 se37”的意思?

这是否意味着您无法重现导致问题的数据,或者该问题特定于通过 RFC 调用功能模块这一事实?

通常你应该可以使用se37来启动功能模块,并且有一些方法可以将不同的数据星座记录到功能模块中。功能模块的行为应该是相同的,无论是从 se37 调用还是通过 RFC ...

【讨论】:

  • 示例:我们有这个用于 CA02 的 BDC。它在 SE37 测试中运行良好,但是当我们从 ASP.NET 调用 RFC 时,它就不起作用了。如果我们生成 SM35 并手动执行,它就可以正常工作!所以问题是,这个特殊的功能不支持 RFC 和 BDC 执行。
  • 通过 RFC 使用 BDC 可能会导致“有趣的”错误。对我来说,这听起来像是通话中的数据传输无法正常工作。尝试围绕 BDC 调用编写一个包装器,并使用您描述的方法检查数据。
【解决方案3】:

当您通过 SE37 调用 RFM 时,您会在不知不觉中使用 SAP 选择屏幕。 如果您有一个带有标题行的表格 当从 RFC 调用时,它可能会“填满”标题行

如果您从 RFC 中调用相同的 FM,则最初的标题行。

在 PT_JNC 处循环。 出口。 ENDLOOP。 或 READ TABLE PT_JNC INDEX 1.
将有助于填充标题行

这是一个微妙的区别。 其他简单的区别是 SAP 使用 YYYYMMDD 日期格式和 HH24MISS 时间

问候 jnc 在加尔各答

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多