Create the transfer request form message flow

Use the following instructions to create the transfer request form message flow.

  1. Create a new Message Broker project:
    1. Click File > New > Message Broker project.
    2. Set Project Name to SCANodesSample, click Finish.
  2. Create a new message flow:
    1. Right-click the SCANodesSample Message Broker project, click New > Message Flow.
    2. Set Message Flow Name to BankTransferRequestInitiator, click Finish.
  3. In the Message Flow editor, add and rename the nodes listed in the following table.

    Node type Node name
    HTTPInput HTTP Input
    JavaCompute TransferRequestForm
    HTTPReply HTTP Reply

  4. Connect the nodes as described in the following table.

    Node name Terminal Connect to this node
    HTTP Input Out TransferRequestForm
    TransferRequestForm Out HTTP Reply
  5. Customize the HTTP Input node:
    1. Right-click the HTTP Input node, click Properties.
    2. Click Basic, set Path suffix for URL to /TransferRequestForm
  6. Customize the TransferRequestForm node:
    1. Double-click the TransferRequestForm node, ensure that Project name is BankTransferJava, click Next.
    2. Ensure that Source folders on build path and Default output folder contain BankTransferJava, click Next.
    3. Set Package to sca.broker.sample.banktransfer and click Next.
    4. Select the Creating message class template, click Finish.
    5. The Java file opens automatically. If it does not open, right-click the TransferRequestForm node, click Open Java.
    6. Add the following import statements:
      import java.io.BufferedReader;
      import java.io.File;
      import java.io.FileReader;
      import java.io.IOException;
      import java.math.BigDecimal;
          	
    7. Add the following Java code:
      //Get operating system
      String OS = System.getProperty("os.name").toLowerCase();
      File file = null;
      //Savings balance
      String savingsBalance = null;
      //Current balance if this file also exists i.e. the extended sample
      String currentBalance = null;
      //Get the exception
      String exception = null;
      try {
        //Read balance from appropriate local file system appropriately
        if (OS.indexOf("windows") > -1) {
          file = new File("C:\\tmp\\SavingsAccount.txt");        	
        } else {
          file = new File("/tmp/SavingsAccount.txt");        	
        }
        //Construct the BufferedReader object
       BufferedReader bufferedReader = new BufferedReader(new FileReader(file));            
        //Process the data
        savingsBalance = new BigDecimal(bufferedReader.readLine())
        .setScale(2, 
        BigDecimal.ROUND_HALF_UP).toString();
        try {
          //Read balance from appropriate local file system 
          if (OS.indexOf("windows") > -1) {
      	  file = new File("C:\\tmp\\CurrentAccount.txt");        	
      	} else {
      	  file = new File("/tmp/CurrentAccount.txt");        	
      	}
      	//Construct the BufferedReader object
        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));            
          //Process the data
          currentBalance = new BigDecimal(bufferedReader.readLine())
          .setScale(2, 
          BigDecimal.ROUND_HALF_UP).toString();
        } catch (Exception e) {  
          //Get exception message
          exception = e.getMessage();
        }
      } catch (Exception e) {  
        //Get exception message
        exception = e.getMessage();
      }
              
      //Create web page layout for user input
      StringBuffer html = new StringBuffer();
      html.append("<HTML><HEAD>");
      html.append("<META http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'></HEAD>");				  
      html.append("<BODY><form action='/TransferRequestSample' enctype='multipart/form-data' method=post>");
      html.append("<table cellpadding=4 cellspacing=2 border=0>");
      html.append("<tr><td><td/><h1>Bank Transfer Form</h1></td>");
      html.append("<tr><td><b>Request</b></td>");
      html.append("<td><select name='Operation'>");
      html.append("<option value='TransferToSavingsAccount'>Transfer To Savings Account</option>");
      html.append("<option value='TransferToCurrentAccount'>Transfer To Current Account</option>");
      html.append("</select></td></tr>");
      html.append("<tr><td><b>Amount</b></td>");
      html.append("<td><input type='text' name='Amount' size=10 maxlength=10></td></tr>");
      html.append("<tr><td><td/><input type='submit' name='submit' value='Submit'></td></tr>");
      html.append("<tr><td/><tr><td/>");
      html.append("<tr><td><td/><h3>You have " + 
      savingsBalance + " in your Savings Account</h3></td>");			
      //If a savings balance was processed then display it
      if (savingsBalance != null) {
        html.append("<tr><td><td/><h3>You have " + 
        savingsBalance + " in your Savings Account</h3></td>");			
        //If a current balance was processed then display it
        if (currentBalance != null) {
          html.append("<tr><td><td/><h3>You have " + 
          currentBalance + " in your Current Account</h3></td>");
      	//Otherwise warn the user
        } else {
        //Either file does not exist
        if (exception!=null) {
          html.append("<tr><td><td/><h3>Cannot find " + 
          exception + " This file is required for running the SCA Nodes sample extension</h3></td>");											
        //Or file contains corrupt data
        } else {
          html.append("<tr><td><td/><h3><font color=\"#ff0000\">" + file.getName() + " contains corrupt data!</font></h3></td>");												
        }
      }
      //Otherwise seriously warn the user
      } else {
        //Either file does not exist
        if (exception!=null) {
          html.append("<tr><td><td/><h3><font color=\"#ff0000\">Cannot find " + exception + "</font></h3></td>");																	
        //Or file contains corrupt data
        } else {
          html.append("<tr><td><td/><h3><font color=\"#ff0000\">" + file.getName() + " contains corrupt data!</font></h3></td>");												
        }
      }
      html.append("</table></form></BODY></HTML>");
              
      // Set the content type to be html 
      so that it may be viewed by a browser
      MbElement root = outMessage.getRootElement();			
      MbElement properties = root.getFirstElementByPath
      ("Properties");	
      MbElement contentType = properties.getFirstElementByPath
      ("ContentType");	
      contentType.setValue("text/html");					
      // Add the email request form as the message content and publish
      MbElement BLOB = root.createElementAsLastChild(MbBLOB.PARSER_NAME);		
      BLOB.createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "BLOB", 
      html.toString().getBytes());            
              
  7. Save and close the Java file.

You can now create the bank transfer request message set, see Create the bank transfer request message set.

Back to Build the sample

Back to sample home