调试后台作业(一步)和调试程序有什么区别?

What is the difference between debugging a background job (with one step) and debugging a program?

我有一个只有一个步骤的后台作业。我想调试那个作业,所以我在 SM37 事务中使用了 'JDBG' 命令。

当我这样做时,作业再次运行,更新数据库表。

那么,在这种情况下,SM37调试后台作业和运行有断点的程序有什么区别呢? (除了SY-BATCH系统变量,与本例无关)

我想在生产系统中调试后台作业,但使用 JDBG 方法似乎没有帮助。

无法简单地调试后台作业。它们在预定的时间开始,而不是交互地开始,通常由不同的用户 运行,例如 RFCREMOTE,具有 sy-batch = 'X' 之类的系统设置,并且无权访问 SAP GUI。在处于后台模式的 运行 程序中设置断点根本不会执行任何操作。

JDBG 模拟后台作业调度程序启动程序时发生的情况。 It effectively runs a copy of the program, not the original program itself. 如果该程序不关心批处理设置和用户,这可能与 运行 交互式地运行该程序没有什么不同。

JDBG 因此尤其不能使您 "hook into" 已经在生产系统中安排的作业。

您可以使用事务 SM50 - 流程概览。 SM50用于监控和管理工作流程。

通过Administration->Program->Debugging可以调试在选择的工作进程中执行的程序。