FOR ステートメントはリスト (例えば、メッセージ配列) を繰り返します。
>>-FOR--correlation_name--AS--field_reference--DO--statements---> >--END--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.XMLNSC.Data.ResultData.MessageArrayTest.Folder[i]
NAME 'FieldA' VALUE '¥' || source.Field1 || '¥' || CAST(i AS CHAR);
CREATE LASTCHILD OF OutputRoot.XMLNSC.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>Field11Value¥1</FieldA>
<FieldB>Field12Value¥1</FieldB>
</Folder>
<Folder>
<FieldA>Field21Value¥2</FieldA>
<FieldB>Field22Value¥2</FieldB>
</Folder>
</MessageArrayTest>
</ResultData>
</Data>