2014年12月22日月曜日

FileMakerでデータの入力ログを記録してみる

ログを記録する


FileMakerには「誰が」「いつ」「どこを」「どのように」変更したという履歴を残す機能がデフォルトではありませんので、開発者自身がその機能を作ることになります。

ログを記録しておく理由にはいくつかありますが、主に、

・誤って入力してしまった場合に後で復活できるようにするため。

・誰がそれを入力したのかを知るため

・データベースの使われ方の統計を取るため

があるでしょうか。

またログはその後のソリューションの改善にも役立ちます。同じような入力ミスが多いようであれば、それを防ぐために、改良しなければいけませんので、そういったことにも役立ちます。

方法

方法はいくつもありますが、簡単な方法を一つご紹介します。

・ログを取りたいテーブルにそれを記録するためのフィールドを作成。

・オプションで、「入力値の自動化」「計算式」を設定します。

・「フィールドに既存の値が存在する場合は置き換えない」のチェックを外します。

・計算式は下記の図のようになります。







この計算式でLet関数を使用します。

最初の変数は、この計算式を起動するためのトリガーです。

変数に代入しているフィールドはログを取りたいフィールドを設定します。

次に、計算で、変更のあったフィールド名、内容、タイムスタンプ、アカウント名を取得して書き込みます。

また、繰り返し記録するため、改行区切りのリストで変更があるたびに追加されていきます。

実際に記録されるログはこんな感じになります。






注意点

この方法には注意点があり、基本的にユーザが手入力したものしか反映されません。フィールド設定のスクリプトステップでは前にフィールドへ移動のステップを使えば反映されますが、フィールドがアクティブにならないものでは、「いつ、誰が」という記録は残りますが、どのように変更されたかというところまでは残りません。