Lerne und übe ABAP – Interne Tabelle Grundlagen

Lerne und übe ABAP mit praktischen Übungen auf exercism! Entdecke 40 unterhaltsame Übungen, die dir helfen, das Konzept der internen Tabellen zu verstehen. Von Einsteigeraufgaben bis hin zu fortgeschrittenen Übungen in den Schwierigkeitsstufen leicht und mittel ist alles dabei. Melde Dich jetzt kostenlos auf der Plattform an und beginne Deine ABAP-Reise.

In diesem Artikel möchte ich Dir eine spezielle ABAP-Übung vorstellen: „ITAB Basics“. Hier lernst Du die grundlegenden Konzepte interner Tabellen kennen und kannst Dein Wissen gleich anwenden.

Mehr zu internen Tabellen kannst Du unter help.sap.com nachlesen.

Schritt 1

Aufgabenstellung

Lerne die Grundlagen der internen ABAP-Tabellen kennen.

Deine Klasse hat eine interne Tabelle namens initial_data. Sie hat drei Spalten: GROUP, NUMBER und DESCRIPTION.

TYPES group TYPE c LENGTH 1.
TYPES: BEGIN OF initial_type,
         group       TYPE group,
         number      TYPE i,
         description TYPE string,
       END OF initial_type,
       initial_data TYPE STANDARD TABLE OF initial_type WITH EMPTY KEY.

Deine erste Aufgabe besteht darin, die Methode fill_itab zu vervollständigen und 6 Datensätze mit den folgenden Werten in diese Tabelle einzugeben:

GruppeNummerBeschreibung
A10Group A-2
B5Group B
A6Group A-1
C22Group C-1
A13Group A-3
C500Group C-2

Programmierung

  METHOD fill_itab.
    initial_data = VALUE #(
      ( group = 'A' number = 10 description = 'Group A-2' )
      ( group = 'B' number = 5  description = 'Group B' )
      ( group = 'A' number = 6  description = 'Group A-1' )
      ( group = 'C' number = 22 description = 'Group C-1' )
      ( group = 'A' number = 13 description = 'Group A-3' )
      ( group = 'C' number = 500 description = 'Group C-2' )
    ).
  ENDMETHOD.

In diesem Beispiel weist die Methode fill_itab der internen Tabelle initial_data die in der Abfrage angegebenen Werte zu.

Man kann auch die APPEND-Anweisung verwenden, um jeden Datensatz einzeln hinzuzufügen.

Schritt 2

Aufgabenstellung

Als nächstes implementiere die Methode add_to_itab, um einen Datensatz am Ende der internen Tabelle mit folgendem Wert hinzuzufügen:

GruppeNummerBeschreibung
A19Group A-4

Programmierung

Um einen neuen Datensatz an das Ende der internen Tabelle updated_data anzufügen, kannst Du die APPEND-Anweisung verwenden.

  METHOD add_to_itab.
    updated_data = initial_data.
    APPEND VALUE #( group = 'A' number = 19 description = 'Group A-4' ) TO updated_data.
  ENDMETHOD.

Schritt 3

Aufgabenstellung

Nun sortiere die interne Tabelle in der Methode sort_itab mit der Spalte GROUP in alphabetischer Reihenfolge und der Spalte NUMBER in absteigender Reihenfolge.

Programmierung

  METHOD sort_itab.
    updated_data = initial_data.
    SORT updated_data BY group number DESCENDING.
  ENDMETHOD.

Schritt 4

Aufgabenstellung

In der Methode search_itab wird die sortierte Tabelle durchsucht und der Index des Datensatzes zurückgegeben, der in der Spalte NUMBER den Wert 6 hat.

Programmierung

Um die sortierte Tabelle initial_data nach einem Datensatz mit einem NUMBER-Spaltenwert von 6 zu durchsuchen und den Index dieses Datensatzes zurückzugeben, kannst Du die Funktion LINE_INDEX wie folgt verwenden:

  METHOD search_itab.
    DATA(temp_data) = initial_data.
    result_index = LINE_INDEX( temp_data[ number = 6 ] ).
  ENDMETHOD.

Beispiel Programmierung

CLASS zcl_itab_basics DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .


  PUBLIC SECTION.
    TYPES group TYPE c LENGTH 1.
    TYPES: BEGIN OF initial_type,
             group       TYPE group,
             number      TYPE i,
             description TYPE string,
           END OF initial_type,
           itab_data_type TYPE STANDARD TABLE OF initial_type WITH EMPTY KEY.

    METHODS fill_itab
           RETURNING
             VALUE(initial_data) TYPE itab_data_type.

    METHODS add_to_itab
           IMPORTING initial_data TYPE itab_data_type
           RETURNING
            VALUE(updated_data) TYPE itab_data_type.

    METHODS sort_itab
           IMPORTING initial_data TYPE itab_data_type
           RETURNING
            VALUE(updated_data) TYPE itab_data_type.

    METHODS search_itab
           IMPORTING initial_data TYPE itab_data_type
           RETURNING
             VALUE(result_index) TYPE i.

  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_itab_basics IMPLEMENTATION.
  METHOD fill_itab.
    initial_data = VALUE #(
      ( group = 'A' number = 10 description = 'Group A-2' )
      ( group = 'B' number = 5  description = 'Group B' )
      ( group = 'A' number = 6  description = 'Group A-1' )
      ( group = 'C' number = 22 description = 'Group C-1' )
      ( group = 'A' number = 13 description = 'Group A-3' )
      ( group = 'C' number = 500 description = 'Group C-2' )
    ).
  ENDMETHOD.

  METHOD add_to_itab.
    updated_data = initial_data.
    APPEND VALUE #( group = 'A' number = 19 description = 'Group A-4' ) TO updated_data.
  ENDMETHOD.

  METHOD sort_itab.
    updated_data = initial_data.
    SORT updated_data BY group number DESCENDING.
  ENDMETHOD.

  METHOD search_itab.
    DATA(temp_data) = initial_data.
    result_index = LINE_INDEX( temp_data[ number = 6 ] ).
  ENDMETHOD.

ENDCLASS.

Ü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