从上一次批处理作业具有运行日期和时间的BKPF表中获取记录

2020-09-06 05:23发布

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

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


我有一个报告程序,它以日期和时间为参数。 我将其安排为批处理作业。 我想使调度动态化,这意味着一旦第一个批处理作业完成,下一次时间程序应使用BKPF表CPUDT和CPUTM的最后一个批处理运行日期和时间的值来运行。 我遇到时间问题,它无法获取所有文档。

方案:假设我昨天晚上9点运行了报表,因此我存储了上次运行的日期和时间。 现在,我将以今天昨天的低值日期和今天今天的高值日期和时间运行昨天的低值(9PM)和高值235959。 今天晚上9点,直到系统时间或235959。但是它的获取记录创建了从晚上9点到235959系统时间的时间。

您能解决我的问题吗? 如何通过考虑时间来获取从晚上9点到今天为止创建的数据。

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

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


我有一个报告程序,它以日期和时间为参数。 我将其安排为批处理作业。 我想使调度动态化,这意味着一旦第一个批处理作业完成,下一次时间程序应使用BKPF表CPUDT和CPUTM的最后一个批处理运行日期和时间的值来运行。 我遇到时间问题,它无法获取所有文档。

方案:假设我昨天晚上9点运行了报表,因此我存储了上次运行的日期和时间。 现在,我将以今天昨天的低值日期和今天今天的高值日期和时间运行昨天的低值(9PM)和高值235959。 今天晚上9点,直到系统时间或235959。但是它的获取记录创建了从晚上9点到235959系统时间的时间。

您能解决我的问题吗? 如何通过考虑时间来获取从晚上9点到今天为止创建的数据。

付费偷看设置
发送
6条回答
奄奄一息的小鱼
1楼-- · 2020-09-06 06:01

有时(...)在时间戳(此处为BPKF-CPUDT,CPUTM)与数据库更新之间存在延迟,因此对于这种报告,我使用了一些安全延迟。

报告的逻辑可以 看起来像

  • 阅读表格TVARVC上次处理的日期/时间(如果找不到,请使用一些初始值)
  • 使用GET TIME计算,处理的新限制,例如 SY-UZEIT减去100万,并减去SY-DATUM(从基准中减去1,如果结果为负,则在uzeit中加上24小时)
  • 提取上次处理的日期/时间(GT)与新处理的日期/时间之间的记录 (LE)
  • 在TVARVC中保存新值
My梦
2楼-- · 2020-09-06 06:13

您是说您有2个这样的选择项:

 S_DATE  :从昨天到今天
 S_TIME:从21:00:00到23:59:59 

,您的SELECT是:

 SELECT * FROM BKPF
 在S_DATE的cpudt
   AND cputm IN S_TIME 

粗暴的香蕉
3楼-- · 2020-09-06 06:13

为什么要使用日期和时间运行。 为什么不存储已读取的文档并在当前运行中从下一个数字开始读取?

太Q了
4楼-- · 2020-09-06 05:55

由于select包含日期和时间,并且当您使用Select-options时,它将用作OR和 这就是为什么它要在9PM之前获取前几天的记录。 因此,您可以执行2个查询(前一天-从低到高,而前一天从下到时间),或者以单个选择获取条目并删除低于前一天的日期和时间的条目。 希望这是您正在寻找的东西!

樱桃小丸子0093
5楼-- · 2020-09-06 06:16

我猜您的查询类似:

 select * from bkpf
 其中(cpudt = sy-datum-1和cputm => 21:00:00)
    或(cpudt = sy-datum和cputm <= 23:59:59)
    或(cpudt = sy-datum和cputm <= sy-zeit)。
代楠1984
6楼-- · 2020-09-06 05:58

因为创建的文档带有时间戳,可以确保为您提供正确的顺序。 我们不知道他使用的数字范围(如果有),也不清楚是否已缓冲。

一周热门 更多>