完全拒绝abap中的GET事件

Completely reject a GET event in abap

我想知道 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,并跳过所有其他的。

这就像说有一个连接了table的数据库视图,但是不需要一个table,如何让程序读取视图但告诉数据库不读取一个table...

不可能!

唯一的解决办法是复制和改编Logical Database。就这么简单。

当然,逻辑数据库已经过时很长时间了,所以更喜欢使用数据库连接,或者其他更好的方法。