4.2.4 繰り返し実行部品
機能
フローを繰り返し実行できます。繰り返し入力プロパティ(inputProperties)に指定した値を,1 回の繰り返しごとにフローに設定し,サービスを実行できます。例えば,同じ処理を異なるサーバに実行したい場合などに便利です。繰り返し実行部品は,最大で3段までの入れ子定義ができます。
なお,フローの実行方法には,フローを並行で実行する「並行実行」と,フローの実行が完了したら次のフローを順番に実行する「逐次実行」があります。
注意事項
-
部品の実行中にタスクを実行停止した場合は,実行中の繰り返しフローは実行中の部品が完了次第停止されます。ただし,ユーザー応答待ち部品の場合は,部品の完了を待たないで停止されます。未実行の繰り返しフローは実行されないため,プロパティ「outputResult」には「false」が格納されます。
-
部品の実行中にタスクを強制停止した場合は,実行中の処理が直ちに終了され,タスクの状態が「失敗」になります。なお,[タスク]画面の[フロー]エリアに表示されるステップの戻り値は,80になります。タスクログに出力される戻り値は,強制停止したタイミングによって異なります。
-
プロパティ「foreachMode」で「parallel」を指定している繰り返し実行部品が上位の階層に存在する場合,繰り返し実行タスク内で参照・更新するプロパティ(サービスプロパティ,部品の出力プロパティ,または変数)の値は,同じ繰り返し実行タスク(n回目のフロー)でだけ有効です。同時に処理している繰り返し実行タスク(n回目以外のフロー)とは,プロパティ(サービスプロパティ,部品の出力プロパティ,または変数)の値を共有できません。
下位の階層の繰り返し実行タスクとも,プロパティの値を共有できません。次の図に「部品Z」が更新した出力プロパティを,各階層の部品から参照した場合の参照可否について示します。
-
繰り返し実行部品の配下に置けるフロー数は,1サービスあたり最大で10,000個です。 繰り返し実行部品配下のフロー数の合計が10,000個を超えないように,各繰り返し部品のプロパティ「inputProperties」を設定してください。なお,フロー数には最上位のフロー,および階層フロー部品によるフローは含みません。
例えば,次の図のようにNを2 回,Mを2 回,Zを10回繰り返すように,それぞれ繰り返し実行部品の「inputProperties」に設定した場合,フロー数の合計は「N + N × M + Z(2 + 2 × 2 + 10)」で「16」となります。
-
繰り返し実行部品を入れ子で定義している場合,サービスビルダーのデバッグ実行時にWebブラウザーの応答が遅くなる,またはWebブラウザーが応答しないことを示すダイアログが表示される場合があります。この場合,各繰り返し実行部品のプロパティ「inputProperties」に設定する値を少なくしたあとで,デバッグを再実行してください。
-
繰り返し実行部品から[失敗したステップからリトライ]でリトライすると,繰り返し実行部品の配下のステップが最初から実行されます。また,繰り返し実行部品の配下のステップの状態が「失敗」で,ステップ作成時に[ステップ作成]ダイアログボックスで設定した[後続ステップ実行条件]でステップの状態が「正常終了」になる条件を指定している場合は,タスクをリトライできません。
-
繰り返し実行部品から[失敗した次のステップからリトライ]でリトライすると,繰り返し実行部品の次のステップから実行されます。この場合,繰り返し実行部品のステップの状態は「正常終了」になります。なお,繰り返し実行部品の配下のステップの状態は,以下のようになります。
-
繰り返し実行部品が階層フロー部品,またはサービス部品の配下に存在する場合
「正常終了」していたステップの状態は,変更されません。「失敗」または「未実行」のステップの状態は,一度「待機中」に変更された後,階層フロー部品,またはサービス部品のステップの実行が完了した後に,「未実行」になります。
-
上記以外の場合
「正常終了」していたステップの状態は,変更されません。「失敗」または「未実行」のステップの状態は,「待機中」になります。タスクの実行が完了した後も「待機中」のままです。
-
バージョン
01.00.01
タグ
Control Flow
戻り値
戻り値 |
説明 |
---|---|
0 |
正常に終了した。 |
1 |
一部の繰り返し処理が失敗した。 |
2 |
すべての繰り返し処理が失敗した。 |
3 |
サービス内の繰り返し部品配下のフロー数の合計が上限を超えた。 |
65 |
JP1/AOサーバとの接続に失敗した。例えば,部品実行中にJP1/AOサーバが停止された場合が該当する。 |
66 |
次のユーザーがJP1ユーザーにマッピングされている。
|
68 |
対象のジョブ実行IDに関する情報がない。 |
69 |
タスク処理エンジンの環境変数の取得に失敗した。 |
80 |
タスクの実行を停止した。 |
81 |
部品が不正な状態で呼び出された。 |
82 |
タスク処理エンジンからの要求メッセージを正しくパースできない。 |
83 |
JP1/AOサーバの環境が壊れている。 |
84 |
指定された部品の情報が取得できない。 |
86 |
指定したプロパティ値に誤りがある。 |
127 |
そのほかのエラーが発生した。 |
プロパティ一覧
プロパティを次の表に示します。
プロパティキー |
プロパティ名 |
説明 |
デフォルト値 |
入出力種別 |
必須区分 |
---|---|---|---|---|---|
inputProperties※1 |
繰り返し入力プロパティ |
繰り返す回数分の入力プロパティの値を1,024文字以内で指定します。 1回の繰り返しごとに,異なるプロパティを指定できます。プロパティは,コンマ区切りで指定してください。なお,コンマは区切り文字としてだけ使用してください。 また,繰り返す回数の上限は99回です。そのため,100個以上の値をコンマ区切りで指定できません。 |
− |
入力 |
○ |
outputProperties※2 |
繰り返し出力プロパティ |
繰り返した回数分の出力プロパティの値が1,024文字以内で出力されます。 1回の繰り返しごとに,1つのプロパティ値がプロパティ「inputProperties」の指定順にコンマ区切りで出力されます。なお,コンマは区切り文字として使用してください。 |
− |
出力 |
△ |
outputResult |
繰り返し実行結果 |
フローごとの実行結果がコンマ区切りで出力されます。
|
− |
出力 |
△ |
foreachMode |
繰り返し実行方式 |
繰り返し実行するフローの実行方式を指定します。
|
parallel |
入力 |
○ |
- 注※1
-
プロパティ「inputProperties」に指定した値は,繰り返し実行するフロー内で使用される予約プロパティ「reserved.loop.input」に格納されます。予約プロパティ「reserved.loop.input」および「reserved.loop.index」は,繰り返しごとに異なる値が格納されます。予約プロパティ「reserved.loop.input」および「reserved.loop.index」は,繰り返しごとに異なる値が格納されるため,参照指定「?dna_reserved.loop.input?, ?dna_reserved.loop.input?」の形式で指定してください。
- 注※2
-
プロパティ「outputProperties」には,繰り返し実行するフロー内で使用される予約プロパティ「reserved.loop.output」の値が格納されます。
関連トピック
-
マニュアル「JP1/AO 構築ガイド」−「ユーザー設定プロパティファイル(config_user.properties)」のトピック
-
マニュアル「JP1/AO サービステンプレート開発ガイド」−「予約プロパティ一覧」のトピック