点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我需要编写一个接口来从VBAK表中检索数据。 该界面作为后台作业运行。 根据日期(ERDATE)和时间(ERZET)从VBAK提取数据。 这是我的SELECT语句。
--------------------------------------------------- ------------------------------------
从vbak中选择vbeln erdat kunnr bstnk audat bstdk auart
在表i_vbak
中,其中s_vbeln中的vbeln和s_date中的
erdat以及s_time中的
erzet和s_auart中的
auart 。 >
--------------------------------------------------- ------------------------------------
我们从选择屏幕的s_date和s_time(除了s_auart-订单类型)的选择选项中检索详细信息,以在上面的SELECT中使用。
在较低日期范围内,我们从自定义表中检索值,该表存储了上次运行日期(此界面每小时运行一次)。 在日期的上限范围内,我们传递系统日期(sy-datum)。
--------------------------------------------------- -------------------------------------
s_date-low = gv_date。 " gv_date具有自定义表中的值
s_date-high = sy-datum。
s_date-sign = c_i。
s_date-option ='BT'。
附加s_date。
--------------------------------------------------- -------------------------------------
同样,在较短的时间范围内,我们从自定义表中检索值,该表存储了上次运行时间(此接口每小时运行一次),在较大的时间范围内具有系统时间(sy-uzeit)。
--------------------------------------------------- -------------------------------------
s_time-low = gv_time。" gv_time具有自定义表中的值
s_time-high = sy-uzeit。
s_time-sign = c_i。
s_time-option ='BT'。
追加s_time。
--------------------------------------------------- -------------------------------------
以上解决方案可以正常工作,直到最后一份工作在当天23:00:00运行为止。 但是,当第一个作业在00:00:01开始并且日期更改时,SELECT将失败。 这是因为日期和时间都已更改。 更糟糕的是,随着时间的流逝,"下限变得大于上限"。
类似这样的东西。
s_date-low = 2017/02/01(上次运行日期,来自自定义表)
s_date-high = 2017/02/02(sy-datum(新日期/更改日期))
s_time-low = 23:00:00(上次运行时间,来自自定义表)
s_time-high = 00:00:02(Sy-uzeit(新的/更改的时间))
现在我想知道什么是解决上述情况的最佳解决方案?
非常感谢。
你好
您应该分3个步骤进行操作:
-> 1从日期中选择
-> 2按时间过滤(过去)
@ BertrandDelvallée
非常感谢您的宝贵意见。 将修改我的代码以尝试您的建议。
一周热门 更多>