Полностью отклонить событие GET в abap - PullRequest
0 голосов
/ 15 апреля 2019

Я хотел бы знать, сколько раз событие GET происходило бы без фактического вызова (или вызова только один раз).

К настоящему времени я знаю, какполучить общее количество итераций: lines( (ldb_include)node_table[] ), но это работает только в том случае, если был вызван GET, и если был вызван GET, он будет выполнять итерацию по таблице node_table, и если в ней содержится 8798237 записей, все они будутPUT, но так как у меня уже есть количество итераций (это все, что мне нужно), я не хочу, чтобы все значения были помещены.

Я могу оставить GET, используя 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 и пропускающий все остальные.

1 Ответ

4 голосов
/ 16 апреля 2019

Это все равно что сказать, что есть представление базы данных со связанными таблицами, но одна таблица не нужна, как заставить программу читать представление, но сказать базе данных не читать одну таблицу ...

Невозможно!

Единственное решение - скопировать и адаптировать Логическая база данных . Так просто.

И, конечно же, логические базы данных давно устарели, поэтому предпочтительнее использовать объединение баз данных или что-нибудь еще лучше.

...