FileMaker監査ログ自動記録の基本
基礎知識

FileMaker監査ログ自動記録の基本

2026年5月1日 admin 基礎知識

FileMakerで「監査ログ」を自動記録する意味とは?

FileMakerで顧客情報や売上データを扱っていると、「いつ」「誰が」「どの項目を」「どのように変更したか」を後から確認したくなる場面が少なくありません。
しかし、標準の状態では、詳細な変更履歴が自動で残るわけではないため、問題が起きたときに原因をたどれず困ってしまうことがあります。

そこで役に立つのが「監査ログ(変更履歴)の自動記録」です。
ポイントをおさえておけば、難しいプログラミングをしなくても、FileMakerの標準機能だけでシンプルな監査ログを作成できます。

この記事では、FileMakerで監査ログを自動記録するための基本的な考え方と、実現のための設定手順を、できるだけわかりやすく解説します。

監査ログを自動記録するための基本設計

まず、監査ログを考えるときに決めておきたいことは、次の4点です。

  • 誰が(ユーザー名)
  • いつ(日時)
  • どのレコードを(主キーやID)
  • どんな操作・変更をしたか(新規/編集/削除、変更前後の値)

この4つを押さえておけば、あとから状況を十分にたどることができます。
具体的には、次のような構成が基本形になります。

  • 監査ログ専用のテーブルを1つ作る
  • 監査ログ専用のレイアウトを1つ用意する(実際にはユーザーには見せなくてよい)
  • 対象テーブルの「OnRecordCommit」などのレイアウトトリガスクリプトで、ログ用テーブルにレコードを書き込む

監査ログ用テーブルの作成

まずは、FileMakerで監査ログを保存する専用テーブルを作成します。
テーブル名の例としては、監査ログAuditLog などがわかりやすいでしょう。

監査ログテーブルには、最低限、次のようなフィールドを用意します。

  • ログID(主キー、シリアル番号やUUID)
  • テーブル名(どのテーブルのレコードか)
  • レコードID(元のテーブルの主キーを保存)
  • 操作種別(新規/編集/削除などを文字列で保存)
  • フィールド名(変更されたフィールド名)
  • 変更前の値
  • 変更後の値
  • ユーザー名Get ( アカウント名 ) などを使用)
  • 操作日時Get ( 現在のタイムスタンプ ) などを使用)

最初はこれだけでも十分に役立つログになります。
「どのフィールドが変わったか」を細かく取りたくない場合は、「変更前のレコード情報」「変更後のレコード情報」をテキストで丸ごと保存するだけの、シンプルな設計にすることも可能です。

監査ログ記録用のスクリプトの考え方

次に、実際にログを記録するスクリプトの流れを整理します。標準的なパターンは次のようなものです。

  1. 対象レコードの主キーや変更箇所を取得する
  2. 監査ログテーブルのレイアウトに切り替える
  3. 新規レコードを作成して、ログ用フィールドに値をセットする
  4. 元のレイアウトに戻る

「いつスクリプトを動かすか」がポイントになります。
一般的には、レイアウトに対して「OnRecordCommit(レコード確定時)」トリガを設定し、レコードの新規作成や編集が確定されたタイミングで、ログ記録用スクリプトを呼び出します。

レコード確定時にログを記録する設定の例

ここでは、レコードの編集が確定されたタイミングで、監査ログを1行追加する流れを、ざっくりと説明します。
※ 実際のスクリプト名やフィールド名は、運用中のファイルに合わせて調整してください。

  1. 対象テーブルのレイアウトを開く
    レイアウトモードで、「レイアウト設定」→「スクリプトトリガ」から
    「OnRecordCommit」に「監査ログ_記録」などのスクリプトを指定します。
  2. 「監査ログ_記録」スクリプトの作成(イメージ)

    • 変数に元レコードの主キーや、必要に応じてフィールド値を格納
    • 「新規ウインドウ」や「カードウインドウ」で監査ログ用レイアウトを表示(ユーザーに見せたくない場合はオフスクリーンに表示)
    • 「新規レコード/検索条件」ステップでログレコードを作成
    • 「フィールド設定」ステップで、テーブル名・レコードID・操作種別・ユーザー名・日時などを格納
    • ウインドウを閉じて、元のレイアウト(元のウインドウ)へ戻る

削除時のログも取りたい場合は、「OnRecordDeleteRequest」トリガを使うと、削除前に情報を記録できます。
このように「いつトリガを起動するか」と「どの情報を保存するか」を整理することで、必要十分な監査ログが自動で蓄積されていきます。

どこまで細かくログを取るべきかの判断ポイント

監査ログは細かく取りすぎると、ログの件数が膨大になり、管理が大変になります。
実務上は、次のような観点で「どのレベルまで記録するか」を決めるとよいでしょう。

  • 金額や契約内容など、重要情報が変わったときだけ記録したいのか
  • すべてのフィールド変更を記録したいのか
  • 過去の状態へ戻す(ロールバック)までやりたいのか、原因追跡だけでよいのか

たとえば、「重要なフィールドだけを対象にして、その他はログを取らない」という割り切りをすることで、運用がシンプルになり、パフォーマンスへの影響も抑えられます。

運用上の注意点とメンテナンス

監査ログの自動記録を始めると、時間の経過とともにログテーブルのデータ量が増えていきます。
そのため、次のような運用ルールを事前に決めておくと安心です。

  • 「◯年以前のログはアーカイブファイルに移す」などの整理ルール
  • バックアップの対象に含めるかどうかの確認
  • 一般ユーザーが監査ログにアクセス・編集できないように、権限セットを調整する

とくに権限管理は重要です。
監査ログを簡単に削除できる状態だと、せっかくの履歴が意味をなさなくなります。閲覧は管理者だけに制限するなど、アクセス権をしっかり設定しておきましょう。

まとめ:まずは「シンプルな監査ログ」から始める

FileMakerでの監査ログ自動記録は、難しそうに見えますが、

  • 専用テーブルを用意する
  • 記録したい項目をしぼる
  • レコード確定時などのトリガでログ記録スクリプトを呼び出す

という基本を押さえれば、比較的シンプルに始められます。

まずは最小限の項目だけを記録する「シンプルな監査ログ」を作ってみて、
運用の中で「ここも記録したい」「このログは不要だった」といった気づきを反映しながら、少しずつ改良していくのがおすすめです。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。