SAPSQL_IN_ITAB_ILLEGAL_OPTION dump

77 阅读1分钟

Created by Jerry Wang, last modified on Mar 31, 2014

这个runtime error的意思是NM( not empty )被不正确的传入了OPEN SQL的IN keyword里。

clipboard1
clipboard2
clipboard3

我们可以发现domain BAPIOPTION的value range里是不包含NM的。
clipboard4
如果直接在UI上给OBJECT_FAMILY指定NM的search attribute:
clipboard7
clipboard5
点search button后,callstack如下:
clipboard8
clipboard6
在这里会将NM转换成EQ *:
clipboard9

并写回query service的search parameter:

clipboard10
这样最后传入到底层API 的option就为IN keyword支持的EQ,而不是NM。

如果直接在代码里手动call search button的event handler EH_ONSEARCH,框架的ADJUST_CRITERIA_UI2CONTEXT将不会被call到,因此会出现开头的dump。