当座預金口座の貸方記入メッセージ・サブフローを作成するには、以下の手順に従ってください。
ノード・タイプ | ノード名 |
---|---|
Input | Input |
JavaCompute | RetrieveCurrentAccountBalance |
JavaCompute | CreditCurrentAccountBalance |
JavaCompute | UpdateCurrentAccountBalance |
Output | Output |
ノード名 | ターミナル | 接続先のノード |
---|---|---|
Input | Out | RetrieveCurrentAccountBalance |
RetrieveCurrentAccountBalance | Out | CreditCurrentAccountBalance |
CreditCurrentAccountBalance | Out | UpdateCurrentAccountBalance |
UpdateCurrentAccountBalance | Out | Output |
import java.math.BigDecimal;
//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);
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
これで、当座預金口座メッセージ・フローを作成することができるようになりました。当座預金口座メッセージ・フローの作成を参照してください。