Lerne und übe ABAP – Interne Tabelle Kombination

Verbessere Deine ABAP-Fähigkeiten durch praktische Übungen. Dieser Artikel bietet eine Anleitung zur Kombination von Daten aus zwei internen Tabellen mithilfe der ABAP-Übung „ITAB Combination“. Entdecke weitere 40 tolle ABAP-Übungen auf exercism. Versuche sie entweder direkt in Deinem SAP-System oder melde Dich auf der Plattform an und absolviere die Übungen kostenlos. Weitere Informationen zu internen Tabellen findest Du auf help.sap.com.

Aufgabenstellung

Lerne, wie man Daten aus zwei verschiedenen internen Tabellen in einer internen Ergebnistabelle kombiniert.

Deine Klasse erhält zwei interne Tabellen, die zwei völlig unterschiedliche Datensätze enthalten, ALPHAS und NUMS.

TYPES: BEGIN OF alphatab_type,
         cola TYPE string,
         colb TYPE string,
         colc TYPE string,
       END OF alphatab_type.
TYPES: alphas TYPE STANDARD TABLE OF alphatab_type.
TYPES: BEGIN OF numtab_type,
         col1 TYPE string,
         col2 TYPE string,
         col3 TYPE string,
       END OF numtab_type.
TYPES: nums TYPE STANDARD TABLE OF numtab_type.

Die Daten in der Tabelle ALPHA sehen wie folgt aus.

COLACOLBCOLC
ABC
DEF
GHI

Die Daten in der Tabelle NUMS sehen wie folgt aus.

COL1COL2COL3
123
456
789

Deine Aufgabe ist es, eine interne Tabelle mit Datensätzen zurückzugeben, die die Werte jeder Zelle der internen Tabelle ALPHAS und der internen Tabelle NUMS miteinander kombinieren. Zum Beispiel soll der Wert der ersten Spalte der ersten Zeile der internen Tabelle COMBINED_DATA „A1“ sein.

Die erwartete Rückgabetabelle hat die folgende Definition:

TYPES: BEGIN OF combined_data_type,
         colx TYPE string,
         coly TYPE string,
         colz TYPE string,
       END OF combined_data_type.
TYPES: combined_data TYPE STANDARD TABLE OF combined_data_type WITH EMPTY KEY.

Es gibt viele Möglichkeiten, diese Aufgabe in ABAP zu lösen. Wie effizient kannst du die Aufgabe lösen?

Beispiel Programmierung

CLASS zcl_itab_combination DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.

    TYPES: BEGIN OF alphatab_type,
             cola TYPE string,
             colb TYPE string,
             colc TYPE string,
           END OF alphatab_type.
    TYPES alphas TYPE STANDARD TABLE OF alphatab_type.

    TYPES: BEGIN OF numtab_type,
             col1 TYPE string,
             col2 TYPE string,
             col3 TYPE string,
           END OF numtab_type.
    TYPES nums TYPE STANDARD TABLE OF numtab_type.

    TYPES: BEGIN OF combined_data_type,
             colx TYPE string,
             coly TYPE string,
             colz TYPE string,
           END OF combined_data_type.
    TYPES combined_data TYPE STANDARD TABLE OF combined_data_type WITH EMPTY KEY.

    METHODS perform_combination
      IMPORTING
        alphas             TYPE alphas
        nums               TYPE nums
      RETURNING
        VALUE(combined_data) TYPE combined_data.

  PROTECTED SECTION.
  PRIVATE SECTION.


ENDCLASS.

CLASS zcl_itab_combination IMPLEMENTATION.

  METHOD perform_combination.
    data(lv_lines) = lines( alphas ).
    data(lv_index) = 1.
    DO lv_lines TIMES.
      combined_data = value #( BASE combined_data 
                              ( colx = |{ alphas[ lv_index ]-COLA }{ nums[ lv_index ]-COL1 }| 
                                coly = |{ alphas[ lv_index ]-COLB }{ nums[ lv_index ]-COL2 }| 
                                colz = |{ alphas[ lv_index ]-COLC }{ nums[ lv_index ]-COL3 }|) ).
      lv_index = lv_index + 1.
    ENDDO.
  ENDMETHOD.

ENDCLASS.

Erklärung

Die Methode perform_combination nimmt zwei interne Tabellen, alphas und nums, und kombiniert sie.

  • Die Variable lv_lines wird auf die Anzahl der Zeilen von alphas gesetzt.
  • Die Variable lv_index wird auf den Wert 1 gesetzt.

Innerhalb einer Schleife, die so oft durchlaufen wird, wie lv_lines definiert ist, werden Schritte ausgeführt, um die Daten aus alphas und nums zu kombinieren.

  • Die Variable combined_data wird auf eine neue interne Tabelle gesetzt, die aus den Werten von COLA, COL1, COLB, COL2, COLC und COL3 aus alphas und nums gebildet wird.
  • lv_index wird um 1 erhöht, um den nächsten Eintrag in alphas und nums zu verarbeiten.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar