SAP工具箱之 快速调度并发后台作业

点击蓝字 关注我们

问题说明

为了说明清楚. 我们先假定有一个交货单自动过账的程序需要后台调度.

该程序每10分钟执行一次.

业务量不大的时候, 10分钟产生的交货单.一个进程足以处理完成. 但是当业务量增大. 10分钟产生的交货单,一个进程已经不足以完成所有的处理.

此时业务表现就是出现交货单积压. 大量应该自动过账的交货单无法及时过账. 影响库存的准确.

解决方案:

方案一: 调整程序,允许程序并发处理.

普通程序调整为可以并发处理的程序不是一个简单的过程, 可能对程序结构有比较大的改变.改变的方法不是本文论述的主题. 就不展开说明了. 后续有机会再专门写文介绍.

方案二: 改变后台调度策略.

一般情况下, 都建议把单号作为选择条件. 如果没有该选择条件, 请务必加上.

定义作业的时候. 可以把单号的尾数作为区分隔离选择的条件.

比如,定义10个作业,

可以用    *0, *1 , *2, *3 ... *9来区分每个作业的单据选择. 这样很方便的就定义了10个并发执行的后台作业. 这些作业彼此取数不冲突. 各自负责一部分单据的过账动作.

以此类推, 如果要定义100个作业.

可以用 *00, *01,...*99 来定义. 只是定义起来比较麻烦.

开发的执念

SPRING

所有手工操作麻烦的都交给代码完成吧.

当然. 这个方案有个限制: 单号必须是CHAR类型的(绝大部分的SAP单号都是CHAR类型)

工具介绍

本文要介绍的就是一个帮助你定义并发后台作业的小工具:

ZBC_MULTI_JOB_ALL 针对指定程序创建多个后台作业

开发原理就是基于上述方案二中的后台调度策略. 程序中限定了最大100个并发作业. 根据用户限定的作业数,通过单号限制创建不同的后台作业

01

作业数限制

02

选择字段

输入程序后, 可以通过搜索帮助输入选择字段.(注意需要选择一个单号字段)

执行时也会检查程序是否存在该选择条件

03

变式

可以选择一个程序的变式,后台执行时使用,需要注意的是: 变式中最好没有单号的限制, 因为后面传递的单号限制会覆盖变式中的单号限制.

执行时也会检查程序是否存在该变式

04

执行结果

执行后, 系统会自动产生多个后台作业.

05

作业变式

每个作业都按照单号限定作为变式

题外话

这样就实现了后台作业的快速并发调度.

推荐你看一下之前介绍的一个调度后台作业的工具的文章.详见链接.

批量后台作业定义和管控

无峰,公众号:ABAP 技巧与实战SAP批量后台作业定义和管控

我已经把这个并发调度整合到了这个工具中. 后续会发出新版的后台作业调度工具. 解决并发调度的问题.

源代码介绍

有了上述介绍, 你是不是已经可以自行开发出来这个并发调度程序了?

或者你也可以付费阅读一下源代码. 在源代码中.

你会了解到并学习以下功能的实现方式:

1. 通过程序获取选择字段及描述

2. 通过程序获取变式及描述

3. 通过程序调度后台作业

4. 选择屏幕自定义搜索帮助

下载链接见文末

关于隐藏代码下载说明: 隐藏代码程序可以执行,但无法查看源码.  可以用来体验程序功能.

程序的安装方式详见链接(付费部分有安装包,也有单独的源码下载)

安装程序

无峰,公众号:ABAP 技巧与实战SAP工具箱之 ABAP安装程序V3.0

约定

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.     

    (如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文

你可能感兴趣的:(SAP工具箱之 快速调度并发后台作业)