点击蓝字 关注我们
一
前言
因为标准事务代码SM36调度的后台作业功能相对比较简单.项目中需要针对后台作业做很多特殊的处理,这些处理有些可以通过标准功能实现, 有些无法通过标准功能实现.
为了简化后台作业的定义及丰富后台作业的控制,开发了这个后台作业二次调度程序
ZBC_IF_JOB_SCHEDULE
本文给出了增强后台作业调度的几个配置场景及示例.
详细参数设置无峰,公众号:ABAP 技巧与实战SAP工具箱 增强后台作业调度程序详解(一)
二
场景及示例
列举出了如下场景
一个作业定义多个步骤
带有通配符号的变式在一个作业中
定义程序的并发作业
定义多变式的并发
按天定义的作业
控制指定时间段不执行作业
01
一个作业定义多个步骤
示例场景是一个主数据下传场景,需要优先下传主数据部分,然后下传商品的不同视图信息, 最后下传各种列表.
这些JOB编号有一个共同的作业名称ZIF_MD205.有相同的作业间隔期间. 同时设置了步骤顺序.
个别步骤之间有等待时间,通过程序 ZBC_JOB_WAIT 实现等待.
在SM37中查看作业细节时可以看到这些等待步骤.
02
带有通配符号的变式在一个作业中
变式中维护通配符号,并且通过变式处理方式在一个作业的实现多个步骤.
示例是处理系统后台开票程序.开票程序中只能限定一个销售组织. 所以要为每一个销售组织都创建一个变式,这些变式都以VF06开头.
后台调度配置表中变式维护VF06* .同时定义变式处理方式A . 这样每个VF06*开头的变式都会创建一个步骤.
变式允许的输入方式
程序的多个变式
SM37中看到的作业详情
03
定义程序的并发作业
示例是交货单过账程序.
在一个运行周期无法处理完所有需要自动过账的交货单.
所以为该JOB编号定义了并发处理. 并发10个作业处理. 同时传递选择参数S_VBELN到并发调度程序ZBC_MULTI_JOB_ALL.
SM37中可以看到具体的并发作业. 这些并发作业都是由作业ZA_DN_POST_MULTI再次调度而来 并发作业命名用原程序_<时间>_<尾号开始>_<尾号截至>.
因为定义了10个并发 所以依次处理 00_09 10_19 .....90_99 的尾号.
04
定义多变式的并发
程序ZA_DN_POST创建了多个以BGRUN开头的变式.作业中定义变式 BGRUN* 变式处理方式B(多个作业执行). 这样也可以实现作业的并发执行. 并发通过变式中限定的条件实现.
SM37中可以看到最终生成的三个作业 作业名 = <原作业名>_<变式名>
相比定义程序的并发作业. 这种方式需要创建若干个变式,好处是可以随意区分间隔.
05
按天定义的作业
给出作业周期为86400秒,同时限定作业执行的时间范围. 计算作业的执行会在间隔期间修正. 避免作业因为延迟的原因. 导致某天没有执行.
06
指定时间段不执行作业
传输请求时,如果传输的请求包含重要信息的改变,比如表结构调整. 此时如果后台还在执行创建单据的动作. 则后台作业会大量报错 "版本不一致",该错误在ST22中可以查看到.
为了避免这种报错. 给出一个空挡期不执行后台作业, 每天在此空挡期才传输请求.
下图中给出了11:30 - 12:00 的空档期. 在此期间将没有作业执行,可以用来传输请求.
三
总结
ZBC_IF_JOB_SCHEDULE用于增强调度后台作业. 在标准调度基础上添加了很多实用功能. 管理人员可以通过SE16N维护表ZTIF002BJ,实现批量维护,调整后台作业.
在项目实践中,极大简化了的作业的定义,调整过程.并附加了很多实用功能.用于定义更复杂的作业.
关于新版的下载: 旧版已经可以完成大部分功能了.如需新版,可以打赏后文章向作者索取.
THE
END