Show TOC

Fault-MessagesLocate this document in the navigation structure

Eine Fault-Message ist eine Nachricht, die eine anwendungsspezifische Fehlersituation beschreibt.

Verwendung

Die Proxy-Generierung generiert Ausnahmeklassen zu Fault-Messages. Löst eine Anwendung eine Ausnahme über eine solche Ausnahmeklasse aus, setzt sie die ABAP-Proxy-Laufzeit automatisch in eine Fault-Message um. Mit Hilfe der Fault-Message meldet die Anwendung einen Anwendungsfehler (zum Beispiel:"Angefordertes Kundenprofil unbekannt").

Struktur
  • Die Struktur der Fault-Message ist im WSDL-Dokument beschrieben und kann beliebig sein.

  • Fault-Messages in PI werden durch standardisierte Fault-Message-Typen im Enterprise Services Repository beschrieben, die in eine entsprechende Struktur im WSDL-Dokument umgesetzt werden (siehe unten).

Standardisierte Struktur für Fault-Messages in PI

In PI können Sie der aus der Fault-Message generierten Anwendungsklasse Informationen zur Fehlerursache über die folgende Struktur mitgeben:

Die Struktur STANDARD ist vorgegeben und enthält essentielle Felder, um den Fehler weiterzuleiten. Die Struktur ADDITION lässt sich frei von der Anwendung verwenden.

Beispiel

Um eine Fault-Message zu verschicken, füllen Sie die generierte Struktur zur Fault-Message und lösen die Ausnahme mit der zugehörigen Ausnahmeklasse aus:

data: l_standard_data type <Standard Fault-Datentyp>,

l_detail_data type <Detailstruktur zum Standard Fault-Datentyp>,

l_additional_data type <Anwendungsfehlerdatentyp>.

l_standard_data-fault_text = <Fehlertext>.

l_standard_data-fault_url = <Fehler-URL>.

l_detail_data-severity = <System-Fehlerkategorie>.

l_detail_data-text = <System-Fehlertext>.

l_detail_data-id = <System-Fehler-ID>.

l_detail_data-url = <System-Fehler-URL>.

append l_detail_data to l_standard_data-fault_detail.

l_additional_data = <Anwendungsfehlerinformationen>

RAISE EXCEPTION TYPE <Name der Ausnahmeklasse>.

EXPORTING

standard = l_standard_data

addition = l_additional_data

Wenn Sie das Anwendungsprotokoll verwenden oder Fehlerinformationen einer BAPI-Return-Tabelle zur Verfügung haben, können Sie diese auch direkt verwenden, um die Fault Message zu füllen. In diesem Fall brauchen Sie nur die Methode CL_PROXY_FAULT=>RAISE der Proxy-Laufzeit zum Auslösen des Fehlers aufrufen:

CALL METHOD cl_proxy_fault=>raise

EXPORTING

exception_class_name = <Name der Ausnahmeklasse>

application_log_handle = <Anwendungsprotokoll: Handle eines Protokolls>

bapireturn_tab = <Tabelle mit BAPI-Return-Informationen>

Wenn Sie weder ein Handle eines Anwendungsprotokolls noch eine Tabelle mit BAPI-Return-Informationen übergeben, füllt die Methode die Standard-Daten einer Fault-Message wie folgt:

faultText

Text der Fault-Message im Enterprise Services Repository (verkürzt auf 60 Zeichen)

faultUrl

URL zum Langtext dieser Message im Enterprise Services Repository

Für die Daten aus dem Anwendungsprotokoll beziehungsweise der BAPI-Return-Tabelle werden zusätzlich folgende Felder gefüllt:

faultDetail-severity

Der ABAP-Meldungstyp wird auf dieses Feld wie folgt abgebildet:

ABAP-Feld MSGTY

Fault-Message-Feld faultDetail-severity

A (Abend)

error

E (Error)

error

W (Warning)

warning

S (Success)

information

I (Information)

information

faultDetail-text

Aufbereiteter T100-Meldungstext (in der Sprache, in der der Service ausgeführt wurde)

faultDetail-url

URL zum T100-Langtext (falls vorhanden)

faultDetail-id

Verbindung aus Arbeitsgebiet und Meldungsnummer (z.B. "007(XY)")

Datendarstellung im Message-Monitor

Im asynchronen Fall können Sie eine Fault-Message im Web-Services-Monitoring anzeigen. Weitere Informationen finden Sie unter ABAP-Web-Service-Messages überwachen.