我想知道GET
事件在没有实际调用(或仅调用一次)的情况下会发生多少次。
现在,我知道如何获得迭代的总数:lines( (ldb_include)node_table[] )
,但这仅在调用了GET
且已经调用GET
的情况下有效,它会通过node_table进行迭代,并且如果它有8798237个条目,它们都将是PUT
,但是由于我已经有了迭代次数(这就是我所需要的全部),所以我不想放置所有值。
我可以使用REJECT
离开GET
,但是它只会进行下一次迭代...目前,我不知道如何完全退出GET。
我尝试使用STOP
,但是它立即引发end-of-selection
事件,这不是主意...
at selection-screen output.
"process the selection screen
start-of-selection.
get <node_tab>
"lv_total = lines( (ldb_include)node_table[] )
"some sort of REJECT to all get events
"continue processing the rest of the code, using the lv_total
end-of-selection.
"display the output
我可以使用
这样的标志来实现if first execution = abap_true. "process it
else reject <node_tab>.
但是,在所有情况下,它都会在所有GET事件中进行迭代,而不是违背该想法。我想了解是否有一个更聪明(可能更优雅)的方法来仅迭代第一个GET,而跳过所有其他GET。
答案 0 :(得分:4)
这就像说存在一个带有联接表的数据库视图,但是不需要一个表,如何使程序读取视图但告诉数据库不读取一个表...
不可能!
唯一的解决方案是复制和修改Logical Database。就这么简单。
当然,逻辑数据库很长一段时间都已过时,因此更喜欢使用数据库联接或其他更好的方法。