ABAP-Programm einfach erklärt

Ein ABAP-Programm oder ABAP-Report ist eines der wichtigsten ABAP-Objekte im gesamten SAP-System. Sowohl in SAP ERP als auch in SAP S/4HANA sind ABAP-Reporte nicht mehr wegzudenken.

In diesem Artikel erläutere ich, was man unter einem Report versteht, wie man ihn erstellt und ausführt.

Was ist ein ABAP-Programm?

Ein ABAP-Programm ist ein ABAP-Objekt. Früher wurde es auch als Report bezeichnet, da Listen in druckbarer Form ausgegeben wurden. Hauptsächlich dienten ABAP-Reports der Verarbeitung und Ausgabe von Listen. Heutzutage sind diese natürlich vielfältiger und interaktiver.

Mit der Transaktion SE38 rufst Du den ABAP Editor auf. In dieser Transaktion kannst Du die wichtigsten Aktionen für die Pflege von ABAP-Programmen ausführen.

Transaktion SE38 - ABAP Editor

Man kann als Einstieg gewisse Selektionskriterien angeben, damit der SAP-Anwender Daten eingibt, auf die das Programm reagiert. Das Ergebnis eines Reports wird lediglich in einem Fenster angezeigt. Dieses Fenster kann natürlich in verschiedenen Bereichen untergliedert werden.

Bei der Ausführung eines Reports werden gewisse Ereignisse durchlaufen. Somit kann man je nach Stand der Ausführung und Benutzerinteraktion unterschiedliche ABAP-Anweisungen angeben.

ABAP-Programme sind heutzutage aus dem SAP-System nicht mehr wegzudenken. Bei der Ausführung eines Transaktionscodes im Kommandofeld wird jedes Mal ein ABAP-Programm ausgeführt. Mit der Transaktion SE93 kannst Du eigenständig herausfinden, welches Programm hinter einem Transaktionscode sich verbirgt. Rufst Du bspw. die Transaktion MIRO auf, wird das Programm SAPLMR1M mit der Dynpronummer 6000 aufgerufen.

Bei der Einrichtung eines Jobs (Transaktion SM36) werden ebenfalls ABAP-Programme verwendet. Somit werden im Hintergrund Programme ausgeführt, um wichtige Tätigkeiten zu absolvieren.

Report-Ereignisse

Im Folgenden werden die Report-Ereignisse aufgelistet.

EreignisBeschreibung
INITIALIZATONBevor das Standardselektionsbild angezeigt wird.
AT SELECTION-SCREENWird nach der Verarbeitung der Benutzereingabe auf dem Selektionsbild ausgelöst. Mit diesem Ereignis wird die Benutzereingabe vor der Ausführung eines Programms überprüft. Nach der Verarbeitung der Benutzereingabe bleibt das Selektionsbild im aktiven Modus.
START-OF-SELECTIONWird erst ausgelöst, wenn die Bearbeitung des Selektionsbildes abgeschlossen ist, d.h. wenn der Benutzer auf dem Selektionsbild das Symbol Ausführen anklickt.
END-OF-SELECTIONWird ausgelöst, nachdem die letzte Anweisung im Ereignis START-OF-SELECTON ausgeführt wurde.
TOP-OF-PAGEAusgelöst durch die erste WRITE-Anweisung, um die Daten auf einer neuen Seite anzuzeigen.
END-OF-PAGEWird ausgelöst, um den Text am Ende einer Seite in einem Bericht anzuzeigen. Beachten Sie, dass dieses Ereignis das letzte Ereignis beim Erstellen eines Berichts ist und mit der LINE-COUNT-Klausel der REPORT-Anweisung kombiniert werden sollte.
AT LINE-SELECTIONWenn der Benutzer den vordefinierten Funktionscode PICK auslöst.
AT USER-COMMANDWenn der Benutzer einen im Programm definierten Funktionscode auslöst.

