Ansicht
Dokumentation

ABENEXCEPTION_TEXTS_T100 - EXCEPTION TEXTS T100

ABENEXCEPTION_TEXTS_T100 - EXCEPTION TEXTS T100

Fill RESBD Structure from EBP Component Structure   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Nachrichten als Ausnahmetexte

Die Ausnahmetexte einer Ausnahmeklasse werden in aller Regel durch Bezug auf Nachrichten aus der Tabelle T100 definiert. Um die Kurztexte von Nachrichten als Ausnahmetexte zu verwenden, muss die Ausnahmeklasse das Interface IF_T100_MESSAGE implementieren. Die Zuordnung von Ausnahmetexten zu Nachrichten erfolgt durch konstante Strukturen im öffentlichen Sichtbarkeitsbereich der Ausnahmeklasse. Für jeden statisch vordefinierten Ausnahmetext gibt es eine gleichnamige Konstante mit dem strukturierten Datentyp SCX_T100KEY aus dem ABAP Dictionary. Die einzelnen Komponenten stellen die Nachrichtenklasse, die Nachrichtennummer und die den Platzhaltern zugeordneten Attribute dar. Die Pflege der Ausnahmetexte hängt vom Werkzeug ab:

  • Im Class Builder der ABAP Workbench können auf der Registerkarte Texte Ausnahmetexte angelegt und diesen nach Auswahl von Nachrichtentext eine Nachrichtenklasse und eine Nachrichtennummer zugeordnet werden. Weiterhin können den eventuellen Platzhaltern "&1" bis "&4" bzw. "&" der Nachricht öffentliche Attribute der Ausnahmeklasse zugeordnet werden. Der Class Builder legt im öffentlichen Sichtbarkeitsbereich die zugehörige konstante Struktur mit dem Namen des Ausnahmetexts an und generiert einen passenden Instanzkonstruktor.
  • In den ABAP Development Tools (ADT) erfolgt die Pflege der Ausnahmetexte quelltextbasiert. Eine Ausnahmeklasse wird dadurch definiert, dass sie von einer der Oberklassen CX_STATIC_CHECK, CX_DYNAMIC_CHECK oder CX_NO_CHECK erbt. Eine solche Klasse bindet standardmäßig das Interface IF_T100_MESSAGE ein und der Konstruktor wird passend generiert. Mit einem Code Template textIdExceptionClass kann für jeden Ausnahmetext eine konstante Struktur im öffentlichen Sichtbarkeitsbereich angelegt werden, deren Komponenten die Eigenschaften der Nachricht festlegen.

Der Eingabeparameter TEXTID des Instanzkonstruktors der Ausnahmeklasse ist vom gleichen Datentyp wie das Attribut T100KEY des Interface IF_T100_MESSAGE, der sich auch auf SCX_T100KEY bezieht. Beim Auslösen einer Ausnahme mit Nachrichten als Ausnahmetexten kann dem Konstruktor eine Struktur mit Informationen zur Nachricht übergeben werden, die als Ausnahmetext verwendet werden soll. Es wird dringend empfohlen an TEXTID nur die in der Klasse vorhandenen Konstanten für die vordefinierten Ausnahmetexte zu übergeben, wodurch ein für die Ausnahme vorgesehener Text ausgewählt wird. Die Attribute, die den Platzhaltern "&1" bis "&4" bzw. " &" einer Nachricht zugeordnet sind, können über die gleichnamigen Eingabeparameter des Instanzkonstruktors mit Werten versorgt werden. Die Platzhalter werden beim Auslösen der Ausnahme durch den Inhalt der zugeordneten Attribute ersetzt.

Hinweise

  • Ausnahmetexte, die mit Nachrichten verknüpft sind, können während der Behandlung der Ausnahme mit der Anweisung MESSAGE oref an den Programmbenutzer gesendet werden.
  • Es empfiehlt sich, beim Anlegen einer Ausnahmeklasse im Class Builder, in die das Interface IF_T100_DYN_MSG und damit auch IF_T100_MESSAGE eingebunden werden soll, dies gleich beim Anlegen durch das Setzen des entsprechenden Kennzeichens festzulegen. Dadurch wird der Konstruktor gleich passend generiert. Ansonsten wird der Konstruktor für interne Ausnahmetexte generiert und muss nach einem nachträglichen Einbinden des Interfaces über die Funktion Hilfsmittel → Bereinigen → Konstruktor neu generiert werden.
  • Die Klasse CL_MESSAGE_HELPER hat eine Methode GET_LATEST_T100_EXCEPTION, mit der das letzte Objekt einer über PREVIOUS erfolgten Verkettung von Ausnahmeobjekten zurück gegeben wird, das einen über eine Nachricht definierten Ausnahmetext hat.
  • Technisch gesehen kann dem Eingabeparameter TEXTID des Instanzkonstruktors auch eine beliebige Struktur des Typs SCX_T100KEY übergeben werden, deren Komponenten eine beliebige Nachricht der Tabelle T100 spezifizieren. Von einer solchen Vorgehensweise wird aber dringend abgeraten, da eine Ausnahme bei der Verwendung des Parameters TEXTID nur mit spezifischen Texten ausgelöst werden sollte.
  • Ein Verwendungsnachweis für eine Nachricht enthält ihre Verwendung als Ausnahmetext in einer Ausnahmeklasse. Er enthält jedoch die Stellen, wo die Angabe der Nachrichten in einer Struktur vom Typ SCX_T100KEY an den Instanzkonstruktor einer Ausnahmeklasse übergeben wird, nicht.

  • Die Ausnahmeklassen des Pakets SABAP_DEMOS_CAR_RENTAL_EXCPTNS, das Teil einer im Oberpaket SABAP_DEMOS_CAR_RENTAL angelegten Beispielanwendung ist, verwenden Nachrichten als Ausnahmetexte. Siehe z.B. CX_DEMO_CR_CAR_MODIFY.





RFUMSV00 - Advance Return for Tax on Sales/Purchases   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7097 Date: 20240523 Time: 180159     sap01-206 ( 128 ms )