调试后台作业(一步)和调试程序有什么区别?
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可以调试在选择的工作进程中执行的程序。
我有一个只有一个步骤的后台作业。我想调试那个作业,所以我在 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可以调试在选择的工作进程中执行的程序。