Rheinwerk < openbook > SAP-Wissen aus erster Hand
SAP-Wissen aus erster Hand.
 
Inhaltsverzeichnis
Vorwort zur vierten Auflage
1 ABAP und die ersten Schritte im SAP-System
2 ABAP Dictionary
3 Programmieren im ABAP Editor
4 Felder und Berechnungen
5 Modifikation von Zeichenketten
6 Debugging von Programmen
7 Modifikation von transparenten Datenbanktabellen
8 Rechnen mit Datum und Zeit, Mengen und Währungen
9 Mit Daten in einer Datenbanktabelle arbeiten
10 Programmablaufsteuerung und logische Ausdrücke
11 Selektionsbildschirme
12 Interne Tabellen
13 Modularisierung von Programmen
14 Weiterführende Themen
A Icons auf einen Blick
B Abkürzungsverzeichnis
C Die Autoren
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 23 KB

Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in ABAP von Karl-Heinz Kühnhauser, Thorsten Franz
Buch: Einstieg in ABAP

Einstieg in ABAP
Pfeil 11 Selektionsbildschirme
Pfeil 11.1 Ereignisse
Pfeil 11.1.1 Reihenfolge von Ereignissen
Pfeil 11.1.2 Beispiele für Ereignisse
Pfeil 11.2 Einfache Selektionen
Pfeil 11.2.1 PARAMETERS-Anweisung
Pfeil 11.2.2 Zusätze zur PARAMETERS-Anweisung
Pfeil 11.3 Komplexe Selektionen
Pfeil 11.3.1 SELECT-OPTIONS-Anweisung
Pfeil 11.3.2 Mehrfachselektionen
Pfeil 11.3.3 Zusätze zur SELECT-OPTIONS-Anweisung
Pfeil 11.4 Selektionstexte verwenden
Pfeil 11.4.1 Textelemente im Überblick
Pfeil 11.4.2 Selektionstexte anlegen
Pfeil 11.5 Selektionsbild speichern
Pfeil 11.5.1 Selektionsvariante anlegen
Pfeil 11.5.2 Report mit Variante starten
Pfeil 11.6 Ergänzende Textobjekte
Pfeil 11.6.1 Textsymbole anlegen
Pfeil 11.6.2 Nachrichten anlegen
Pfeil 11.7 Selektionsbilder frei gestalten
Pfeil 11.7.1 Einzelne Zeile gestalten
Pfeil 11.7.2 Zeilenblock gestalten
Pfeil 11.8 Codebeispiel zum Selektionsbild (einfache Form)
Pfeil 11.9 Codebeispiel zum Selektionsbild (erweiterte Form)
 
Zum Seitenanfang

11.6    Ergänzende Textobjekte Zur vorigen ÜberschriftZur nächsten Überschrift

Bevor Sie das Selektionsbild völlig frei gestalten können, benötigen Sie noch etwas Handwerkszeug: Textsymbole und Nachrichten.

 
Zum Seitenanfang

11.6.1    Textsymbole anlegen Zur vorigen ÜberschriftZur nächsten Überschrift

Die Arbeit mit Textelementen kennen Sie bereits ein wenig aus Abschnitt 11.4, »Selektionstexte verwenden«. Die Möglichkeiten, wie Sie in den Pflegedialog der Textelemente gelangen, wurden dort ebenfalls beschrieben.

In diesem Umfeld gibt es nun noch eine dritte Art von Textelementen, die Textsymbole. Textsymbole ersetzen z. B. Literale bei der WRITE-Anweisung und ermöglichen die Mehrfachverwendung und die Übersetzung variabler Texte. Hartes Codieren von Literalen im Quellcode ist somit überflüssig, und Sie sollten es von nun an weitgehend vermeiden.

Textsymbole sind sozusagen Platzhalter für Texte. Im ABAP-Quellcode schreiben Sie beispielsweise nicht mehr:

WRITE: / 'Teilnehmer'.

Stattdessen schreiben Sie:

WRITE: / text-001.

Der Name eines Textsymbols besteht aus TEXT- und einer dreistelligen Nummer. Für einen Report sind in einer Sprache maximal 1.000 Textsymbole verwendbar, von denen jedes maximal 132 Stellen haben kann. In die Pflege der Textsymbole gelangen Sie entweder über die ABAP Workbench auf dem Weg über die Textelemente – wie bei den Selektionstexten beschrieben – oder durch Vorwärtsnavigation aus dem ABAP Editor. Ein Doppelklick auf das Textsymbol führt in den Pflegebildschirm der Textsymbole. In Abbildung 11.28 ist die Liste schon aktiv; die Textsymbole wurden bereits angelegt.

Pflegebildschirm der Textsymbole

Abbildung 11.28    Pflegebildschirm der Textsymbole

[»]  Textsymbole aktivieren

Da das Anlegen selbst nicht schwierig ist, sondern analog zum Anlegen der Selektionstexte erfolgt, wird es hier nicht mehr gesondert erklärt. Vergessen Sie nur nicht, am Ende der Pflege die Textsymbole über den Aktivieren-Button (inline image) einzuschalten.

