Untergeordneten Nachrichtenfluss für Gutschrift auf Girokonto erstellen

Befolgen Sie die nachfolgenden Anweisungen, um den untergeordneten Nachrichtenfluss für eine Gutschrift auf einem Girokonto zu erstellen.

  1. Erstellen Sie einen neuen Nachrichtenfluss:
    1. Klicken Sie mit der rechten Maustaste auf das vorhandene Nachrichtenbrokerprojekt SCANodesSample und klicken Sie auf Neu > Nachrichtenfluss.
    2. Setzen Sie Nachrichtenflussname auf CurrentAccountCredit und klicken Sie auf Fertigstellen.
  2. Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu und benennen Sie diese um.

    Knotentyp Knotenname
    Input Input
    JavaCompute-Knoten RetrieveCurrentAccountBalance
    JavaCompute-Knoten CreditCurrentAccountBalance
    JavaCompute-Knoten UpdateCurrentAccountBalance
    Output Output

  3. Verbinden Sie die Knoten entsprechend den Anweisungen in der nachfolgenden Tabelle miteinander.

    Knotenname Terminal Mit diesem Knoten verbinden
    Input Ausgangsterminal RetrieveCurrentAccountBalance
    RetrieveCurrentAccountBalance Ausgangsterminal CreditCurrentAccountBalance
    CreditCurrentAccountBalance Ausgangsterminal UpdateCurrentAccountBalance
    UpdateCurrentAccountBalance Ausgangsterminal Output
  4. Passen Sie den Knoten 'RetrieveCurrentAccountBalance' an:
    1. Klicken Sie mit der rechten Maustaste auf 'RetrieveCurrentAccountBalance' und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und wählen Sie Durchsuchen aus, um das Java-Klassenfeld zu suchen.
    3. Geben Sie in das Textfeld CurrentAccount ein.
    4. Wählen Sie CurrentAccount_RetrieveCurrentAccountBalance aus und klicken Sie auf OK.
  5. Passen Sie den Knoten 'CreditCurrentAccountBalance' an:
    1. Klicken Sie doppelt auf den Knoten 'CreditCurrentAccountBalance', überprüfen Sie, ob der Projektname SCANodesSampleJava lautet, und klicken Sie auf Weiter.
    2. Vergewissern Sie sich, dass die Felder Source folders on build path (Quellenordner in Erstellungspfad) und Default output folder (Standardausgabeordner) 'SCANodesSampleJava' enthalten, und klicken Sie auf Weiter.
    3. Setzen Sie Package (Paket) auf sca.broker.sample.currentaccount und klicken Sie auf Weiter.
    4. Wählen Sie die Schablone Nachrichtenklasse erstellen aus und klicken Sie auf Fertigstellen.
    5. Klicken Sie mit der rechten Maustaste auf den Knoten 'CreditCurrentAccountBalance' und klicken Sie auf Java öffnen.
    6. Fügen Sie folgende Importanweisung hinzu:
      import java.math.BigDecimal;
      		
    7. Fügen Sie folgenden Java-Code hinzu:
      //Go to tree roots
      MbElement inRoot = inMessage.getRootElement();			
      MbElement outRoot = outMessage.getRootElement();			
      MbMessage locEnv = inAssembly.getLocalEnvironment();
      MbMessage newLocEnv = new MbMessage();
      //Get the operation name
      MbElement sca = locEnv.getRootElement().getFirstElementByPath("SCA");
      MbElement input = sca.getFirstElementByPath("Input");
      MbElement operation = input.getFirstElementByPath("Operation");
      String operationName = operation.getValue().toString();
      //Get the old balance
      MbElement variables = locEnv.getRootElement().getFirstElementByPath("Variables");
      float oldBalance = Float.parseFloat(variables.getFirstElementByPath("oldBalance").getValue().toString());
      //Get the amount to transfer			
      MbElement soap = inRoot.getFirstElementByPath("SOAP");
      MbElement body = soap.getFirstElementByPath("Body");
      MbElement action = body.getLastChild();
      MbElement request = action.getLastChild();
      MbElement amount = request.getFirstElementByPath("amount");
      float transferValue = Float.parseFloat(amount.getValue().toString());
      //Calculate the new balance total
      float newBalance = oldBalance + transferValue;
      MbElement newVariables = newLocEnv.getRootElement().createElementAsLastChild(MbElement.TYPE_NAME, "Variables", null);
      //Accept the transfer and set new balance in LE            newVariables.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "newBalance", new BigDecimal(newBalance).setScale(2, java.math.BigDecimal.ROUND_HALF_UP).toString());
      //Setup the message reply
      MbElement newXMLNSC = outRoot.createElementAsLastChild(MbXMLNSC.PARSER_NAME);
      MbElement newOperation = newXMLNSC.createElementAsLastChild(MbElement.TYPE_NAME, operationName + "Response", null);
      newOperation.setNamespace("http://CurrentAccount/");
      MbElement newResponse = newOperation.createElementAsLastChild(MbElement.TYPE_NAME, "CurrentAccountResponse", null);           newResponse.createElementAsLastChild(MbElement.TYPE_NAME_VALUE, "accept", "yes");				
      // Create the new assembly with the new property overrides
      MbMessageAssembly outAssembly = new MbMessageAssembly(
      					inAssembly,
      					newLocEnv,
      					inAssembly.getExceptionList(),
      					outMessage);
              
    8. Entfernen Sie folgenden Java-Code, da er zu der gerade erstellten Message Broker-Nachrichtenassemblierung (MbMessageAssembly) im Widerspruch steht:
      MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
         		
  6. Passen Sie den Knoten 'UpdateCurrentAccountBalance' an:
    1. Klicken Sie mit der rechten Maustaste auf 'UpdateCurrentAccountBalance' und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und wählen Sie Durchsuchen aus, um das Java-Klassenfeld zu suchen.
    3. Geben Sie in das Textfeld CurrentAccount ein.
    4. Wählen Sie CurrentAccount_UpdateCurrentAccountBalance aus und klicken Sie auf OK.

Jetzt können Sie den Nachrichtenfluss für das Girokonto erstellen. Informationen hierzu finden Sie im Abschnitt Nachrichtenfluss für Girokonto erstellen.

Zurück zur Erweiterung des Mustercodes

Zurück zum Beginn des Mustercodes