昨天自己给自己挖了个坑,然后今天又填上了。
** (1/3)需求: **
有个需求要用到分类和特性的嵌套循环。这个需求中,物料分类=C+物料组。
部分关键代码如下:
TYPES:BEGIN OF ty_character,class TYPE klah-class, "分类编码atnam TYPE cabn-atnam, "特性编码atbez TYPE cabnt-atbez, "特性名称END OF ty_character.DATA: gt_character TYPE SORTED TABLE OF ty_character WITH NON-UNIQUE KEY class atnam.LOOP AT gt_makt INTO DATA(ls_makt)."第一种LV_CLASS的定义方法 DATA(lv_class) = 'C' && ls_makt-matkl. "第二种LV_CLASS的定义方法,进行了类型转换 DATA(lv_class) = CONV klah-class( 'C' && ls_makt-matkl ).
LOOP AT gt_character INTO DATA(ls_character) WHERE class = lv_class....ENDLOOP.ENDLOOP.** ** (2/3) ** 分析: **
第一种写法,在检查时,编译器会报优化警告,如下图:
第二种写法,class和lv_class的类型相同,不再有警告。
性能上,我做了一下测试,同样的数据量,第一种用时3.5秒,第二种用时0.008秒。
数据量越大,性能差距越大。
** ** (3/3) ** 总结: **
内层嵌套循环在使用时,除了尽量使用sorted table外,还要注意where条件 字段类型是否是一致的 !
我的SE38插件工具箱——视频介绍:
** https://www.bilibili.com/video/BV1hP4y1N7Qz/ **
联系286503700获取
> **ABAP文章汇总:**
>
> **https://mp.weixin.qq.com/s/djmMeM0qfDxPPwxbjuJABA**
>
> **Excel文章汇总:**
>
> **https://mp.weixin.qq.com/s/NwJ0SzIrn9hVmaCMo-UYyA**
>
> **网盘永久链接:**
>
> **https://mp.weixin.qq.com/s/f_WwKZdwM-vPEstTjjz_eQ**
**关注公众号,点下方菜单打开上面的链接,更方便哦。**
**笔者微信:** **** **286503700(QQ同号)** ****
**如果喜欢,谢谢转发。**