【问题标题】:Debugging under RFC user possible?可以在 RFC 用户下调试吗?
【发布时间】:2019-04-18 09:19:02
【问题描述】:

我写了一个ABAP功能模块,如果我用我的开发者账号执行它就可以了。

如果另一个用户执行它,他会得到一个空结果。另一个用户是无法使用 SAP GUI 登录的 RFC 帐户。

我不知道如何调试它。如何执行/调试功能模块并伪装成不同的用户?

我正在使用 Windows 原生 SAP GUI 和事务代码 SE80

【问题讨论】:

  • 功能模块是否有授权检查?如果是,这可能是结果与您自己的用户不同的原因之一。
  • @JozsefSzikszai 报告被调用。在我的示例中,有一个名为 AQA0SYSTQV000058TEST========== 的临时查询,我猜想在此报告中完成了一些身份验证检查。
  • 您可以在ST01中做一个授权跟踪,看看问题是否是因为缺少授权。
  • 您是否检查过SU53中该用户是否存在一些失败的授权?
  • 虽然 Sandra 的回答是完全正确的(外部调试只能通过对话用户完成)我想你的问题出在其他地方。任何授权用户都可以执行 RFC,不仅是对话框,返回的空表可能是由于远程系统上缺乏授权造成的

标签: debugging abap sap-gui saprfc


【解决方案1】:

如果 SAP 用户被定义为“对话”或“服务”类型(事务代码 SU01),那么使用 SAP GUI 在技术上是可行的(使用该用户登录并进行调试)。

如果 SAP 用户定义为“通信”或“系统”类型,则根本不可能。

您可以将其视为一种安全措施:如果您有一个在给定 SAP 用户下运行的 Web 服务,则该用户不应被用于直接使用 SAP GUI,以限制可能的攻击。

所以,我认为唯一合理的解决方案是在调试期间临时使用另一个类型为“服务”的 SAP 用户,或者更改 SAP 用户的类型。

可以通过选择要调试的用户来调试另一个用户,或者通过 Eclipse ADT 调试属性,或者通过 ABAP Workbench ABAP 调试设置,具体取决于您使用的集成开发环境。

另一个解决方案是,如果您有可能临时更改代码,添加无限循环(DO. ENDDO.),通过事务SM50 调试正在运行的程序,菜单管理 -> 程序 -> 调试,其中应该打开一个指向循环的调试对话框,将光标放在循环后的行上,然后按 F12 从那里继续。

【讨论】:

  • 我更新了问题:我使用的是windows native sap gui和se80。
  • 这很可悲。对于常见的情况,没有简单、简单、直接的解决方案。不过非常感谢您的帮助。我尝试为不同的用途设置断点,但失败了。
  • 解决方案并不复杂,复杂的是当你不被允许做你的工作时。我通常没有任何问题可以暂时将用户更改为键入“服务”(我将答案“使用另一个 SAP 用户”更新为“或暂时将其更改为键入“服务”)
  • 我喜欢人,请不要误会。但是如果需要有人来做我的日常工作,我不喜欢它。要求某人更改用户类型很烦人。我希望你明白我抱怨的是这种情况,而不是你或你真正有用的答案。祝你复活节快乐。谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多