【问题标题】:Endless loop in SAP ABAP adobe formsSAP ABAP adobe 表单中的无限循环
【发布时间】:2020-12-26 00:44:18
【问题描述】:

我已经完成了界面上的所有操作、选择等,并在表单上传递了信息。最终,当我尝试从驱动程序执行它时,在选择打印设备后,单击打印预览,它会一直加载而没有返回任何内容。我使用调试模式进入,并且信息已正确传递。 任何想法 ?

【问题讨论】:

  • 在进入无限循环之前不要启动调试,在无限循环中启动调试期间,使用SM50或SM66事务代码。您将直接进入无限循环(如果它真的是无限循环)。
  • 我还不清楚,请说的更具体一些,我该怎么做?
  • 您的问题应该更加具体。您在没有提供太多信息的情况下寻求调试帮助。这往往会导致一般的答案,这通常无济于事。标准打印程序有效吗?您是否尝试在界面中放置断点?表格中有任何脚本吗?你的代码中有什么特殊的逻辑吗?

标签: adobe abap


【解决方案1】:

问题很可能是由您编写的代码中的无限循环(或一些超繁重的计算,需要一段时间才能执行)引起的,而不是由标准功能引起的,这意味着我们真的不能在不知道代码的情况下帮助您。


现在解决您的问题。 您可能会在 3 个地方中的 1 个地方找到您的问题(使用基本的调试技术):

[PDF 表单脚本] 如果您有任何以 PDF 形式编写的脚本,我建议您使用干净(空的新表单,具有相同的测试界面)。PDF 表单脚本调试需要自己的问题,我不在这里讨论。

如果您编写了 pdf 表单脚本,请使用干净的表单启动程序,看看它是否仍然卡住。如果没有 - 问题出在您的脚本中,如果有 - 继续下一步。

[PRINTING PROGRAM] 如果您使用自己的(非标准)打印程序调用 PDF 功能模块,请在 PDF 功能模块调用和job close 功能模块的调用上放置断点.

启动程序并查看是否调用了 PDF 表单的功能模块和 job close 功能模块(我假设它会调用,因为您会看到打印弹出窗口)。如果两者都没有被调用,那么在进入 pdf 功能模块之前,您就有了一个无限循环。如果 PDF FM 被多次调用,但不是 job close 一次,则您的 pdf 函数模块处于无限循环中。如果两者都被调用,则问题不在程序中。

[FORM INTERFACE]如果您的界面代码中有任何逻辑,请在界面代码的末尾放置断点(通过在代码中写入break-point)。

当你运行程序时,最后的断点应该被触发。 (如果没有 - 在您的界面中查找循环/长时间运行的代码。

如果问题出在界面或程序上,就在它的开头下一个断点,一步步看程序是怎么执行的,找到卡住的地方。


您还可以使用 Sandra Rossi 建议的不同方法,并在程序卡住时启动调试器。请记住,这只会在它实际上是一个无限循环时对您有所帮助(它无助于查找错误的选择、错误的配置等)。

为此,请在 1 个会话中启动您的程序,当它卡住时,在另一个会话中打开 SM66 事务。在列表(SM66)中找到您的程序,选择它(通过单击最左侧的列)并选择 Administration -> Program -> Debugging 来自菜单。应该打开一个调试器,并且程序的“当前步骤”应该在你的无限循环中的某个地方(如果有的话)。


由于您没有提供任何代码或任何数据,我假设您可以在找到问题后自行解决问题。

如果这些都不是,请用一些细节更新你的答案,也许你会得到更具体的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    相关资源
    最近更新 更多