Informationen zum Mustercode 'SCA Nodes'

Der Mustercode 'SCA Nodes' besteht aus zwei Nachrichtenflüssen, die folgende Aktionen ausführen:

Der erweiterte Mustercode weist einen zusätzlichen Nachrichtenfluss auf, der folgende Aktion ausführt:

Im folgenden Übersichtsdiagramm werden die Beziehungen zwischen den Nachrichtenflüssen in WebSphere Message Broker und dem Geschäftsprozess in WebSphere Process Server veranschaulicht.

Diagrammdarstellung der Beziehung zwischen WebSphere Message Broker und WebSphere Process Server

  1. Ein Web-Browser startet den Prozess, indem er eine Anforderung an den Nachrichtenfluss 'BankTransferRequestInitiator' in WebSphere Message Broker sendet.
  2. Der Nachrichtenfluss 'BankTransferRequestInitiator' sendet ein HTML-Eingabeformular an Sie.
  3. Sie übergeben die Formulardaten an einen zweiten Nachrichtenfluss, 'BankTransferRequest', in WebSphere Message Broker.
  4. Der Nachrichtenfluss 'BankTransferRequest' bereitet die Daten, die Sie übergeben haben, so vor, dass sie als Anforderung an den Geschäftsprozess 'SavingsAccount' in WebSphere Process Server gesendet werden können.
  5. Der Geschäftsprozess 'SavingsAccount' aktualisiert den Kontostand des Sparkontos und gibt die Antwort an den Nachrichtenfluss 'BankTransferRequest' zurück.
  6. Der Nachrichtenfluss 'BankTransferRequest' gibt diese Antwort an den Web-Browser zurück.
  7. Im erweiterten Mustercode wird ein Girokonto eingeführt, das mit dem Sparkonto verbunden ist. Der Geschäftsprozess 'SavingsAccount' bereitet Daten so vor, dass sie als Anforderung an den Nachrichtenfluss 'CurrentAccount' in WebSphere Message Broker gesendet werden können.
  8. Der Nachrichtenfluss 'CurrentAccount' aktualisiert den Kontostand des Girokontos und gibt die Antwort an den Geschäftsprozess 'SavingsAccount' zurück.

Der Initiator der Banküberweisungsanforderung

Dieser einfache Nachrichtenfluss enthält die folgenden Knoten:

Nachrichtenfluss für Übertragungsanforderungsinitiator

Der Broker empfängt über den HTTP-Transport eine Anforderung in Form einer URI von einem Browser-Client.

Der JavaCompute-Knoten führt folgende Aktionen aus:

  1. Er liest die entsprechenden Kontostände aus dem Dateisystem.
  2. Er erstellt den Nachrichtenhauptteil, in dem die Kontostände und ein HTML-Eingabeformular mit allen Feldern angezeigt werden, die erforderlich sind, um eine Überweisungsanforderung an WebSphere Process Server zu senden
  3. Er ändert den Inhaltstyp dieser Nachricht in Text oder HTML. Dies wird anschließend als Antwort auf die Anforderung gesendet.

Die Banküberweisungsanforderung

Wählen Sie im Browser-Client den Typ der Überweisungsanforderung aus, geben Sie den Geldbetrag ein, der überwiesen werden soll, und klicken Sie auf Übergeben.

Durch die Übergabe des Formulars werden diese Eigenschaftswerte über HTTP an einen anderen Nachrichtenfluss gesendet, der am HTTP-Port empfangsbereit ist.

Dieser Nachrichtenfluss enthält die folgenden Knoten:

Nachrichtenfluss für Banküberweisungsanforderung

Der Nachrichtenfluss empfängt die Eigenschaftswerte als MIME-Nachrichtenteile.

Ein JavaCompute-Knoten verarbeitet diese Eigenschaftswerte, indem er aus dem Betrag eine XML-Anforderungsnachricht erstellt und die SCA-Operation der lokalen Umgebung mit dem Typ der Überweisungsanforderung überschreibt.

