点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我知道指令读取表只读取一行,但是如果将其放入循环中,它将读取多行吗?
请参阅下面的代码:
从vbap选择vbpa〜parvw kna1〜kunnr vbap〜netwr vbap〜vbeln上的内部连接vbpa = vbpa〜vbeln vbpa〜kunnr上的内部连接kna1 = kna1〜kunnr 到表gt_local的对应字段中 其中(vbpa〜parvw ='AG')和 s_kunnr中的kna1〜kunnr。 在gt_local循环到gs_local。 将gs_local收集到gt_local2中。 尾环。 选择 * 从vbpa作为内部连接vbap作为b on(a〜vbeln = b〜vbeln) 内部连接vbfa as c on(c〜vbelv = b〜vbeln) 内连接唇为d on(d〜vbeln = c〜vbeln和d〜posnr = c〜posnn) 到表gt_local3的对应字段中 其中(a〜parvw ='WE') 并且c〜vbtyp_n ='J'或c〜vbtyp_n ='R'。 清除gt_local。 清除gs_local。 在gt_local3处循环进入gs_local3,其中vbtyp_n ='J'。 将gs_local3收集到gt_local中。 结束循环。 * 在gt_local2循环到gs_local2。 将sy-tabix移至lv_index。 使用密钥kunnr = gs_local2-kunnr将表gt_local读入gs_local。 gs_local2-lfimg = gs_local-lfimg。 从gs_local2索引lv_index修改gt_local2。 结束循环。 * 清除gt_local。 清除gs_local。 在gt_local3循环到gs_local3,其中vbtyp_n ='R'。 将gs_local3收集到gt_local中。 结束循环。 在gt_local2循环到gs_local2。 将sy-tabix移到idx。 使用密钥kunnr = gs_local2-kunnr将表gt_local读入gs_local。 gs_local2-rfmng = gs_local-rfmng。 从gs_local2索引idx修改gt_local2。 结束循环。
在循环内或循环外使用的读取语句将仅提供1条记录。 读取语句永远不会返回多条记录。
如果要访问多个记录,请进行循环。
此问题的原因是什么? ABAP的语句可以从内部表中读取多行。
您的问题的答案是"也许",因为如果读取条件不变,则可能有一个100000000个循环而仍然可以读取 相同的记录。
编辑了我的问题。
从我的观点来看,除了吓人的命名约定外 视图(G ...代表全局名称,名称为local,local2,local3),这让我很难理解您要实现的目标,我遇到的第一个问题是:您是否在读取和调试上设置了断点
一周热门 更多>