WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

RETURN-Anweisung

Die RETURN-Anweisung beendet die Verarbeitung. Der nächste Schritt richtet sich nach dem Programmierungskontext, in dem die RETURN-Anweisung ausgegeben wurde.

Syntax

Syntaxdiagramm lesenSyntaxdiagramm überspringen
>>-RETURN--+----------+----------------------------------------><
           '-Ausdruck-'   

Hauptfunktion

Bei der Verwendung der RETURN-Anweisung in der Hauptfunktion stoppt sie die Verarbeitung des Moduls und gibt die Steuerung an den den nächsten Knoten in einem Nachrichtenfluss zurück. In der Hauptfunktion muss die Rückkehranweisung einen Booleschen Ausdruck enthalten. Das Verhalten der RETURN-Anweisung in der Hauptfunktion ist abhängig vom Knoten. Im Rechenknoten beispielsweise wird die Weitergabe der Nachricht gestoppt, wenn Ausdruck einen anderen Wert als TRUE aufweist. Im Filterknoten wird jedoch die Nachricht an das Terminal weitergegeben, das dem Wert von Ausdruck entspricht: TRUE, FALSE und UNKNOWN. In der folgenden Tabelle werden die Unterschiede bei der Verwendung der RETURN-Anweisung in der Hauptfunktion der Rechen-, Filter- und Datenbankknoten aufgezeigt.
Knoten RETURN TRUE; RETURN FALSE; RETURN UNKNOWN (beim Typ BOOLEAN) oder RETURN NULL; RETURN;
Rechenknoten Nachricht an Out-Terminal weitergeben. Weitergabe stoppen Weitergabe stoppen Fehler implementieren (BIP2912E: Typabweichung bei RETURN)
Datenbankausnahmen Nachricht an Ausgangsterminal weitergeben. Weitergabe stoppen Weitergabe stoppen Fehler implementieren (BIP2912E: Typabweichung bei RETURN)
Filter Nachricht an TRUE-Terminal weitergeben Nachricht an False-Terminal weitergeben Nachricht an Unknown-Terminal weitergeben Fehler implementieren (BIP2912E: Typabweichung bei RETURN)

Benutzerdefinierte Funktionen und Prozeduren

Bei der Verwendung der RETURN-Anweisung in einer Funktion oder Prozedur stoppt sie die Verarbeitung dieser Funktion und gibt die Steuerung an den aufrufenden Ausdruck zurück. Der Ausdruck, der vorhanden sein muss, wenn die Funktion oder Prozedur mit einer RETURNS-Klausel deklariert wurde, wird ausgewertet und fungiert als Rückgabewert der Funktion. Der Datentyp des zurückgegebenen Werts muss derselbe sein wie der in der Deklaration der Funktion. In der folgenden Tabelle werden die Unterschiede bei der Verwendung der RETURN-Anweisung in benutzerdefinierten Funktionen und Prozeduren aufgezeigt.

  RETURN Ausdruck; RETURN NULL; (oder Ausdruck zurückgeben, dessen Auswertung NULL ergibt) RETURN; Keine RETURN-Anweisung
Benutzerdefinierte Funktion oder Prozedur mit einer RETURNS-Klausel Gibt die Kontrolle an den aufrufenden Ausdruck mit dem Wert von Ausdruck zurück Gibt die Kontrolle an den aufrufenden Ausdruck mit NULL zurück Fehler implementieren (BIP2912E: Typabweichung bei RETURN) Gibt die Kontrolle an den aufrufenden Ausdruck mit NULL zurück, nachdem alle Anweisungen in der Funktion oder Prozedur ausgeführt wurden
Benutzerdefinierte Funktion oder Prozedur ohne eine RETURNS-Klausel Fehler implementieren (BIP2401E: Syntaxfehler: erwartet ; aber Ausdruck gefunden) Fehler implementieren (BIP2401E: Syntaxfehler: erwartet ; aber NULL gefunden) Gibt die Kontrolle an den aufrufenden Ausdruck zurück Gibt die Kontrolle an den aufrufenden Ausdruck zurück, nachdem alle Anweisungen in der Funktion oder Prozedur ausgeführt wurden

