例: 索引付きグローバル変数に含まれている値の追加

この例では、索引付きグローバル変数に含まれている値を追加し、別の索引なしグローバル変数に合計を保管します。これは、数値を表すストリングが索引付きグローバル変数 subtotals に保管されていることを前提としています。

前の例では、入力グローバル変数と出力グローバル変数 (theDate) の名前が set 呼び出しに含まれていました。この例では、入力変数と出力変数の名前をローカル・ストリング変数内に設定し、それらのストリングを呼び出しで使用してグローバル変数値を取得および設定します。グローバル変数の名前は変数として渡されているため、引用符で囲まれていません。

setGlobalVariable(blInfo,gvOutputName, new Float(myTotal));

////////////////////////////////////////////////////////////////////////////////
//  This sample is provided AS IS.
//  Permission to use, copy and modify this software for any purpose and
//  without fee is hereby granted. provided that the name of IBM not be used in
//  advertising or publicity pertaining to distribution of the software without
//  specific written permission.
//
//  IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SAMPLE, INCLUDING ALL
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL IBM
//  BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
//  DAMAGES WZIETransOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
//  IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
//  OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SAMPLE.
////////////////////////////////////////////////////////////////////////////////
import com.ibm.hats.common.IBusinessLogicInformation;
import com.ibm.hats.common.GlobalVariable;
import com.ibm.hats.common.IGlobalVariable;

  public static void execute(IBusinessLogicInformation blInfo)
    {
    	// Name of indexed global variable to be read in
        String gvInputName = "subtotals";
        // Name of global variable to be calculated and saved
        String gvOutputName = "total";
        
        // The indexed global variable where each index is a subtotal to be summed
        GlobalVariable gvSubtotals = 
					((GlobalVariable)getGlobalVariable(blInfo, gvInputName));
        
        float myTotal = 0;
        
        // Calculate the total by adding all subtotals
        for (int i = 0; i < gvSubtotals.size(); i++)
        {
        	myTotal = myTotal + Float.valueOf(gvSubtotals.getString(i)).floatValue();
        }
		
        // Save the total as a non-indexed local variable
        setGlobalVariable(blInfo,gvOutputName, new Float(myTotal));
    }