Die Anforderungskennung wird in den Benutzerkontext kopiert, sodass sie nicht verloren geht, wenn die Antwortnachricht beim Knoten 'SCA Asynchronous Response' ankommt. Diese Kennung ist für die Rückantwort an den anfordernden Client erforderlich.

Die Überweisung kann in diesem Stadium auch validiert werden. Wenn ein ungültiger Betrag oder kein Betrag angegeben wird, wird die Ausnahmebedingung 'MbUserException' generiert. Wenn die Validierung fehlschlägt, wird die Benutzerausnahmebedingung über das Fehlerterminal weitergegeben. Die Ausnahmebedingungsnachricht wird in eine Antwortnachricht an den anfordernden Client eingefügt. Klicken Sie auf OK, um zum Banküberweisungsformular weitergeleitet zu werden, sodass ein korrekter Betrag angegeben werden kann.

Wenn die Validierung erfolgreich ist, wird die XML-Nachricht mit der Überweisungsanforderung an einen SCAAsyncRequest-Knoten weitergeleitet. Dieser Knoten sendet die Nachricht an den angegebenen SCA-Service, der per Hosting von WebSphere Process Server bereitgestellt wird. Dieser SCA-Service enthält die Geschäftslogik für die Verarbeitung des Sparkontos.

Nachdem die Anforderung verarbeitet wurde, wird eine XML-Antwortnachricht für die Überweisung an WebSphere Message Broker zurückgesendet, wo sie vom entsprechenden SCAAsyncResponse-Knoten verarbeitet wird. Wenn die Banküberweisungsanforderung erfolgreich verarbeitet wurde, wird der neue Kontostand des Sparkontos in die Antwortnachricht eingefügt. Wenn die Banküberweisungsanforderung nicht erfolgreich war, wird der vorherige Kontostand des Sparkontos verwendet.

Die Anforderungskennung wird auch von der lokalen Umgebung abgerufen und in den Zielordner kopiert, sodass die Antwortnachricht an den anfordernden Client zurückgesendet werden kann.

Das Sparkonto

Das Sparkonto wird per Hosting in WebSphere Process Server bereitgestellt. Es umfasst folgende Komponenten:

Diese Komponenten sind in einem Assemblierungsdiagramm miteinander verbunden:

Assemblierungsdiagramm für Sparkonto

Die Implementierung des Geschäftsprozesses ist in zwei Teile aufgeteilt, die den zwei Operationsanforderungen entsprechen:

Geschäftsprozessdiagramm für Sparkonto

Wenn die eingehende XML-Nachrichtenanforderung die Überweisung von Geld auf das Sparkonto anfordert, werden die Geschäftsprozessvariablen über diese Nachricht initialisiert. Der Kontostand des Sparkontos wird über eine Java-Schnittstelle aus einer Datei gelesen und dem Konto wird der angeforderte Betrag gutgeschrieben. Dieser neue Kontostand wird dann wieder über die Java-Schnittstelle in die Datei geschrieben und es wird eine Nachrichtenantwort mit den relevanten Werten aus den Geschäftsprozessvariablen erstellt und an das aufrufende Programm zurückgesendet.

Wenn die eingehende XML-Nachrichtenanforderung die Überweisung von Geld auf das Girokonto anfordert, werden die Geschäftsprozessvariablen über diese Nachricht initialisiert. Der Kontostand des Sparkontos wird über eine Java-Schnittstelle aus einer Datei gelesen und das Konto wird mit dem angeforderten Betrag belastet. Wenn der neue Kontostand größer-gleich null ist, wird der neue Kontostand über die Java-Schnittstelle wieder in die Datei geschrieben. Wenn der neue Kontostand kleiner als null ist, bleibt der vorherige Kontostand in der Datei. Es wird eine Nachrichtenantwort mit den relevanten Werten aus den Geschäftsprozessvariablen erstellt und an das aufrufende Programm zurückgesendet.

Zurück zum Beginn des Mustercodes