FileMaker で困ったことNo.1
といえば、たぶん破損レコードです。
idなどで検索したら見つけることはできるのですが、データが見えない。。
いわゆる「真っ白レコード」になってしまう現象です。
こんな感じ。
未入力なのではなく、データが見えなくなってしまう状態です。
破損理由が分からない
さて、データが見えないのはもちろん困るのですが、
一番困るのは、、「破損理由が分からない」ということです。
何かのスクリプトで壊しているのか・・
はたまた作業の仕方が悪く(作業途中でLANを引きちぎるとかね)壊れてしまうのか・・
どれくらい頻繁に起きるのか
PTNAでは、多い時で10日で7件くらいのペースで壊れていきます。
※ もちろんデータはすぐに復旧出来るようにしていますが。
そのため、担当者は毎日新しく破損したレコードがないか、チェックをしているとのことでした。
破損レコードを防止するまでの道
ということで、9月に調査をしたのでその方法をまとめます。
- 壊れたタイミングを調査する ← イマココ
- 壊れた直前の作業を担当者に確認して、根本原因を把握する
- 解決する
壊れたタイミングを調査する
大分前置きが長くなりましたが、ここからが本題です。
破損レコードの検索方法
onRecordBroken
いつ壊れたのかを知りたいので、onRecordBroken というトリガがあれば最適だったのですが、未実装なようでした。
破損レコードだけを検索する
ならば、破損レコードだけを検索する方法を調査しました。1
これは分かってみれば単純で、
- 修正時刻が空になっているレコード
でした。
どゆこと?
レコード破損が頻発しているファイルでは、
- 修正時刻をフィールドに持ち
- FileMakerの"修正情報:時刻" を保持するよう定義
つまり、なにか修正したらFileMakerが勝手に修正時刻を入れてくれる設定にしています。
そしてこの "修正情報" はレコードが破損する時に、空白が入ってしまうようです。2
ということで、修正日時フィールドが空のレコードを検索することで、破損レコード数をチェックすることができるようになりました!