SAP小技巧 突破后台作业频率限制

前言

标准后台作业定义时,周期值最小设置为1分钟. 意味者最快每分钟调度一次.

当用户提出能否让后台执行的频率更快些, 比如30秒执行一次 . 此时作为一个SAP的拥趸者, 要坚决抵制用户的不良需求. 义正言辞的告诉用户:

  • 作业不需要这么高的频率执行

  • 万一上个作业没完成,下个作业又启动,会带来问题

  • SAP限制最低每分钟执行是有原因的

  • 系统不支持(作为一个成熟的顾问, 这一点要排到最后)

一般情况下,用户会妥协的. 但如果碰到了较劲的用户, 就请他让顾问看见这篇文章

本文主要介绍怎么让后台作业执行周期低于一分钟

ce2fab855c6efeb54af6aa366462d875.png

先看疗效

下图中的作业每秒执行一次

220198561578237ea2771812557cefd7.png

实现步骤

01

创建事件

创建一个后台处理事件(SM62)

edbdf539422f7e8448c34d109931d0e1.png

02

定义作业

定义一个基于事件触发的作业

97740b46e75b6dea205253d65e754686.png

03

触发事件

定时触发事件

定时触发事件有几种方式. 最简单的方式是写一个程序. 程序中执行一个死循环,把该程序定义后台执行.该程序就可以每指定时间间隔触发一次事件 基于该事件的作业就会被执行一次. 

缺点: 这个程序会一直占用一个后台进程.

d443f7edf69aa19c9ab15a5ade4c592c.png

杠精: 但是系统语句wait up to seconds 只能到秒的级别. 如果每半秒就要执行一次作业. 这个方法就不管用呀.

这种情况, 可以通过循环中获取时间戳,在时间戳中计算更精确的间隔 或者使用类cl_abap_timer_manager来管理更精确的时间间隔.

定时触发事件的升级版

通过ABAP守护进程实现

效果如下

指定进程名,时间间隔(毫秒). (后续可以把待触发的事件也放在屏幕上)

通过发送消息给守护进程 (START 启动触发后台作业 STOP 停止触发后台作业) 也能控制后台作业是否定时执行 (后续也可以优化在消息发送中控制作业频率)

执行后,会创建一个ABAP守护进程. 该进程可以通过事务代码SMDAEMON 管理

守护进程可以在指定的时间触发一下事件 ,让后台作业执行

97802e5bf55acfeec57c08bfc80b643c.png

SMDAEMON管理界面

f7c9e87e0c526c7ccf590d2dd44ac014.png

了解更多

测试发现:守护进程中不允许执行submit语句,

守护进程也不支持 call function in backgroup task

ABAP daemon的介绍

https://blogs.sap.com/2018/10/18/abap-daemons-always-available-abap-sessions-to-handle-events/

Abap daemon的示例

https://developers.sap.com/tutorials/abap-connectivity-daemon-simple.html

话题讨论

请点击下面的链接参与话题讨论

【腾讯文档】ABAP守护进程能做什么

https://docs.qq.com/sheet/DZVhrSFF0TVlFWnVl?tab=BB08J2

ABAP守护进程能做什么

https://docs.qq.com/sheet/DZVhrSFF0TVlFWnVl?tab=BB08J2

总结

更快频率的后台作业在项目中,并没有太多实际的作用. 但是通过对这个问题的思考与尝试,可以了解更多SAP的后台机制

  • 事件触发

  • 守护进程

  • 定时器

所以,当业务人员提出一个问题时, 不管这个问题看起来多愚蠢,多不可思议. 都不妨碍我们就这个问题展开思考一下, 或者转问一下AI .

在人工智能时代,提问也是个人综合能力的体现.

守护进程触发作业执行程序

ZBC_IF_JOB_SCHEDULE(增强后台作业管理),可以带给后台作业处理更多的可能性

增强后台作业管理详见

无峰,公众号:ABAP 技巧与实战SAP工具箱 增强后台作业调度程序详解(一)

详见

无峰,公众号:ABAP 技巧与实战SAP工具箱 增强后台作业调度程序详解(二)

​​

THE

END

约定

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

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

请微信联系管理员: 

syjf1976 

sharry_xlp  

Yannick_Duan 

申请进入公众号讨论群提问或者参与话题讨论

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值