AppSheet Automation で関連レコードを一括削除する方法

AppSheet
AppSheetAutomation

はじめに

AppSheet の Automation(Bot)で、関連子テーブルのレコードを一括削除したい場合は、Webhook を使うよりも標準の “Run action on rows”(データアクションを行に実行) ステップを使うのがシンプルかつ推奨される方法です。本記事では、以下の流れで設定し、関連レコードを一括削除する手順を解説します。

  1. Bot の Process で「Run a data action」で「Run action on rows」ステップを追加
  2. 「Referenced Table」削除対象のテーブルを選択
  3. 「Referenced rows」レコードリストを指定
  4. 「Referenced Action」でDeleteを選択

1. Bot の Process に「Run a data action」で「Run action on rows」ステップを追加

  1. Automation > Bots で該当の Bot を開く
  2. Process を編集
  3. + 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 の設計をシンプルに保ちつつ、確実に関連レコードをリセット&再構築したい場合には、ぜひこのアプローチをご活用ください。