SAP ABAP 后台作业JOB

(一)通过ABAP程序,布置后台Job一般步骤:

打开作业队列(JOB_OPEN)

调用(SUBMIT)想在此作业进程中,执行的程序

关闭作业进程(JOB_CLOSE)

    注意点:

函数JOB_OPEN,需要传入Job名字(JOBNAME),函数返回Job编号(JOBCOUNT)

调用(SUBMIT)程序时,通过(VIA JOB)和(NUMBER)关键字,告诉系统在哪个Job下执行此程序

关闭Job时,函数JOB_CLOSE需传入Job名字(JOBNAME)和Job编号(JOBCOUNT),告诉系统关闭哪个Job

 

(二)布置Job的起始时间

  正常,我们前台SM36布置Job时,是可以控制Job开始时间的。

  程序里是通过(JOB_CLOSE)的参数来实现的:

参数STRTIMMED = 'X',表示立即执行此Job,默认为空

参数SDLSTRTDT和SDLSTRTTM,可以传入Job执行的日期和时间

 

(三)实现前一个Job执行后,当前Job再执行

  有些业务场景,需要在上一个Job执行完毕或执行成功时,才执行下一个Job。前台SM36是可实现的。

  程序里是通过(JOB_CLOSE)的参数和稍稍改变下步骤来实现:

 

打开(JOB_OPEN)作业A

调用(SUBMIT)想在作业A中执行的程序

打开(JOB_OPEN)作业B,

调用(SUBMIT)想在作业B中执行的程序

关闭作业B(JOB_CLOSE)

关闭作业A(JOB_CLOSE)

  注意点:

步骤3中,作业A与作业B的传入名字(JOBNAME)一定要相同,只是返回的编号(JOBCOUNT)不同

步骤5中,关闭作业B时,需要通过参数(PRED_JOBNAME)和(PRED_JOBCOUNT),告诉系统在作业A执行完毕后,再执行作业B 

                                        参数(PREDJOB_CHECKSTAT)可设置在A执行成功时,才执行B

步骤6中,作业A并不是直接调用(JOB_CLOSE)关闭的,而是中间布置了其他作业B(可以是多个)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjxwf.html