问题描述
使用7.40语法是否还有更好的方法?由于正在使用范围表,因此无法使用READ语句。
lr_vstel = VALUE #( sign = 'I' option = 'EQ'
( low = '5161' ) ( low = '5361' ) ).
lr_lgort = VALUE #( sign = 'I' option = 'EQ'
( low = '4004' ) ( low = '9013' )
( low = '9014' ) ).
LOOP AT xvbap(] ASSIGNING FIELD-SYMBOL (<lfs_vbap>)
WHERE
werks = '5161'
AND vstel IN Ir_vstel
AND lgort NOT IN lr_lgort.
LOOP AT xlips[] ASSIGNING FIELD-SYMBOL(<lfs_lips>)
WHERE
posnr = <lfs_vbap>-posnr
AND vtweg = '20'
AND lgort NOT IN lr_lgort.
MESSAGE |Storage location { <lfs_lips>-lgort } is not allowed|
TYPE 'E'.
EXIT.
ENDLOOP.
ENDLOOP.
我想避免使用7.40语法的循环。
解决方法
是的,还有其他方法,但是老实说,您的解决方案看起来可以接受。
如果要获得其他建议,则应该在要改进的方面更加精确:可读性?性能?选择标准是否灵活?
然后,您还应该提供示例数据并更好地定义附带条件,例如,您的范围是否还需要涵盖更复杂的情况(例如,排除条目),或者接受低端和高端的真实范围,以及是否会可以修改内部表的内容。