Asp.net ABAP RFC调试

Asp.net ABAP RFC调试,asp.net,abap,saprfc,Asp.net,Abap,Saprfc,我是ASP.NET和ABAP开发人员。多年来,我使用RFC使用SAP.NET连接器与ASP.NET进行通信 在集成测试期间,有时我们需要调试从ASP.ENT调用的RFC,这仅仅是因为我们面临的错误不会发生在SE37 因此,每次我需要调试RFC时,我都会插入: IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF. IF。而1等于1。突破点。结束时。恩迪夫。 这样做,程序就会陷入困境。然后我转到SM50

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

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

因此,每次我需要调试RFC时,我都会插入:

IF <<CONDITION>>. WHILE 1 EQ 1. BREAK-POINT. ENDWHILE. ENDIF.
IF。而1等于1。突破点。结束时。恩迪夫。
这样做,程序就会陷入困境。然后我转到SM50并调试它

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

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


提前谢谢

棘手的。。你能详细解释一下“错误不会发生在se37”是什么意思吗

这是否意味着您无法再现导致问题的数据,或者问题是由于功能模块是通过RFC调用的


通常,您应该能够使用se37启动功能模块,并且有一些方法可以将不同的数据星座记录到功能模块中。功能模块的行为应该是相同的,考虑到从se37或通过RFC调用…

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

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

这应该会起作用。

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

如果您从RFC调用相同的FM,请在首字母中使用标题行

在PT_JNC循环。 出口 结束循环。 或读取表PT_JNC索引1。
将有助于填充标题行

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

问候
加尔各答jnc

示例:我们有CA02的BDC。它在SE37测试中工作得非常好,但是当我们从ASP.NET调用RFC时,它就是不工作。如果我们生成SM35并手动执行,它就可以正常工作!所以问题是,这个特殊的函数性不支持RFC和BDC执行。通过RFC使用BDC可能会导致“有趣的”错误。对我来说,这听起来像是通话中的数据传输不正常。尝试围绕BDC调用编写包装,并使用您描述的方法检查数据。调试窗口是在SAPGUI中还是在ASP“app”中?这将在SAPGUI中,您必须登录到正确的系统和客户端,当然还有调试授权等。我可以获得一些链接,了解如何编写代码从rfc获取数据。我对这种方法完全陌生。