2016-05-16 2 views
0

Я застрял в кодировании запроса SAP. Я новичок в ABAP.SAP-запрос. Извлечение значений на основе ввода на экране выбора

То, что я хотел бы достичь, - это соединение между таблицами ESLL, EKPO, EKKO. Конкретно эти шаги я хотел бы достичь:

  1. в параметре выбора каждый раз, когда я ввести запрос я дать различное значение для ESLL-EXTSRVNO;
  2. исходя из этого значения, запрос автоматически должен выбрать ESLL-PACKNO на основе ESLL-EXTSRVNO;
  3. , тогда запрос должен поставить ESLL-SUB_PACKNO равным значениям ESLL-PACKNO шагов, предшествующих;
  4. тогда запрос должен установить новые значения 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 -> ЭККО-EBELN

в то конец я хотел бы, чтобы отобразить эти данные:

  1. Ekpo-EBELN
  2. Ekpo-EBELP
  3. Ekpo-MATKL
  4. ЭККО-BSART
  5. Ekpo-PACKNO

Не могли бы вы мне помочь?

+1

В этом состоянии, вопрос является слишком широким, чтобы ответить здесь. Похоже, вам нужно серьезное обучение, которое не должно быть снисходительным, но, вероятно, действительно лучшим путем для вас.В вашей попытке есть несколько серьезных проблем (отсутствует условие WHERE для первого выбора, чрезмерное использование FAE, отсутствие соединений, отсутствие видимого подхода к выходу). – vwegert

+0

Почему вы не используете SQL-соединения? Вы тоже знакомы с SQL? – Jagger

+0

Привет всем, не могли бы вы исправить меня код? Я сказал, что я новичок в ABAP ... Я только что попросил о помощи ... – hammerman

ответ

1

Одним из вариантов может быть использование псевдонима таблицы в вашем Infoset, что-то вроде этого:

  • Первая таблица: ESLL;
  • Вторая таблица ZESLL (Alias ​​on ESLL) с объединением ZESLL-PACKNO = ESLL-SUB_PACKNO;
  • Третья таблица: EKPO с присоединением к EKPO-PACKNO = ZESLL-PACKNO;
  • Четвертая таблица: EKKO с присоединением к EBELN;

Таким образом, вы можете избежать ABAP

Infoset Join

+0

спасибо, вы решили мою проблему – hammerman

Смежные вопросы