Edited at

FileMaker で真っ白レコードを見つける

More than 1 year has passed since last update.


FileMaker で困ったことNo.1

といえば、たぶん破損レコードです。

idなどで検索したら見つけることはできるのですが、データが見えない。。

いわゆる「真っ白レコード」になってしまう現象です。


こんな感じ。

真っ白レコード.png

未入力なのではなく、データが見えなくなってしまう状態です。


破損理由が分からない

さて、データが見えないのはもちろん困るのですが、

一番困るのは、、「破損理由が分からない」ということです。

何かのスクリプトで壊しているのか・・

はたまた作業の仕方が悪く(作業途中でLANを引きちぎるとかね)壊れてしまうのか・・


どれくらい頻繁に起きるのか

PTNAでは、多い時で10日で7件くらいのペースで壊れていきます。

※ もちろんデータはすぐに復旧出来るようにしていますが。

そのため、担当者は毎日新しく破損したレコードがないか、チェックをしているとのことでした。


破損レコードを防止するまでの道

ということで、9月に調査をしたのでその方法をまとめます。


  • 壊れたタイミングを調査する  ← イマココ

  • 壊れた直前の作業を担当者に確認して、根本原因を把握する

  • 解決する


壊れたタイミングを調査する

大分前置きが長くなりましたが、ここからが本題です。


破損レコードの検索方法


onRecordBroken

いつ壊れたのかを知りたいので、onRecordBroken というトリガがあれば最適だったのですが、未実装なようでした。


破損レコードだけを検索する

ならば、破損レコードだけを検索する方法を調査しました。1

これは分かってみれば単純で、


  • 修正時刻が空になっているレコード

でした。


どゆこと?

レコード破損が頻発しているファイルでは、


  • 修正時刻をフィールドに持ち


  • FileMakerの"修正情報:時刻" を保持するよう定義


しています。

20160907201836.png

つまり、なにか修正したらFileMakerが勝手に修正時刻を入れてくれる設定にしています。

そしてこの "修正情報" はレコードが破損する時に、空白が入ってしまうようです。2


ということで、修正日時フィールドが空のレコードを検索することで、破損レコード数をチェックすることができるようになりました!





  1. 破損レコード数をチェックできれば、定期的にチェックしてレコード数が増えた期間に壊れたことが分かるので、その期間に行われたオペレーションから根本原因が探れるだろうという魂胆です。 



  2. その他のフィールドは、見えないし取得もできないけれど、データは入っているらしく、検索には使えるという謎の仕様です。