Das System hat bereits für alle verwendeten Textsymbole Zeilen angelegt; die Zeilennummer entspricht der Nummer des Textsymbols. Sie müssen nur noch in der entsprechenden Zeile den Text eintragen, den Sie später im Selektionsbild sehen möchten.

Um die Einträge im veränderten Textpool später im Selektionsbild zu sehen, müssen Sie den Textpool zunächst wieder aktivieren ((Strg) + (F3)). Erst danach kehren Sie mit der Taste (F3) in den ABAP Editor zurück.

 
Zum Seitenanfang

11.6.2    Nachrichten anlegen Zur vorigen ÜberschriftZur nächsten Überschrift

Nachrichten dienen überwiegend dem Dialog der Programmablaufsteuerung mit dem Benutzer, beispielsweise bei Falscheingaben im Selektionsbild. Um Nachrichten an den Anwender senden zu können, müssen Nachrichten in einer Nachrichtenklasse in der Systemtabelle T100 hinterlegt sein. Die Nachrichtenklasse gruppiert Nachrichten nach Arbeitsgebieten und fachlichen Gesichtspunkten; für Kunden ist der Kundennamensraum zu beachten. Kundenspezifische Nachrichtenklassen beginnen mit einem Z oder einem registrierten Namensraumpräfix. Über den Sprachenschlüssel müssen Nachrichten auch länderspezifisch gepflegt werden.

[»]  Nachrichtenklasse

Im Unterschied zu Textelementen sind Nachrichten keine Teilobjekte eines Reports, sondern liegen nach Gruppen geordnet in einer zentralen Systemtabelle. Alle Programme können mit diesem gemeinsamen Nachrichtenpool arbeiten. Hierfür gibt es zwei Möglichkeiten. Entweder muss der Report mit der zugehörigen Nachrichtenklasse über den Zusatz MESSAGE-ID der REPORT-Anweisung verknüpft werden, oder beim Senden der Nachricht wird die Nachrichtenklasse als Operand an das Kommando angefügt. Zum Senden einer Nachricht dient die ABAP-Anweisung MESSAGE.

Das Einstiegsbild zur Nachrichtenpflege erreichen Sie aus dem ABAP Editor über den Menüpfad SpringenNachrichten oder über Transaktion SE91. Auch die Vorwärtsnavigation aus dem Quellcode ist möglich, d. h. durch einen Doppelklick auf die Nachricht. Sollte es die Nachrichtenklasse noch nicht geben, tragen Sie den Namen ein, und legen sie über den entsprechenden Button an. Der Name der Nachrichtenklasse hat maximal 20 Stellen und beginnt aus den bereits genannten Gründen mit Z; Sie nennen die Nachrichtenklasse ZABAP (siehe Abbildung 11.29).

Einstieg in die Nachrichtenpflege

Abbildung 11.29    Einstieg in die Nachrichtenpflege

Bei einer neuen Nachrichtenklasse müssen Sie zunächst die Eigenschaften pflegen (siehe Abbildung 11.30). Anschließend pflegen Sie die Nachrichten auf der passenden Registerkarte.

Jede Nachrichtenklasse hat die Zeilen 000 bis 999. Sie wählen die jeweilige Zeile aus und tragen dort Ihre Nachricht ein, deren Text über maximal 72 Stellen verfügen darf (siehe Abbildung 11.31). Vergessen Sie nach der Pflege der Nachricht und der Nachrichtenklasse nicht, diese zu sichern, damit die neuen Einträge auch in der Tabelle T100 gespeichert werden.

Attribute der Nachrichtenklasse pflegen

Abbildung 11.30    Attribute der Nachrichtenklasse pflegen

Nachrichtenkurztext pflegen

Abbildung 11.31    Nachrichtenkurztext pflegen

Nun gehen wir auf die Fehlerbehandlung bei der Eingabeprüfung im Rahmen des Ereignisses AT SELECTION-SCREEN ein und beschäftigen uns damit, wie dieser Anweisungsblock für die Fehlerbehandlung genau aussieht.

[»]  Zusatz zu MESSAGE

Wie erwähnt, könnte im Fehlerfall eine Nachricht an den Anwender mit einem Hinweis auf die »richtige« Eingabe oder auf den Fehler gesendet werden. Zum Versenden von Nachrichten wird die ABAP-Anweisung MESSAGE verwendet. Sie benötigt als Zusatz den Nachrichtentyp, die Nachrichtennummer und die Nachrichtenklasse.

Durchaus tückisch ist der Nachrichtentyp. Er ist kontextsensitiv, d. h. je nach Ort der MESSAGE-Anweisung wirkt er unterschiedlich. Beispielsweise bewirkt der Nachrichtentyp E (für Error) in Selektionsbildern den Abbruch der Selektionsbildverarbeitung: Das Selektionsbild wird erneut gesendet; in der Statuszeile erscheint die Meldung rot hinterlegt. Die Eingabefelder, die mit dem Ereignis AT SELECTION-SCREEN angesprochen wurden, sind wieder eingabebereit und müssen gefüllt werden. Der Prozess wird so lange wiederholt, bis die Eingaben den Prüfungen standhalten. Erst dann wird der Report weiter ausgeführt.

