点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我在博客中读到了有关如何在For循环迭代中使用并行游标填充内部表的信息。 在下面共享示例代码。
*使用"平行游标"基于EKKO,EKPO,MAKT和T001W的数据填充最终表 DATA(lt_final)= VALUE ty_t_final(FOR ls_ekpo IN lt_ekpo FOR ls_ekko IN lt_ekko从line_index(lt_ekko [ebeln = ls_ekpo-ebeln]) 在哪里(ebeln = ls_ekpo-ebeln) FOR ls_makt IN lt_makt从line_index(lt_makt [matnr = ls_ekpo-matnr]) 在哪里(matnr = ls_ekpo-matnr) FOR ls_t001w IN lt_t001w从line_index(lt_t001w [werks = ls_ekpo-werks]) 在哪里(werks = ls_ekpo-werks) LET ls_final = VALUE ty_final( lifnr = ls_ekko-lifnr maktx = ls_makt-maktx name1 = ls_t001w-name1) IN(对应#(BASE(ls_final)ls_ekpo)))。
将其与传统的并行游标方法进行比较时,在读取与键匹配的行的表格后进入ITAB2的循环时,我们将检查键,如果不匹配则退出循环。 但是在上面的共享代码中,我们正在使用匹配键扫描循环中的所有记录。 如果不匹配,是否可以像退出循环那样受到限制?这会产生什么影响?
所有建议的解决方案(请参阅问题注释)表明,使用构造函数表达式执行并行游标没有任何好处,而不会过多混淆目标。
Quynh Doan Manh 实际上,它不再是"并行游标",因为您在每个循环中都进行了二进制搜索,因此性能要慢得多。 为了验证这一点,我在您的解决方案下进行了转换,使其适合我之前发布的完整可验证示例,以便可以进行比较(我得到了x4的差)。
NB:您的代码向左 通过UNTIL进行外部联接,您可以改为使用WHILE将其更改为内部联接。
感谢您的宝贵反馈和努力! 由于标题与我的下一个问题匹配,请在此处发布。
我正在尝试调试FOR迭代。 我看到了一个博客,其中使用了调试器模式下的STEP SIZE。 但是我不能确切地看到使用它的每次迭代的结果。
您能指导如何调试迭代吗? TIA
Meera K 请提出一个新问题。
请不要将其命名为"我当前的问题",并在那里询问您以后的所有问题;-)
一周热门 更多>