2016-05-16 18 views
0

Ich bin fest mit der Codierung einer SAP-Abfrage .. Ich bin neu in ABAP.SAP-Abfrage. Abrufen von Werten basierend auf der Eingabe auf dem Selektionsbildschirm

Was ich erreichen möchte, ist eine Verbindung zwischen Tabellen ESLL, EKPO, EKKO. Insbesondere sind dies die Schritte Ich mag würde erreichen:

  1. in dem Auswahlparameter werde ich die Abfrage eingeben jedes Mal werde ich einen anderen Wert für ESLL-EXTSRVNO geben;
  2. basierend auf diesem Wert sollte die Abfrage automatisch ESLL-PACKNO basierend auf ESLL-EXTSRVNO auswählen;
  3. dann sollte die Abfrage ESLL-SUB_PACKNO gleich zu den ESLL-PACKNO-Werten der vorherigen Schritte setzen;
  4. dann sollte die Abfrage die neuen ESLL-PACKNO-Werte gleich EKPO-PACKNO setzen und die folgenden Felder abrufen: EKPO-EBELN, EKPO-EBELP, EKPO-MATKL.

Ich habe bereits einige Code in das Infoset geschrieben, aber ich weiß nicht, wie es zu beheben ist.

In den "Daten" habe ich geschrieben:

DATA: it_esll TYPE TABLE OF esll. 
DATA: it_esll2 TYPE TABLE OF esll. 
DATA: it_ekpo TYPE TABLE OF ekpo. 

In dem "Start-of-selection" Abschnitt habe ich geschrieben:

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. 

Und um alle anzuzeigen die Informationen, die ich will, habe ich die folgenden Joins gesetzt: ESLL-PACKNO -> EKPO-PACKNO -> EKPO-EBELN -> EKKO-EBELN

Am Ende möchte ich diese Informationen anzeigen:

  1. EKPO-EBELN
  2. EKPO-EBELP
  3. EKPO-MATKL
  4. EKKO-BSART
  5. EKPO-PACKNO

Könnten Sie mir bitte helfen?

+1

In diesem Zustand ist die Frage viel zu breit hier beantwortet werden. Es sieht so aus, als ob du ernsthaftes Training brauchst - was nicht herablassend sein soll, aber wahrscheinlich der beste Weg, um dich zu erreichen.Es gibt mehrere schwerwiegende Probleme bei Ihrem Versuch (fehlende WHERE-Bedingung für die erste Auswahl, übermäßige Verwendung von FAE, keine Joins, keine offensichtliche Vorgehensweise bei der Ausgabe). – vwegert

+0

Warum verwenden Sie keine SQL-Joins? Sind Sie auch neu in SQL? – Jagger

+0

Hallo allerseits, könntest du mir bitte den Code korrigieren? Ich habe gesagt, dass ich ABAP neu bin ... Ich habe nur um Hilfe gebeten ... – hammerman

Antwort

1

Eine Option könnte sein Alias-Tabelle zu verwenden, in Ihrem infoset, etwa so:

  • Erste Tabelle: ESLL;
  • Zweite Tabelle ZESLL (Alias ​​auf ESLL) mit Join ZESLL-PACKNO = ESLL-SUB_PACKNO;
  • Dritte Tabelle: EKPO mit verbinden auf EKPO-PACKNO = ZESLL-PACKNO;
  • Vierte Tabelle: EKKO mit beitreten auf EBELN;

So können Sie ABAP vermeiden

Infoset Join

+0

danke, du hast mein Problem gelöst – hammerman