数据服务作业服务器多次启动作业

2020-08-15 03:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的 我们遇到了一个非常奇怪...

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

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


亲爱的

我们遇到了一个非常奇怪的问题:

我们使用的是DS 4.2 SP10

使用数据服务计划程序来计划工作

有时候(可能是不同的工作),这些工作开始多次(两次或更多次;有时在几秒钟内,有时在几分钟内),并非每天都会发生,并且在"任务计划程序"中每个计划只有一个任务。

作业有时会失败或成功。 问题是,如果一项工作成功完成并运行了3次,我们得到的行数将增加三倍,这将导致一个巨大的问题。

这是两次连续工作的屏幕截图。

你们中的任何人经历过类似的经历吗?

非常感谢您的帮助,因为这会造成很多痛苦

问候

克里斯

capture.jpg (23.7 kB)
11条回答
Cikesha
2020-08-15 04:03

我放弃了在Data Services配置中寻找解决方案的打算。 我尝试了DSConfig.txt文件中的AW Job Launcher参数,但该参数也不起作用。

"解决方案"是该作业现在检查以查看先前的实例是否已在运行。 我将逻辑封装在一个自定义函数中。 如果函数返回非空值,则该作业的另一个实例已在运行。

变量声明:

$ LV_Run_ID-varchar(20)

$ LV_Job_Name-基于al_history中列的大小的varchar(256)

$ LV_Prior_Run_ID-varchar(20)

可以不使用任何变量来完成此操作,但是在需要调试时可以使用它们。

创建一个数据存储,该数据存储指向作业将用完的本地存储库。 将下面的sql()调用中使用的数据存储名称更改为数据存储的名称。 将文本粘贴到SAP网站中会导致格式错误。 您必须自己调整或从附件中获取文件。 get-job-prior-instance.txt
############################################# ##############################功能:Get_Job_Prior_Instance#日期:2020年3月16日#作者:Jim Egan(ProKarma, Inc.)#用途:查找同一作业的正在运行实例的运行ID,该实例是在该实例之前启动的。 ##修改#日期:#作者:#目的:###################################### ######################################获取此作业实例的元数据$ LV_Run_ID = job_run_id(); $ LV_Job_Name = job_name(); #获取与正在运行的作业名称相同的运行ID(S或SR的状态),并且在过去30秒内已启动。 #如果在此实例之前没有其他作业开始,则返回值为NULL。 #状态S适用于正常启动的作业,SR适用于使用"启用恢复"选项启动的作业。 $ LV_Prior_Run_ID = sql('Runtime_Repo','从AL_HISTORY WHERE OBJECT_KEY <[$ LV_Run_ID] AND SERVICE = {$ LV_Job_Name}和STATUS IN(\'S \',\'SR \')和START_TIME>中选择MAX(OBJECT_KEY) =(SYSDATE-(30/60/60/24))');

返回$ LV_Prior_Run_ID;

我在条件转换中调用上述函数。 如果返回为null,则作业将继续使用位于条件TRUE分支内的常规流。 如果返回的结果不为null,则执行条件语句的FALSE分支,并且我在日志中显示一条消息,指出另一个实例已在运行,该作业将结束而不会引发异常。

一周热门 更多>