Show TOC Anfang des Inhaltsbereichs

Objektdokumentation Fault-Messages  Dokument im Navigationsbaum lokalisieren

Definition

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 XI 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 XI

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

Diese Grafik wird im zugehörigen Text erklärt

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

Beispiel zur XI Standardstruktur

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-FehlerId>.
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 Exception-Klasse>
   EXPORTING
      standard = l_standard_data
      addition = l_additional_data.

Wenn Sie das Application Log 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 Exception-Klasse>
   application_log_handle = < Anwendungs-Log: Handle eines Protokolls>
   bapireturn_tab         = < Tabelle mit BAPI Return Informationen>.

Wenn Sie weder ein Handle eines Anwendungs-Logs 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 auf den Langtext dieser Message im Enterprise Services Repository

Für die Daten aus dem Application Log 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 auf den T100-Langtext (falls vorhanden)

faultDetail-id

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

Darstellung der Daten in SAP NetWeaver XI

Im asynchronen Fall können Sie eine Fault-Message im Monitoring zu XI sehen. Zum Beispiel erhalten Sie im technischen Monitoring bei der Anzeige einer Fault-Message eine besser lesbare Aufbereitung durch die Funktion Zusatzinformationen zum Fehler. Im synchronen Fall können Sie auf der rufenden Seite eine derartige Aufbereitung in Ihre Applikation einbauen, indem Sie die Methode CL_PROXY_FAULT=>SHOW nutzen.

 

 

 

 

 

Ende des Inhaltsbereichs