这是优化前的代码,可以看到ServiceRequest.Retrieve在foreach循环里被调用 。
如何优化:
其实在PDI里有提示。在ServiceRequest后面敲个“。”,触发代码自动完成功能,可以看到Retrieve方法有三个重载,这意味着Retrieve的输入参数不同,后台编译生成的ABAP方法也不同。
如何优化:
还是一样的思路:
在line 29声明一个行类型为ID的容器idCollection,然后按照业务逻辑,把需要retrieve的id依次加入这个容器,最后在line 39传一个容器进去。
可以和41行的retrieve比较,这里的retrieve传入的是一个单个的行记录。如果传入参数是一个容器,那么编译出来的ABAP代码执行的是RETRIEVE_MULTIPLE_LINES, 而不是现在在循环里执行retrieve_single.
要获取更多Jerry的原创文章,请关注公众号"汪子熙":