LOOPERによる繰り返し(ループ)処理を行うことで、条件に当てはまる複数のレコードを一括で処理する方法を記載します。
利用例:チェックシートの一括承認
LOOPERについて
・LOOPERはリスト(配列)に対して繰り返し(ループ)処理を行うためのカスタムウィジェットです。
・249件までのレコードを一度に処理することができます。
・トリガ(実行したい繰り返し(ループ)処理、処理完了後の動作、エラー時の動作)を設定して利用します。
・Begin Loopに設定したブール値の変数が「真である」に変更されたタイミングでトリガが実行されます。
・Iterationに設定した変数で、実行するLoop Listのインデックスを指定します。
※カスタムウィジェット、インストール方法についてはこちら
トリガの設定
本記事では例として、登録日がアプリで指定する日付と同じである全てのレコードに対して完了フラグを立てるトリガを設定します。
・テーブルイメージ
・アプリの完成イメージ
LOOPERフラグのチェックボックスにチェックを入れるとテーブルの集計結果に対してLOOPERが実行されます。
・設定方法
- テーブルにクエリを作成する ※クエリの作成についてはこちら
(本記事ではクエリ名を「登録日で抽出」とします。)
・フィルタ:登録日がアプリ入力と等しい - テーブルに集計を作成する ※集計の作成についてはこちら
(本記事では集計名を「対象日付のレコードID配列」とします。)
・計算:一意の値
・フィールド:ID
※テーブルレコードのロード・書き込み時にIDを指定する必要があるため、フィールドをIDにします。 - アプリ上に必要な変数を作成する ※変数の作成についてはこちら
・登録日を入力する際に使用する変数(本記事では名前を「登録日入力」とします。)
- 変数タイプ:日時
・LOOPERを開始するトリガとなる変数(本記事では名前を「LOOPERフラグ」とします。)
- 変数タイプ:真偽値
・Loopの実行回数をカウントする変数(本記事では名前を「Iteration」とします。)
- 変数タイプ:整数 - アプリにテーブルを追加し、上記手順1,2で作成したクエリ・集計を追加する
・クエリ フィルタを定義:登録日が変数「登録日入力」と等しい - インタラクティブテーブルを配置し、フィルタを追加する
・フィルタ:登録日が変数「登録日入力」と等しい
※条件に該当するレコードのみが表示されるようにするため - 変数を配置する
- LOOPERを配置し、トリガを設定する
・Loop List(参照するリスト):Tulipテーブル集計>対象日付のレコードID配列
・Begin Loop(Loop開始を判断するフラグ):変数「LOOPERフラグ」
・Iteration(インデックスの指定):変数「Iteration」
・Loop Action(実行したい処理):
①テーブルレコードをロードし、完了フラグのフィールドに真偽値「真である」を保存する
②変数「Iteration」に1を足す
※必ずIterationに設定した変数に+1する必要があります。1を足すことで、Loop List内の次のインデックスを呼び出します。
・END ACTION(処理完了後の動作):変数「完了とするレコードID配列」「LOOPERフラグ」「Iteration」「登録日入力」の値を削除する
・ERROR(エラー時の動作):250件以上のレコードは処理できない旨のエラーメッセージを表示させる
- 完了