Selektionskriterien

Typischerweise wird vor AT SELECTION-SCREEN der Selektionsbildschirm mit PARAMETERS und SELECT-OPTIONS definiert. Denn direkt nach der Ausführung des Selektionsbildschirms wird der Ereignisblock nach AT SELECTION-SCREEN ausgeführt.

Mit dem Schlüsselwort PARAMETERS wird ein Eingabefeld erzeugt, mit dem der Benutzer eine Eingabe tätigen kann. Hierbei kann man wie bei der Datendefinition die Variable typisieren. Die Variable bzw. Eingabe des Benutzers ist dann zur Laufzeit im Zugriff.

PARAMETERS sek TYPE i DEFAULT 10 OBLIGATORY. "Pflichtfeld
PARAMETERS geschlec TYPE char255 OBLIGATORY VALUE CHECK. "Nur hinterlegte/gültige Werte werden akzeptiert
PARAMETERS kursti TYPE  char255 DEFAULT 'SAP-Grundlagen' LOWER CASE. "Unterscheidung zwischen Groß- und Kleinschreibung
PARAMETERS vollstli as checkbox. "Parameter als Checkbox
PARAMETERS: initialw RADIOBUTTON GROUP rad1,
            non_sap  RADIOBUTTON GROUP rad1,
            schaltja RADIOBUTTON GROUP rad1. "Radiobutton werden der Gruppe rad1 hinzugefügt

Um mehr als einen Parameter bzw. einen Bereich in einem Wert zu speichern, verwendet man einen SELECT-OPTIONS. SELECT-OPTIONS dient als Selektionstabelle und bildet dabei eine interne Tabelle. Bei diesem Schlüsselwort hat man dabei mehrere Möglichkeiten bzw. Zusätze:

  • SIGN: logische Operand (<, =, >, …)
  • OPTION: Behandlung der Grenzwerte
  • LOW: Untergrenze des Intervalls, bei Einzelwert nur Einzelwert
  • HIGH: Obergrenze, bei Einzelwerten leer
  • NO-EXTENSION: nur eine Zeile kann ausgewählt werden, verhindert Mehrfachselektion
SELECT-OPTIONS gebdat FOR wa_zteilnehmer-geburtstdatum. “Erlaubt Mehrfachselektion
IF wa_zteilnehmer-geburtsdatum IN gebdat.
* Anweisungsblock
ENDIF.

Die Zusätze DEFAULT, OBLIGATORY, LOWER CASE gelten ebenfalls bei SELECT-OPTIONS.

Bei SELECT-OPTIONS hat man sehr viele Gestaltungsmöglichkeiten. Man kann durch BEGIN OF LINE einen Zeilenblock gestalten. Einzelne Zeilen werden mit LINE definiert.

SELECTION-SCREEN BEGIN OF LINE.

Möchte man in einem Block auch eine Beschreibung hinzufügen, eignet sich das Schlüsselwort COMMENT.

SELECTION-SCREEN COMMENT (16) text-005.
SELECTION-SCREEN COMMENT 24(60) text-005. “Text ab Position 24 mit der Länge 60

Bei Verwendung des Zusatzes FOR FIELD wird das Ausgabefeld mit einem über PARAMETERS oder SELECT-OPTIONS definierten Parameter oder Selektionskriterium desselben Programms verknüpft. Dadurch kann man die F1- und F4-Hilfen benutzen.

SELECTION-SCREEN COMMENT (20) text-002 FOR FIELD geschlec. “Text mit Parameter geschlec verknüpfen, erhält unter Umständen F1 und F4 Hilfe

Man kann außerdem den Zeilenblock mit weiteren Schlüsselwörtern gestalten. Mit TITLE fügt man einen Rahmentext und mit “WITH FRAME” einen Rahmen hinzu. Zudem hinaus kann man POSITION für die Positionierung und “BEGIN OF BLOCK” für die Blockdefinition verwenden.

