Clicky

AppSheetで「予約履歴」追加時に親テーブルの「更新日」を自動更新する方法

AppSheet(アップシート)
AppSheet(アップシート)
この記事は約3分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

AppSheetで「顧客一覧」などの親テーブルに紐づく「予約履歴」のような子テーブルがある場合、履歴が追加されても親テーブルの「更新日」が自動で更新されないケースがあります。

その理由と、Automation(自動処理)を使って親の「更新日」を確実に更新する方法を解説します。

なぜ「ChangeTimestamp」だけでは不十分なのか

AppSheetの「ChangeTimestamp」列は、自テーブル内の列が変更されたときだけ反応します。

しかし、子テーブルである「予約履歴」に新しいレコードが追加されても、「顧客一覧」側では何も直接変更がないため、自動で「更新日」は変わりません

そこで必要なのが、Automation(Bot)を使った明示的な更新処理です。

Automationで親テーブルの更新日を更新する方法

処理イメージ図

┌────────────┐ 
│ 予約履歴が追加される ─→
└────────────┘

┌──────────────┐
│ 顧客一覧の「更新日」を更新 │
└──────────────┘

ステップ1:Botの作成

  1. 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:テストして確認

  1. アプリ上で「予約履歴」に新規予約を追加
  2. 「顧客一覧」側で該当顧客の「更新日」が現在時刻に変更されていれば成功です

応用のヒント

  • 編集や削除も含めたい場合は、Event設定を「All changes」に変更
  • 更新時刻の履歴を残したい場合は、スクリプトやログテーブルとの連携も検討できます

まとめ

  • AppSheetの「ChangeTimestamp」では子テーブルからの変化は検知できない
  • 子テーブルに「予約履歴」などを持つ場合、親テーブルの更新にはAutomationを使うのが最も確実
  • 一度設定すれば自動化でき、更新漏れを防げます