点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好!
我对乔布斯有疑问。 问题在于,我们的Z报告需要在后台执行。 困难来了,我们必须检查是否有作业正在运行或正在计划中,如果有,则必须在第一个完成时启动第二个后台进程。 我们已经检查过可以处理事件,但是问题是,我们该怎么做? 如果该报告启动了三次,将会发生什么?
我的意思是:
执行报告1->作业1正在运行
执行报告2->在job1运行时,job2必须等待
报告已执行3->由于作业1正在运行,而作业2正在等待,因此必须在最后一个执行......
我们如何征服乔布斯? 创建工作步骤会更好吗? 而我们该怎么做呢?
在此先感谢您的支持。
关于
丽贝卡
如何防止已经在其他地方运行的程序的运行是一个常见问题。 使用一个锁定对象。
使用三个锁定,并对每个报表进行编程,以便在设置了相关锁定的情况下使其不运行。
你好,
存储作业信息的表为TBTCO/TBTCP。
如果程序在后台运行,则可以标识与程序关联的作业并检查状态。 您也有计划的日期/时间。 因此,您可以有一个简单的算法来确保按顺序运行每个作业。
你好Deenseh,
是的,我认为这将是最好的选择...检查报告是否已在后台启动,并且是否正在运行作业(如果存在),请将新的作业设置为第二个要执行的作业...我想 有了日期和时间,便可以解决问题。...我必须在星期一检查此解决方案...。感谢您的帮助,如果可以,我将把您的答案设置为一个好答案。
最诚挚的问候
Rebeca
嗨,
可以从SAP CPS系统中使用作业链,但是如果您没有CPS,请从SM36中检查此简单的作业计划选项 ,这可能会帮助
https://sapyard.com/如何安排依赖于批次的作业-sm36/
谢谢,
Pradeep
# p#Hello Rebeca,
您采用了哪种算法/代码来解决序列请求,并且遇到了哪些错误或问题?
我会在select开头的开始处放置此算法(请封装)
1)检查程序是否在后台运行
如果sy-batch = X
2)检索当前运行/执行的作业编号(lv_jobnub)
调用FM GET_JOB_RUNTIME_INFO
3)检查该程序是否在后台运行任何作业
从表TBTCP中选择作业号,并传递程序名称
然后检查作业是否仍在表TBTCO中运行,字段ENDDATE和EDNTIME为空,并且STATUS = R
您将获得至少一个,因为当前程序在后台运行。
通过SDLSTRTDT和SDLSTRTTM排序以获得最早的作业,即用户首先执行的作业。
如果第一行的工作编号与lv_jobnub相同,则继续执行该过程(这意味着该执行是要处理的工作)
否则,还有其他一些执行在运行,您等待1或2秒钟,然后在DO循环中执行步骤3。
让我知道是否有任何问题。
再次问好,
我们仍然对工作顺序有疑问。 我们正在尝试使用功能模块" Job_close"来计划作业,但是我们遇到的问题是,如果第一个作业是"活动的",那么我们就无法按计划将报告的第二次执行放在何时开始。 第一个结束。
能否请您指导我们如何解决此问题?
问题是:
报告-> Ztest在后台执行
作业1已创建并处于活动状态
两分钟后,另一个用户在后台再次执行报告Ztest
作业2已创建,必须计划到作业1结束。
两分钟后,另一个用户在后台再次执行报告Ztest
创建工作3,并且必须计划到工作1和2结束
有什么主意吗? 有任何线索吗?
致谢
一周热门 更多>