SELECTION-SCREEN POSITION 24. “Position der nächsten Zeile ab 24 starten lassen

SELECTION-SCREEN BEGIN OF BLOCK. 
SELECTION-SCREEN END OF BLOCK.

SELECTION-SCREEN BEGIN OF BLOCK rad1
                          WITH FRAME TITLE title.

Im ABAP-Editor (Transaktion SE38 bzw. SE80) gibt es die Möglichkeit, die Textelemente im Report zu pflegen. Diese Pflege ruft man über “Springen > Textelemente”, die F5-Taste oder den Button “Textelemente” auf.

Textelemente im ABAP Editor angeben
ABAP-Programm Z_MUSTER

Beim ersten Aufruf werden die technischen Namen als Texte angezeigt. Wenn man hingegen die Selektionstexte pflegt (?…) mit einem Wort austauscht, dann werden die gepflegten Texte beim Selektionsbildschirm angezeigt.

Es gibt dabei folgende Textelemente:

  • Textsymbole: anstatt von hart codierten Literalen
    • Konvention bzw. Empfehlung: Beschreibung als Kommentar daneben das Literal in Kommentaren im ABAP-Code!
  • Selektionstexte: anstatt des technischen Namens von Parametern und Selektionstabellen
    • Anlegen:
      • SE38, Report eingeben > Textelement auswählen > Ändern-Button
      • im Quellcode > Springen > Textelemente > Selektionstexte
  • Listüberschriften: Gestaltung von Listköpfen

Für jedes Selektionsbild kann man eine Variante anlegen.

  • SE38 > Programmname > Varianten > Ändern > Anlegen/Anzeigen > Attribute (Variantenattribute anzeigen)
  • Selektionsbild > Springen > Variante > Als Variante sichern/Button “Als Variante sichern”

Man kann dabei den Report mit der angelegten Variante starten:

  • SE38 > Button “Mit Variante”
  • System > Dienste > Reporting > Programmname eingeben > Button “Mit Variante”
  • Selektionsbild aufrufen > Springen > Varianten > Holen

Ein Textsymbol besteht aus “TEXT-” und einer dreistelligen Zahl. Beispiel: TEXT-001. Man kann ein Textelement entweder per Vorwärtsnavigation oder über den Button “Textelemente” anlegen. Dabei klickt man einfach doppelt per Vorwärtsnavigation auf die dreistellige Zahl. Anschließend fragt einen das System, ob man das Textsymbol anlegen möchte, da es noch nicht existiert. Nach dem Speichern sollte man das Aktivieren nicht vergessen.

Wie erstelle ich ein ABAP-Programm?

Mit dem Schlüsselwort REPORT wird ein ABAP-Programm definiert. In der Transaktion SE38 definierst Du ein ABAP-Programm. Zuerst rufst Du die Transaktion SE38 auf, gibst den gewünschten Programmnamen ein und drückst auf den Anlegen-Button.

ABAP-Programm anlegen

Daraufhin erscheint ein Fenster, in dem man die Programmeigenschaften angeben kann. Man gibt mindestens den Titel und den Typ an. Zusätzlich hinaus kann man noch weitere Einstellungen nach Belieben angeben.

ABAP-Programm Eigenschaften

Daraufhin kann man im ABAP Editor sein gewünschtes Programm programmieren.

Nachdem Speichern und Aktivieren kann das Programm im SAP-System verwendet werden.

Über den Autor

Andreas Geiger

Schön, dass Du Dich für SAP ERP bzw. SAP S/4HANA interessierst.

Mein Name ist Andreas Geiger und ich bin der Gründer von ERP-UP.de. Mein Ziel ist es, so viel nützliches Wissen wie möglich über das SAP ERP-System zu vermitteln. Ich möchte Dir damit einen Mehrwert bieten. Es freut mich, wenn ich Dir damit helfen kann.

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