2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-12-10

FileMaker で困ったことNo.1

といえば、たぶん破損レコードです。
idなどで検索したら見つけることはできるのですが、データが見えない。。
いわゆる「真っ白レコード」になってしまう現象です。
こんな感じ。
真っ白レコード.png
未入力なのではなく、データが見えなくなってしまう状態です。

破損理由が分からない

さて、データが見えないのはもちろん困るのですが、
一番困るのは、、「破損理由が分からない」ということです。

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

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

PTNAでは、多い時で10日で7件くらいのペースで壊れていきます。
※ もちろんデータはすぐに復旧出来るようにしていますが。

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

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

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

  • 壊れたタイミングを調査する  ← イマココ
  • 壊れた直前の作業を担当者に確認して、根本原因を把握する
  • 解決する

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

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

破損レコードの検索方法

onRecordBroken

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

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

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

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

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

でした。

どゆこと?

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

  • 修正時刻をフィールドに持ち
  • FileMakerの"修正情報:時刻" を保持するよう定義

しています。
20160907201836.png

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

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

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

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

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

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?