グローバルフィールドを使わないで開発する。

グローバルフィールドはファイルで共有されるフィールド。検索キーワード入力用のフィールドであったり、他のレイアウト等で使用するための一次保管用フィールドだったり、様々な箇所で活躍している。

同一ファイルでウインドウをいくつか立ち上げた場合、グローバルフィールドは共有されてしまうので、あるウインドウで値を変更したら、別のウインドウでも値が変わる。そういう仕様なのである。

開発者の多くは複数のウインドウを立ち上げるのを制御し、ウインドウ間で不整合が起こらないように気をつけている。

私も複数のウインドウを立ち上げたいという要望があるたびに断ったりしていたけど、テストの意味も含めて、「グローバルフィールドを使用しない開発手法」を考えてみた。

それが下記のファイルである。(スクリプト等はかなり適当に作ってあるのでご了承を・・・)

OnWindowOpen で新規にレコードを作成している簡単な仕組みだ。1Window が1レコードとなるため、ネットワーク等で共有されているファイルでも、同じレコードを同時に編集することはありえなくなる。よってレコードが使用中で編集できない、ということは起こらない。

検索窓等ではグローバルフィールドは使用せず、通常のフィールドを使用しているが、特に大きな問題はないように思える。

グローバルフィールドを使用しないということで、もう一つメリットが生まれる。

現在使用している値をそのままレコードに保存できるため ( うまくコントロールすれば ) ログインした際、そのアカウントが最後に使用した状態を再現できる。

グローバルフィールドは FileMaker 特有な機能であり、ほぼ全ての開発者が使用しているもの。使わないのは勿体無い機能なのだが、使わない、という選択肢もあるのだなぁと思った次第です。

でもデメリット等もありそうなので、注意深く行かなくちゃいけないなぁなんて思っていたりします。

Like what you read? Give p388cell a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.