FOR ステートメントはリスト (例えば、メッセージ配列) を繰り返します。
繰り返しのたびに、FOR ステートメントは相関変数 (構文図の correlation_name)をリスト (field_reference) の現在のメンバーと等しくしてから、ステートメントのブロックを実行します。FOR ステートメントの利点は、リストを繰り返すために、どんな種類のループ構造体も作成する必要がない (そして、無限ループになることもない) ことです。
SET OutputRoot.MQMD=InputRoot.MQMD; SET Environment.SourceData.Folder[1].Field1 = 'Field11Value'; SET Environment.SourceData.Folder[1].Field2 = 'Field12Value'; SET Environment.SourceData.Folder[2].Field1 = 'Field21Value'; SET Environment.SourceData.Folder[2].Field2 = 'Field22Value'; DECLARE i INTEGER 1; FOR source AS Environment.SourceData.Folder[] DO CREATE LASTCHILD OF OutputRoot.XML.Data.ResultData.MessageArrayTest.Folder[i] NAME 'FieldA' VALUE '¥' || source.Field1 || '¥' || CAST(i AS CHAR); CREATE LASTCHILD OF OutputRoot.XML.Data.ResultData.MessageArrayTest.Folder[i] NAME 'FieldB' VALUE '¥' || source.Field2 || '¥' || CAST(i AS CHAR); SET i = i + 1; END FOR;以下の出力メッセージを生成します。
<Data> <ResultData> <MessageArrayTest> <Folder> <FieldA>Field11Value1</FieldA> <FieldB>Field12Value1</FieldB> </Folder> <Folder> <FieldA>Field21Value2</FieldA> <FieldB>Field22Value2</FieldB> </Folder> </MessageArrayTest> </ResultData> </Data>