繰り返し処理を行うには

ループ処理

あるコンポーネントが起点となって、それ以降の処理を複数回繰り返すことを「ループ」といいます。ループの構成にする場合、コンポーネントの「ループを開始」プロパティを「はい」に設定する方法と、ループ処理が前提のコンポーネントを使う方法があります。

Mapper コンポーネントでループを設定する

1.ループ構成にしたいフローを表示し、配置済みの Mapper コンポーネントを選択する

 

2.インスペクタで「ループを開始」プロパティの値欄をクリックし、「はい」を選択する


 

HINT

ループ処理
ループとは、あるコンポーネントが起点になって、それ以降の処理を複数回繰り返すことを指します。ループの開始後、フローは、起点となったコンポーネントに続くコンポーネントに沿って実行され、ループの終了を示すコンポーネント(LoopEnd、ParallelSubFlow、終了コンポーネント)にたどり着くと、ループを開始したコンポーネントに戻り、処理を繰り返します。

 

3.ループ処理が設定される


ループ処理が設定され、Mapper コンポーネントアイコンの出力ストリームの文字が、繰り返しを表す表示(3重の囲み)に変わります。

 

HINT

「ループを開始」プロパティ
Mapper コンポーネントの「ループを開始」プロパティを「はい」に設定することで、ループ処理を実行できます。CSV、FixedLength、Record の各ストリーム形式では、通常 1 つのストリームに複数のレコードが含まれていますが、Mapper の「ループを開始」プロパティを「はい」にすると、次のコンポーネントに、単一レコードのみを含むストリームとして渡すようになり、レコードの数だけ処理をループさせることができます。なお、Mapper コンポーネントの代わりに、後述する RecordGet コンポーネントを使ってファイルを 1 行ずつループ処理することもできます。

 

ファイル単位のループを設定する(FileGet コンポーネント)

1.ループ構成にしたいフローで、FileGetコンポーネントの「ファイルパス」プロパティをワイルドカードで(複数のファイルを含むように)指定する


 

HINT

FileGet コンポーネントの「ループを開始」プロパティ
FileGet コンポーネントの「ファイルパス」プロパティにワイルドカード(「*」または「?」)が指定されていて、複数のファイルが処理対象になっている場合、ファイル単位でのループ処理を設定できます。FileGet の「ループを開始」プロパティが「いいえ」の場合は、すべてのファイルがまとめてストリームに出力されますが、「はい」に設定すると、FileGet コンポーネントがループの起点となって、1 ファイルずつストリームに出力されます。

 

2.FileGetコンポーネントの「ループを開始」プロパティで「はい」を選択する


ファイル単位でのループ処理が設定され、FileGet コンポーネントアイコンの出力ストリームの文字が、繰り返しを表す表示に変わります。

 

HINT

FileGet コンポーネントでループ処理を設定した場合、対象のファイルが CSV ファイルであってもファイル単位のループとなり、レコード単位でのループとはなりません。CSV ファイルを読み込みながらレコード単位でループさせたい場合は、RecordGet コンポーネントを使用します。

 

ファイルを 1 行ずつループ処理する(RecordGet コンポーネント)

1.ループ構成にしたいフローで、「ファイル」タブのRecordGetコンポーネント(「CSVまたは FixedLength 形式のファイルをレコード単位で読み込みます」)を配置する


 

2.「ファイルパス」プロパティでループ対象のファイルを指定し、「読込み開始行」と「取得行数」を設定する


RecordGet コンポーネントがループの起点となって、ループの終了を示すコンポーネントまでの処理を繰り返し実行するよう設定できます。

 

HINT

RecordGet コンポーネントは常にループで処理するコンポーネントです。CSV または FixedLength 形式のファイルに対し、全体を一度に読み込むのではなく、指定行数ごとに読み込み、ループ処理を行います。

RecordGetコンポーネントの「読込み開始行」プロパティはループ処理を開始する行、「取得行数」プロパティは 1 回のループで単位となる行数です。ファイルを 1 行ずつ処理する場合は、「取得行数」に「1」を指定します。

 

ループを指定回数繰り返す(LoopStart コンポーネント)

1.対象のフローを表示し、ループの起点としたい位置へ、「コントロール」タブのLoopStartコンポーネント(「指定回数ループします」)を配置する


 

2.「ループする回数」プロパティに、ループ処理の回数を指定する


指定した回数分だけ、ループ処理が実行されるようになります。

 

HINT

ループの起点となるコンポーネントとその使い方として、以下のようなものがあります。

 •RDBGetコンポーネント-RDBから取得したレコード(SELECT 結果)を 1 行ずつループ
 •FileList コンポーネント-ファイル一覧を取得して 1 情報ずつループ
 •Mapperコンポーネント-入力レコードを1行ずつループ(入力と出力のストリーム変換が必要な場合)
 •RecordLoop コンポーネント-入力レコードを 1 件ずつループ(入力と出力のストリーム変換が不要な場合)
 •TextSplitLoop コンポーネント-文字列を区切り文字で分割してループ
 • POP3コンポーネントなど-受信メールを1通ずつループ

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
    キーワード:
  • フロー制御
  • ループ処理
  • FileGetコンポーネント
  • RecordGetコンポーネント
  • LoopStartコンポーネント
他にご質問がございましたら、リクエストを送信してください

このセクションの記事

他のキーワードで検索する