AppSheetで「顧客一覧」などの親テーブルに紐づく「予約履歴」のような子テーブルがある場合、履歴が追加されても親テーブルの「更新日」が自動で更新されないケースがあります。
その理由と、Automation(自動処理)を使って親の「更新日」を確実に更新する方法を解説します。
なぜ「ChangeTimestamp」だけでは不十分なのか
AppSheetの「ChangeTimestamp」列は、自テーブル内の列が変更されたときだけ反応します。
しかし、子テーブルである「予約履歴」に新しいレコードが追加されても、「顧客一覧」側では何も直接変更がないため、自動で「更新日」は変わりません。
そこで必要なのが、Automation(Bot)を使った明示的な更新処理です。
Automationで親テーブルの更新日を更新する方法
処理イメージ図
┌────────────┐
│ 予約履歴が追加される ─→
└────────────┘┌──────────────┐
│ 顧客一覧の「更新日」を更新 │
└──────────────┘
ステップ1:Botの作成
- AppSheetエディタ → Automation → Bots → 「+ New Bot」
Botの名前
予約履歴追加時に更新日を変更

Event(トリガー)設定
- Table:
予約履歴
- Event:
Adds only
(追加時のみ)
削除アップデートも追加するときは両方チェックをいれます

Process(処理)設定
- Step name:
更新日変更
- Step type:
Data: set the value of some columns in this row
- Table:
顧客一覧
- Row to update:
[顧客ID]
に一致する行(例:[_THISROW].[顧客ID]
) - Columns to update:
更新日
:NOW()

ステップ2:テストして確認
- アプリ上で「予約履歴」に新規予約を追加
- 「顧客一覧」側で該当顧客の「更新日」が現在時刻に変更されていれば成功です
応用のヒント
- 編集や削除も含めたい場合は、Event設定を「All changes」に変更
- 更新時刻の履歴を残したい場合は、スクリプトやログテーブルとの連携も検討できます
まとめ
- AppSheetの「ChangeTimestamp」では子テーブルからの変化は検知できない
- 子テーブルに「予約履歴」などを持つ場合、親テーブルの更新にはAutomationを使うのが最も確実
- 一度設定すれば自動化でき、更新漏れを防げます