Как выбрать строки таблицы одну за другой? - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть таблица, содержащая 'n' строк со строками. Я должен выбрать одну строку и использовать значение внутри нее для моего метода в качестве входных данных, как только мой метод обрабатывает строку, я должен выбрать следующую строку и делать то же самое, пока не будет обработана каждая строка моей таблицы, все результаты будут иметь быть экспортированным в таблицу.

Я пытался использовать цикл while для увеличения номера строки 'n', и в каждом цикле он должен занимать строку 'n', но я не знаю, как использовать оператор SELECT для этой части.

Как я мог это сделать?

Ответы [ 2 ]

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

Вы должны использовать SELECT ... INTO TABLE, затем LOOP для этого

Например

SELECT vbeln, vbelp, ebeln, ebelp
    FROM ekkn
    WHERE vbeln = @ls_lips-vgbel
      AND vbelp = @ls_lips-vgpos
    INTO @DATA(lt_ekkn).
LOOP AT lt_ekkn ASSIGNING FIELD-SYMBOL(<fs_ekkn>).
  CALL METHOD cl_class=>do_something
      EXPORTING
        some_input = <fs_ekkn>-ebeln
      IMPORTING
        some_output = value. 
ENDLOOP.
1 голос
/ 17 апреля 2019

вы можете использовать «SELECT ... вызов метода (). ENDSELECT.»Для этого ...

Например

SELECT VBELN from VBAK into lv_vbeln where VBAK = '001'.
call method print_vbeln(lv_vbeln).
ENDSELECT.

Он будет вызывать метод для каждого документа.

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

...