Die RETURN-Anweisung muss innerhalb des Hauptteils einer Funktion oder Prozedur verwendet werden, welche die RETURNS-Anweisung in der Deklaration aufweist. Diese Funktion kann mit der Anweisung 'CALL ... INTO' aufgerufen werden. Die RETURNS-Anweisung stellt den Datentyp bereit, den die Funktion oder Prozedur an die CALL-Anweisung zurückgibt. In der Anweisung 'CALL ... INTO' wird die Variable angegeben, der der Rückgabewert zugewiesen wird. Das Beispiel in diesem Abschnitt zeigt, wie mit den Anweisungen 'RETURNS' und 'CALL ... INTO' die Rückkehranweisung zugewiesen wird. Wenn Sie mit der Anweisung CALL ... INTO eine Funktion oder Prozedur aufrufen, für die keine RETURNS-Anweisung deklariert ist, wird eine BIP2912E-Fehlernachricht generiert.

Beispiel

Das folgende Beispiel, das auf Beispielnachricht basiert, zeigt, wie die Anweisungen RETURN, RETURNS und CALL...INTO verwendet werden können:
CREATE FILTER MODULE ProcessOrder
 CREATE FUNCTION Main() RETURNS BOOLEAN  
  BEGIN  

      DECLARE SpecialOrder  BOOLEAN;
      SET OutputRoot.MQMD = InputRoot.MQMD; 
      CALL IsBulkOrder(InputRoot.XMLNS.Invoice.Purchases) INTO SpecialOrder;
   
      --
      --  Hier könnte eine weitere Verarbeitung eingefügt werden,
      --  bevor der Auftrag an das entsprechende Terminal weitergeleitet wird.
      -- 
      RETURN SpecialOrder;

  END;     

 CREATE FUNCTION IsBulkOrder (P1 REFERENCE)
        RETURNS BOOLEAN
  BEGIN 
      -- Variablen deklarieren und initialisieren--
      DECLARE a INT 1;
      DECLARE PriceTotal FLOAT 0.0;
      DECLARE NumItems INT 0;
      DECLARE iroot REFERENCE TO P1;

      -- Berechnen Sie den Wert des Auftrags, falls es sich jedoch um einen Großeinkauf handelt, --
      -- muss der Auftrag anders gehandhabt werden (Rabatt gewährleisten); es muss also TRUE --
      -- oder FALSE zurückgegeben werden, je nachdem, wie groß der Auftrag ist. --
      WHILE a <= CARDINALITY(iroot.Item[]) DO 
             SET  NumItems = NumItems + iroot.Item[a].Quantity;
             SET  PriceTotal = PriceTotal + iroot.Item[a].UnitPrice;
             SET a = a + 1;
      END WHILE;
      RETURN (PriceTotal/NumItems > 42);

  END;

  END MODULE; 
Wenn in dem Beispiel der durchschnittliche Preis von Artikeln größer als 42 ist, wird TRUE zurückgegeben, andernfalls FALSE. Somit könnte ein Filterknoten Nachrichten, die günstige Artikel beschreiben, auf einem anderen Weg weiterleiten als Nachrichten, die teure Artikel beschreiben. In dem Beispiel kann die Anweisung CALL IsBulkOrder(InputRoot.XMLNS.Invoice.Purchases) INTO SpecialOrder; ebenfalls SpecialOrder = IsBulkOrder(InputRoot.XMLNS.Invoice.Purchases); geschrieben werden.

Wenn Sie die PROPAGATE-Anweisung in Ihrem Knoten verwenden, ist es wichtig, dass Sie mit einem RETURN FALSE; eine automatische Weitergabe der Nachricht an den nächsten Knoten im Nachrichtenfluss verhindern. Ein Beispiel für die Vermeidung der impliziten Weitergabe am Ende der Verarbeitung in einem Rechenknoten finden Sie unter PROPAGATE-Anweisung.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:21:31


ReferenzthemaReferenzthema | Version 8.0.0.5 | ak05130_