根据并行作业安排后续的后台作业

2020-08-19 02:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我有一个方案,其中要...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我有一个方案,其中要计划作业A和作业B并并行运行。 与基于后台工作流程的作业并行化相似的概念。 现在,我只想在作业A和B都完成之后才运行作业C。 假设工作A和B具有相似的命名约定,但末尾有个计数,例如 Z_BACKGROUND_JOB_1和Z_BACKGROUND_JOB_2。 作业B甚至可能在作业A之前完成,因此它们不能相互依赖,但需要并行。 另外,作业A和作业B是由标准SAP程序自动创建的,因此我们无法控制计划。

我如何在ABAP程序中处理这种情况,以确保仅在并行作业完成后才调度作业C?

5条回答
樱桃小丸子0093
2020-08-19 03:48

要么在第二项工作的另一步中等待第一项工作完成,要么创建第三项工作以等待第一项和第二项工作(或者甚至使第三项工作每20分钟运行一次,然后检查第一项工作) 两个作业都已完成,但是如果作业本身(第三个作业)在前两个作业之后已经运行,则中止,以防万一您不希望作业一直闲置。

请注意,如果某些作业今天开始或结束而其他作业明天开始或结束,则可能会遇到日更改问题,具体取决于您的算法。

这里是 如何通过查找带有报告名称的作业来检查正在运行的作业:

 BP_FIND_JOBS_WITH_PROGRAM"查找指定程序的后台请求

使用此功能模块,您可以找到所有作业 对于当前也已在SM37中列出的报告(+可选的变体和当前状态),因此请注意,在其他应用程序服务器上(对您而言也不重要)在客户端上(也可能只需要过滤客户端上的那些),这取决于

返回的作业列表为您提供了有关这些作业何时开始和停止(如果适用)以及它们当前处于什么状态的非常详细的信息。

如果 您不想弄乱上面函数调用中的状态评估,或者不想将随后的调用减少到您正在识别的作业中 一旦进入上述功能调用,您便可以使用以下函数调用获取特定状态,一旦您从上述函数调用中确定了其任务名称和任务编号:

 SHOW_JOBSTATE"确定任务状态
< p> =>这两个函数调用应该可以解决问题。

但是,如果您需要更多信息,请尝试以下函数调用:

  • GET_JOB_RUNTIME_INFO"读取后台作业运行时数据< br>如果作业需要获取有关其自己的作业运行时信息的信息,则可以使用此函数调用
  • TH_SERVER_LIST(如果需要检查多个应用程序服务器)
  • TH_WPINFO(
    如果不仅要检查作业,还要检查对话进程,则需要此服务器
  • TH_WP_DETAIL_INFO(如果需要,则需要服务器目标)
    这将为您提供帮助 有关正在运行的对话框进程的信息

一周热门 更多>