例: 索引付きグローバル変数に含まれている値の追加
この例では、索引付きグローバル変数に含まれている値を追加し、別の索引なしグローバル変数に合計を保管します。これは、数値を表すストリングが索引付きグローバル変数 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));
}