Docly Child

繰り返しを途中で終了(BreakIf)

1475 views

この記事では、LoopやForEachといった繰り返し作業を途中で終了させるやり方を説明します。

【できるようになること】

  • 繰り返しを途中で終了させる


 繰り返しを終了

下記タブにてLoop,ForEachそれぞれでの繰り返しの終了方法を説明します。

今回は、繰り返しの途中で変数が一定以上の数値になった時に終了とします。

例:Loopの途中で変数iが2以上になったら終了
(※Loopの中では変数に保存をしなくても変数iが定義され、最初を0として繰り返しが終わるごとに数値が1上昇します。)

今回はBreakIfに${i > 2}と設定し、iが3(4回目の繰り返し)になったら終了とします。


完成形のテキストは、ワークフローサンプル1を参照ください

※今回は数値を扱いましたが、特定の要素が出るまで繰り返して出たら終了やエラーが出るまで実施してエラーになったら終了など様々な使い方ができます。

ここでは、スプレッドシートなどのデータを繰り返し、特定の列に値が無くなったら終了とします。

例:3行目まで4列、4行目からは3列の下記データを繰り返し4列目が無くなったら終了

上記のデータを変数に保存し、繰り返していく時、BreakIfの設定は変数の4番目が空の時に終了なので${!変数名[3]}と記載します。

(${!変数名}で変数が空の時を、${変数名[3]}で左から4番目の要素を指します。)

完成形はワークフローサンプル2を参照ください。

「ページ上の”次へ”や”次のページ”等のボタンがなくなったら、その時点で繰り返しを終了する」といった処理も可能です。

この方法の詳細は、以下ページの「複数のページからスクレイピングする > 2.次のページボタンがある限り、最大x回繰り返す」をご参照ください。

参考:検索結果のスクレイピング

# 繰り返し
+loop_1:
loop>: 5
_do:

# テキストを作成
+text_1:
action>: Text
text: ${i}

# 繰り返しを終了する
+break_if_1:
break_if>: ${i > 2}

# 変数に保存
+store_value_1:
action>: StoreValue
key: testdata
value: [["aa","bb","cc","dd"],["aa","bb","cc","dd"],["aa","bb","cc","dd"],["aa","bb","cc",""],["aa","bb","cc",""]]

# 各要素について繰り返す
+for_each_1:
for_each>:
tests: ${testdata}
_do:

# テキストを作成
+text_1:
action>: Text
text: ${tests}

# 繰り返しを終了する
+break_if_1:
break_if>: ${!tests[3]}

このページは役に立ちましたか?