首页 > 解决方案 > 完全拒绝abap中的GET事件

问题描述

我想知道GET事件会发生多少次而不实际调用它(或只调用一次)。

到目前为止,我知道如何获得总迭代次数:lines( (ldb_include)node_table[] ),但这仅在已调用时才有效GET,并且如果GET已调用,它将遍历 node_table 并且如果它有 8798237 个条目,它们都将是PUT,但是因为我已经有了迭代次数(这就是我所需要的),所以我不想放置所有值。

我可以GET通过 using离开REJECT,但它只会进入下一次迭代......目前,我不知道如何完全退出 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 并跳过所有其他的。

标签: abap

解决方案


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

不可能的!

唯一的解决方案是复制和调整逻辑数据库。就如此容易。

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


推荐阅读