SAP abap实现JOB,在代码中实现了JOB,但是SM37看也是也是跑完JOB,但是设为JOB的程序却没有实现功能,why?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAP abap实现JOB,在代码中实现了JOB,但是SM37看也是也是跑完JOB,但是设为JOB的程序却没有实现功能,why?相关的知识,希望对你有一定的参考价值。

SAP abap实现JOB,在代码中实现了JOB,但是SM37看也是也是跑完JOB,但是设为JOB的程序里面的功能却没有实现,why?

可能1:你得Batch程序中有Bug,导致程序功能没有实现。如果可能,用跑SM37数据Online跑你的程序,看看问题出现在了那里。
可能2:你的程序本身没有问题,但是在Batch跑的时候由于与Online的运行环境不一样,导致程序功能没有实现。
不过第二个可能的机会较第一个小,请把重点放在第一个可能上。
参考技术A 测试你要跑的job程序,可能是你的程序跑job有问题吧 。 参考技术B job都跑完了,那么完全可以说明程序中是没有任何问题的,至少逻辑上是没有问题的
你拆掉JOB,试试能不能跑出来
参考技术C 可能:是你在程序中加了很多的数据检查,里面用了很多的message提示信息。那如果在这个过程中有 E 类型的提示的时候,那程序就会终止。程序没有执行完job就会结束的。

sap定时job执行时状态已取消啥原因

已取消(Canceled): 作业非正常结束,包括两种情况:

1、管理员通过SM37去主动Cancel相关作业;

2、后台作业对应的程序有错误。

就绪(Ready): 一个Released Job的开始条件(Start condition)已经满足,但是需要等待后台作业机制给这个作业分配工作进程。
激活的(Active): 运行中的作业。运行中的作业不能被修改或者删除。
已完成(Finished): 后台作业中预设的每个步骤(Step)都全部成功完成。
参考技术A sap定时job执行时状态已取消什么原因
Scheduled:已定义program name和variant 但是未定义开始条件如开始日期/结束日期/频率。未定义系统何时执行JOB。
Released:所有JOB定义的必要条件都填完。(release中的Start condition是必要填的)
Ready:所有必要条件都满足,在排队等空进程。
Active: 执行中,此时状态不可改变。
Finished: 成功执行。
Cancelled: 两种可能:管理员强制取消或这个JOB有问题。可以从logs分析。
参考技术B sap定时job执行时状态已取消什么原因
答:SAP Job 状态记录 sap得后台作业的启动方式可以是定时地,也是可以是事件触发的。后台作业里面包含一个或者多个步骤,每一个步骤则包含调用的程序...
SAP后台JOB建立与运用
1. SAP后台JOB相关系统表:TBTC* 主要的有 : TBTCO - 作业状态概述表 TBTCP - 批作业步骤概述
2. JOB的状态: 可以使用系统函数查看 BDL_READ_JOB_STATUS 或者是自己去表 TBTCO 中查找(根据STATUS 字段判断是否完成)。 R 活动的(运行中)
3. JOB日志查看: 系统中的日志好像是没有存放在系统表而是文件中,可以通过函数 BP_JOBLOG_READ 获取,传入JOB名和JOB编号就可以获得日志信息
参考技术C 
zhgq2134
关注
SAP Job 状态记录 原创
2013-07-10 10:15:57
 1点赞

zhgq2134 

码龄13年

关注
sap得后台作业的启动方式可以是定时地,也是可以是事件触发的。后台作业里面包含一个或者多个步骤,每一个步骤则包含调用的程序,外部shell命令以及外部程序,也包含了调用者以及变量,还可以定义打印参数。后台作业的名字往往需要遵循一定的命名规则,用来明确该后台作业的重要程度,启动方式,作用等等。我们往往通过SM36去创建后台作业,(也可以通过SM36去查看SAP标准后台作业),通过SM37去监控和管理后台作业。

后台作业有Scheduled, Released, Ready, Active, Finished, Canceled六种状态。另外还可以指定执行的服务器组(后台job执行的服务器组可以用sm61来配置)。

Scheduled状态的job是创建了但是还没有release,这种状态的job是不会跑的。

Released状态的job在启动条件满足后会启动,

Ready就是启动条件满足后,系统开始为该job分配但尚未分配合适的后台进程的一个中间状态,

Active代表这个job正在运行当中,换言之,其相应的后台进程正在运行job某一个step得程序

Finished代表job得所有step都成功的完成了。

Canceled代表job在某一个step得运行过程中异常中止了。
参考技术D CODE:SM36 定义后台JOB

(1)输入作业名称,作业类(优先级,默认C),状态(默认为:已计划),目标(目标主机,默认当前服务器,可空)。

(2)点击"步骤",进入下一操作界面,输入需要执行的程序名称,以及对应的参数变式(如果有的话)。

(3)点击“检查”,没有错误提示的话,保存即可。保存后生成步骤overview的界面。

(4)点击返回,进入下一操作界面,点击"开始条件",出现设置Job执行时间和周期的界面。

点击"日期/时间",设置:

调度开始的日期和时间,以及截至执行时间(如果有的话);

周期值(如果需要Job定时按固定频率定时执行的话);

(5)点击"检查",没有错误提示的话,点击"保存"即可。

(6)返回到定义job界面,设置假脱机接收者。

(7)点击"保存",系统提示:保存的作业具有状态:已释放。

至此,后台job定义完成。

以上是关于SAP abap实现JOB,在代码中实现了JOB,但是SM37看也是也是跑完JOB,但是设为JOB的程序却没有实现功能,why?的主要内容,如果未能解决你的问题,请参考以下文章

sap定义后台job是用来做啥的。看到很多文档如何操作,打不明白job具体在系统起啥作用

用ABAP实现SM36的设置后台JOB

SAP ABAP 的经常使用debug方式

ABAP 在程序中启动后台JOB

ABAP后台JOB数量控制

sap定时job执行时状态已取消啥原因