SAP-запрос. Получить значения на основе ввода на экране выбора
Я застрял с кодированием запроса SAP.. Я новичок в ABAP.
Чего я хотел бы добиться, так это объединения таблиц ESLL, EKPO, EKKO. Именно эти шаги я бы хотел достичь:
- в параметре выбора каждый раз, когда я буду вводить запрос, я буду давать другое значение для ESLL-EXTSRVNO;
- основываясь на этом значении, запрос автоматически должен выбрать ESLL-PACKNO, исходя из заданного ESLL-EXTSRVNO;
- тогда запрос должен поместить ESLL-SUB_PACKNO равным значениям ESLL-PACKNO предыдущих шагов;
- тогда запрос должен поместить новые значения ESLL-PACKNO равными EKPO-PACKNO и извлечь следующие поля: EKPO-EBELN, EKPO-EBELP, EKPO-MATKL.
Я уже написал некоторый код внутри информационного набора, но я не знаю, как это исправить.
В разделе "данные" я написал:
DATA: it_esll TYPE TABLE OF esll.
DATA: it_esll2 TYPE TABLE OF esll.
DATA: it_ekpo TYPE TABLE OF ekpo.
В разделе "начало выбора" я написал:
SELECT packno
FROM esll
INTO TABLE it_esll.
IF sy-subrc EQ 0.
SELECT packno FROM esll
into TABLE it_esll2
for ALL ENTRIES IN it_esll
where sub_packno EQ it_esll-packno.
IF sy-subrc EQ 0.
SELECT ebeln ebelp bukrs werks matkl menge netpr peinh
FROM ekpo
into TABLE it_ekpo
for ALL ENTRIES IN it_esll2
WHERE packno EQ it_esll2-packno.
endif.
endif.
И, чтобы отобразить всю информацию, которую я хочу, я добавил следующие соединения: ESLL-PACKNO -> EKPO-PACKNO -> EKPO-EBELN -> EKKO-EBELN
В конце я хотел бы отобразить эту информацию:
- Ekpo-EBELN
- Ekpo-EBELP
- Ekpo-MATKL
- ЭККО-BSART
- Ekpo-PACKNO
Не могли бы вы мне помочь?
1 ответ
Решение
Одним из вариантов может быть использование таблицы Alias в вашем информационном наборе, что-то вроде этого:
- Первый стол: ESLL;
- Вторая таблица ZESLL (псевдоним на ESLL) с объединением ZESLL-PACKNO = ESLL-SUB_PACKNO;
- Третья таблица: EKPO с объединением на EKPO-PACKNO = ZESLL-PACKNO;
- Четвертый стол: EKKO с объединением на EBELN;
Таким образом, вы можете избежать ABAP