振替要求フォーム・メッセージ・フローの作成

振替要求フォーム・メッセージ・フローを作成するには、以下の手順に従ってください。

  1. 次のように新規メッセージ・ブローカー・プロジェクトを作成します。
    1. 「ファイル」>「新規」>「メッセージ・ブローカー・プロジェクト」を クリックします。
    2. プロジェクト名」を SCANodesSample に設定し、「終了」をクリックします。
  2. 次のように新規メッセージ・フローを作成します。
    1. SCANodesSample メッセージ・ブローカー・プロジェクトを右クリックし、「新規」>「メッセージ・フロー」をクリックします。
    2. メッセージ・フロー名」を BankTransferRequestInitiator に設定し、「終了」をクリックします。
  3. メッセージ・フロー・エディターで、次の表にリストされているノードを追加して名前変更します。

    ノード・タイプ ノード名
    HTTPInput HTTP Input
    JavaCompute TransferRequestForm
    HTTPReply HTTP Reply

  4. 以下の表に示すようにノードを接続します。

    ノード名 ターミナル 接続先のノード
    HTTP Input Out TransferRequestForm
    TransferRequestForm Out HTTP Reply
  5. 次のようにして HTTP Input ノードをカスタマイズします。
    1. HTTP Input ノードを右クリックし、「プロパティー」をクリックします。 
    2. 「基本」を クリックし、「URL のパス接尾部」/TransferRequestForm に設定します。
  6. TransferRequestForm ノードを以下のようにカスタマイズします。
    1. TransferRequestForm ノードをダブルクリックし、「プロジェクト名」が BankTransferJava であることを確認し、「次へ」をクリックします。
    2. ビルド・パス上のソース・フォルダー」と「デフォルト出力フォルダー」に BankTransferJava が入っていることを確認し、「次へ」をクリックします。
    3. 「パッケージ」sca.broker.sample.banktransfer に 設定し、「次へ」をクリックします。
    4. メッセージの作成用クラス」テンプレートを選択し、「終了」をクリックします。
    5. Java ファイルが自動的に開きます。開かない場合は、TransferRequestForm ノードを右クリックし、「Java を開く」をクリックします。
    6. 次の入力ステートメントを追加します。
      import java.io.BufferedReader;
      import java.io.File;
      import java.io.FileReader;
      import java.io.IOException;
      import java.math.BigDecimal;
          	
    7. 次の Java コードを追加します。
      //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. Java ファイルを保存して閉じます。

これで、銀行振替要求メッセージ・セットを作成できるようになりました。銀行振替要求メッセージ・セットの作成を参照してください。

サンプルの作成に戻る

サンプルのホームに戻る