前言
Q: 为什么需要使用「后台作业」?
- 业务需求,需要周期性运行的任务
- 如果一个报表查询时间过长(比如客户服务器配置过于一般,程序代码优化过于 xxx),那么为了保证程序成功跑完,建议让程序在后台(服务器端)跑,然后将结果返回给我们
- etc.
创建作业
「SM36」- 输入「作业名称」

「步骤」- 配置相关信息

完成后,如下图所示:

然后,F3 返回,点击「保存」当前作业

配置作业
这里以每日定时作业为例

配置完成后,「Ctrl + S」保存 即可
查看作业
「SM37」- 填写 & 勾选相关信息,查询即可

PS: 也可以直接在「SM36」页面点击「作业选择」进入查询页面

查询结果,如下图所示:

- 这里我们可以看到作业
ZWMR004_BJ_01对应的状态是 已计划 ,说明我们的作业并没有被 释放(Release) 掉 - 这意味着我们在「配置时间 / 周期 / 保存」操作时出现了问题导致没有释放(只有已释放的作业才能进入后台作业队列,否则毫无意义)
如何释放参见下图即可:点击释放后,我们只需要根据弹出界面提示,进行周期配置并保存即可

这里给大家看一下,在正常的操作流程下,我们直接在「SM36」界面配置完成,并「Ctrl + S」保存后,作业 成功释放 后的消息提示效果

更改 / 删除作业
「选中作业」-「菜单栏」-「更改」/「删除」

注意:「已取消」和「已完成」的作业是 无法进行修改的
调试作业
选中 要调试的后台作业,TCode 输入:JDBG
然后 F7 一直跑,直到看到「熟悉的程序代码」即可自行调试
补充
创建后台作业还可以在程序选择屏幕界面 [ 选择好变式之后 ],选择后台执行,后续步骤相同

如果作业状态为「已取消」,且不是自己手动取消,那么就是 程序内部错误异常

双击当前作业,查看「作业日志」,可以看到错误日志信息,ST22 可以查看具体 DUMP 信息

如何在程序内部判断当前程序是否在进行后台作业?
- 使用系统参数
SY-BATCH判断即可
IF sy-batch = 'X'.
" ...
ENDIF.
本文详细介绍了在SAP系统中如何创建、配置、查看和管理后台作业,包括使用事务代码SM36和SM37进行作业创建与监控,以及如何通过作业状态SY-BATCH判断程序是否在后台运行。此外,还提到了作业调试和错误排查方法,如查看作业日志和DUMP信息。
896

被折叠的 条评论
为什么被折叠?



