1, 问题描述
COPY了其他系统的一段代码到当前程序。在一个abap SQL语句处,用到了IN,但是编译的时候报错,提示如下:
“The IN operator with "S_PROFL" is followed neither by an internal table nor by a value list”
意思是S_PROFL不是一个range。
SQL语句:
1 2 3 4 5 6 |
CLEAR tcj41. SELECT bukrs profidproj INTO (tcj41-bukrs, tcj41-profidproj) FROM tcj41 WHERE profidproj IN s_profl. |
但是 S_PROFL定义了,双击能跳转到选择画面定义处,代码如下:
1 2 3 |
SELECT-OPTIONS: s_profl FOR proj-profl OBLIGATORY MEMORY ID pws, s_fkstl FOR prps-fkstl. |
2, 问题解决
纠结了好久才发现,原来S_PROFL定义在后,SQL语句在前。。。。导致编译不通过。再吐槽一下ABAP编译器,这种情况下为啥能双击变量S_PROFL跳转到定义的地方。。。。直接提示个错误不是更好。。。
以上。
发表评论