Ausnahmebedingung ausgeben

Wenn Sie in Ihrem Nachrichtenfluss einen Fehler oder eine andere Situation feststellen, auf Grund derer die Nachrichtenverarbeitung beendet werden soll,können Sie auf zwei Arten eine Ausnahmebedingung in einem Nachrichtenfluss ausgeben:

  1. Verwenden Sie die ESQL-Anweisung THROW EXCEPTION.

    Fügen Sie die THROW-Anweisung an einer beliebigen Stelle im ESQL-Modul für einen Rechen-, Datenbank- oder Filterknoten ein. Mit Hilfe der Optionen in der Anweisung können Sie ihre eigenen Daten codieren, die in die Ausnahmebedingung aufgenommen werden sollen.

  2. Fügen Sie in Ihrem Nachrichtenfluss einen Ausnahmeknoten ein.

    Legen Sie die Knoteneigenschaften fest, um die Quelle und den Inhalt der Ausnahmebedingung zu identifizieren.

Sie können mit Hilfe von Anweisungsoptionen oder Knoteneigenschaften eine Nachrichten-ID und Werte angeben, die in den Nachrichtentext eingefügt werden sollen. Auf diese Weise erhalten die Benutzer, die die Ausnahmebedingung interpretieren, zusätzliche Informationen und Identifikationsmöglichkeiten. Sie können alle Nachrichten in allen Katalogen angeben, die dem Broker zur Verfügung stehen. Weitere Informationen finden Sie im Abschnitt Ereignisprotokollierung von einer benutzerdefinierten Erweiterung aus verwenden.

Die Situationen, in denen Sie möglicherweise eine Ausnahmebedingung ausgeben möchten, hängen vom Verhalten des Nachrichtenflusses ab; Sie entscheiden beim Entwurf des Nachrichtenflusses, an welcher Stelle diese Aktion geeignet sein könnte. Es ist beispielsweise denkbar, dass Sie den Inhalt der Eingabenachricht prüfen möchten, um sicherzustellen, dass er bestimmten Kriterien entspricht, die nicht vom Empfangsknoten festgestellt werden können (z. B. könnte überprüft werden, ob ein bestimmtes Nachrichtenformat empfangen wurde).

Im unten genannten Beispiel wird die Beispielnachricht 'Invoice' (Rechnung) verwendet, um den Einsatz der ESQL-Anweisung THROW zu demonstrieren. Wenn Sie prüfen möchten, ob sich die Rechnungsnummer in einem bestimmten Bereich bewegt, geben Sie für alle empfangenen Rechnungsnachrichten, die nicht im zulässigen Bereich liegen, eine Ausnahmebedingung aus.

--Check for invoice number lower than permitted range
IF Body.Invoice.InvoiceNo  < 100000 THEN
   THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1234 VALUES
   ('Invoice number too low', Body.Invoice.InvoiceNo);

-- Check for invoice number higher than permitted range
ELSEIF Body.InvoiceNo > 500000 THEN
      THROW USER EXCEPTION CATALOG 'MyCatalog' MESSAGE 1235 VALUES
   ('Invoice number too high', Body.Invoice.InvoiceNo);

ELSE DO
  -- invoice number is within permitted range
  -- complete normal processing
ENDIF;
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Baumstruktur für Ausnahmelisten
Übersicht zu ESQL
Nachrichten modellieren
Zugehörige Tasks
Einen Nachrichtenfluss entwerfen
Nachrichtenflussinhalte definieren
Fehler in Nachrichtenflüssen behandeln
ESQL-Dateien verwalten
Zugehörige Verweise
Rechenknoten (Compute)
Datenbankknoten (Database)
Filterknoten
ESQL-Referenz
THROW-Anweisung
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac17150_