彻底拒绝GET事件

时间:2019-04-15 20:05:18

标签: sap 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,而跳过所有其他GET。

1 个答案:

答案 0 :(得分:4)

这就像说存在一个带有联接表的数据库视图,但是不需要一个表,如何使程序读取视图但告诉数据库不读取一个表...

不可能!

唯一的解决方案是复制和修改Logical Database。就这么简单。

当然,逻辑数据库很长一段时间都已过时,因此更喜欢使用数据库联接或其他更好的方法。