在ABAP中使用BETWEEN比较TIMS类型时间变量是否存在弊端?
关于Z报表执行时间校验逻辑的疑问
我近期要给Z报表添加执行时间校验逻辑:若执行时间不在两个选择参数指定的时间范围内,则终止执行。目前的实现代码如下:
report ztest. selection-screen begin of block b01 with frame. parameters: zeit_v type tims obligatory, zeit_b type tims obligatory. selection-screen end of block b01. data(local_time) = sy-timlo. if not local_time between zeit_v and zeit_b. return. endif. " run program " ...
和同事讨论后,我不确定这个实现是否正确。之前我会用手动判断语句if local_time >= zeit_v and local_time < zeit_b来实现——手动判断的优势是能通过调整比较运算符灵活处理边界场景,把逻辑控制权留在代码里;而用BETWEEN的话,边界逻辑的维护责任就转移给了选择参数的维护者。
除此之外,有没有其他未考虑到的问题?比如类型比较问题:我了解到TIMS类型基于TIME,而TIME是CHAR6的派生类型。当前环境时区为CET,时间采用24小时制(00:00:00 - 23:59:59)。
内容的提问来源于stack exchange,提问作者Radinator
相关产品推荐
相关产品推荐