Möchten Sie »richtige« Eingaben im Feld für die neue Teilnehmernummer bzw. für die Sekunden erzwingen, schreiben Sie Folgendes in den Anweisungsblock für die Fehlerbehandlung der Teilnehmernummer:

MESSAGE e002(zabap).

In den Anweisungsblock für die Fehlerbehandlung der Sekunden schreiben Sie:

MESSAGE e001(zabap).

Das MESSAGE-Kommando hat in diesem Fall die folgenden Zusätze:

  • e
    Der Nachrichtentyp E erzwingt beim Selektionsbild den Abbruch der Selektionsbildverarbeitung und ein erneutes Senden des Selektionsbildes mit rot hinterlegter Meldung in der Statuszeile.

  • 001
    Die Nachrichtennummer hat den Inhalt »Sekunden müssen zwischen 5 und 20 liegen« aus der angegebenen Nachrichtenklasse.

  • (zabap)
    Dies ist die kundeneigene Nachrichtenklasse ZABAP, die in Klammern geschrieben werden muss.

Mit dem Zusatz WITH der MESSAGE-Anweisung können bis zu vier Operanden als Stellungsoperanden in einer Feldliste für die Meldung mit gesendet werden. Dabei wird der Inhalt des ersten Feldes in der Feldliste anstelle des ersten Platzhalters im Meldungstext eingesetzt, der Inhalt des zweiten Feldes für den zweiten Platzhalter etc. Dies funktioniert allerdings nur, wenn in der Nachricht selbst für diese Operanden ein Platzhalter vorgesehen ist. Als Platzhalter dient im Nachrichtentext das kaufmännische Und-Zeichen (&). Lautet der Nachrichtentext beispielsweise »Teilnehmernummer & besteht bereits«, könnte die MESSAGE-Anweisung hierzu folgendermaßen aussehen:

MESSAGE e002(zabap) WITH falschtnr.

Der Inhalt des Feldes FALSCHTNR ist dabei für den variablen Meldungstext vorgesehen.

[ ! ]  Unerwünschte Nebenwirkungen von MESSAGE

Oft ist selbst ausgewiesenen SAP-Experten nicht klar, welche Wirkung ein bestimmter Nachrichtentyp auf den Programmablauf in einem gegebenen Kontext hat. Es kann vorkommen, dass eine Funktionalität zunächst rein für den Einsatz im Dialog entwickelt und später doch in einem Hintergrundverarbeitungsprogramm aufgerufen wird. Direkt ausgegebene Nachrichten können hier zu einem abweichenden Systemverhalten führen.

Wenn Sie Ihre MESSAGE-Anweisung um den Zusatz INTO ergänzen, wird die gesamte Nachricht als Zeichenkette in eine Variable gesteuert, und es unterbleibt jegliche Auswirkung auf den Programmablauf. Dies ist einerseits praktisch, um Protokollausgaben zu erzeugen, und andererseits von Vorteil, weil Sie so selbst mit den geeigneten Kommandos den Programmablauf steuern können.

Prüfen Sie daher bei Ihren Programmiervorhaben stets, ob die direkte Ausgabe von Nachrichten mit MESSAGE wirklich sinnvoll ist, oder ob Sie für die Ausgabe von Erfolgs- und Fehlermeldungen nicht lieber einen Logger-Dienst wie das Anwendungsprotokoll (BAL) verwenden und die Steuerung des Programmablaufs explizit programmieren möchten. Als Faustregel mag gelten, dass in Reports MESSAGE stehen darf, in Funktionsbausteinen und Klassen aber nur MESSAGE ... INTO. Führen Sie die Transaktion SBAL_DOCUMENTATION aus, um mehr über das Anwendungsprotokoll zu erfahren.

 


Ihre Meinung?

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Einstieg in ABAP Einstieg in ABAP
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: SAP – Der technische Einstieg
SAP – Der technische Einstieg


Zum Rheinwerk-Shop: ABAP Objects – Das umfassende Handbuch
ABAP Objects – Das umfassende Handbuch


Zum Rheinwerk-Shop: ABAP-Entwicklung für SAP S/4HANA
ABAP-Entwicklung für SAP S/4HANA


Zum Rheinwerk-Shop: Kundeneigene Erweiterungen mit ABAP
Kundeneigene Erweiterungen mit ABAP


Zum Rheinwerk-Shop: Schrödinger programmiert ABAP
Schrödinger programmiert ABAP


Zum Rheinwerk-Shop: Migration nach SAP S/4HANA
Migration nach SAP S/4HANA


Zum Rheinwerk-Shop: Design Thinking mit SAP
Design Thinking mit SAP


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und in die Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern