美文网首页SAPSAP札记
ABAP内表在ABAP 740后支持的filter操作

ABAP内表在ABAP 740后支持的filter操作

作者: 华山令狐冲 | 来源:发表于2020-04-23 22:21 被阅读0次

ABAP内表和Java的Array一样,都是面向过程编程时代的产物。最近Jerry手头的工作,经常需要和Java Array对象化之后的集合类型和Java 8推出的流式API打交道。图一这种filter操作ABAP内表无法支持,但ABAP 740后新增了一个FILTER关键字。

图1的Java流的filter操作,传入一个Lambda函数,该函数是一个Java标准类型的Predicate,返回布尔值。filter方法像一个漏斗一样,对集合里的每一个元素施加这个Predicate函数,结果返回true的元素会存放到新生成的集合容器里。图1的Lambda函数的逻辑即比较集合内元素代表的时间值是否早于当前时间转换成UTC后的时间。

再看看ABAP内表支持的FILTER关键字。还是以ABAP开发人员喜闻乐见的SPFLI为例,在740之前,如果想从内表里提取出部分满足WHERE条件的部分记录,必须要用图2的LOOP操作。

740之后,用FILTER就简洁多了,如图3:

如果想支持多个过滤条件也是可以的,把过滤条件维护在一张过滤表里即可,如图4:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":


相关文章

网友评论

    本文标题:ABAP内表在ABAP 740后支持的filter操作

    本文链接:https://www.haomeiwen.com/subject/mizzihtx.html