はじめに
AppSheet の Automation(Bot)で、関連子テーブルのレコードを一括削除したい場合は、Webhook を使うよりも標準の “Run action on rows”(データアクションを行に実行) ステップを使うのがシンプルかつ推奨される方法です。本記事では、以下の流れで設定し、関連レコードを一括削除する手順を解説します。
- Bot の Process で「Run a data action」で「Run action on rows」ステップを追加
- 「Referenced Table」削除対象のテーブルを選択
- 「Referenced rows」レコードリストを指定
- 「Referenced Action」でDeleteを選択
1. Bot の Process に「Run a data action」で「Run action on rows」ステップを追加
- Automation > Bots で該当の Bot を開く
- Process を編集
- + Step → 「Run a data action」「Run action on rows」を選択
2. 「Referenced Table」削除対象のテーブルを選択
- Referenced Table:プルダウンから対象テーブル「
生産計画工程テーブル」を選択
- Rows to execute this action on: appsheetコピーする編集する
[_THISROW].[Related 生産計画工程テーブルs]
親テーブルの行(Bot のトリガー行)に紐づく関連レコード一覧を指定します。
3. 「Referenced rows」レコードリストを指定
- Referenced rows:SELECT文で削除対象となるレコードセットを指定します。
SELECT(生産計画工程テーブル[生産計画工程id], [_THISROW].[生産計画id] = [生産計画id])
4. 「Referenced Action」でDeleteを選択
- Referenced Action:プルダウンから「Delete」を選択
これで Bot 実行時に、指定した子レコードすべてへ Delete 生産計画工程
アクションが適用され、一括削除されます。
5. 一括登録と組み合わせる
同じ Process の中で、削除ステップの次に「Call a webhook(または別の Run action on rows)」で一括登録処理を続けると、以下のような流れになります。
Step 1: Run action on rows (Delete 生産計画工程) ← 旧レコードを全削除
Step 2: Call a webhook (Add) ← 新レコードを一括登録
- 一括削除 で既存の関連レコードをクリア
- 一括登録 で最新のシーケンスを追加
- これにより常に「最新の関連レコードセット」へリフレッシュできます。
まとめ
- Run action on rows は AppSheet 標準機能だけで一括削除を実現できる最もシンプルな方法。
- 子テーブル側に Delete アクションを作成し、Automation の Process で関連レコードリストを指定するだけ。
- 削除と登録を同一 Process に並べることで、一連のリフレッシュ処理をまとめてワンセットで実行可能。
Bot の設計をシンプルに保ちつつ、確実に関連レコードをリセット&再構築したい場合には、ぜひこのアプローチをご活用ください。