AnsweredAssumed Answered

「関連レコードへ移動」が不可解な挙動

Question asked by nagnag on Jan 9, 2017
Latest reply on Jan 11, 2017 by nagnag

お世話になります。
「関連レコードへ移動」が不可解な挙動をする場合があり、困っております。

 

【環境】

  • Windows版のFMS14+FMP12 or 13(どちらでも発生/最新のアップデータ適用済)

 

【前提】

  • スタッフテーブル(キー:スタッフID)と作業記録テーブル(キー:スタッフID、作業日)があり、スタッフIDでリレーションしています。
    スタッフと作業記録は「1:N」であり、作業記録テーブルはリレーションのソートオプションで「作業日」の降順でソートしています。
  • スタッフテーブルをリスト形式で一覧表示するレイアウトがあり、このレイアウトではスタッフを検索して各スタッフレコード上に配置している「移動」ボタンで該当スタッフの最新の作業記録レコードを表示するスクリプトを呼び出すようにしています。
    そのスクリプトは、作業記録レコードの存在を確認した上で「関連レコードへ移動」で作業記録レコードへ移動する作りで、「関連レコードのみを表示」オプションはOFF、使用するレイアウトは作業記録の詳細画面です。
    なお、このスクリプトでは、「関連レコードへ移動」のあと作業記録テーブルのユニークキーを取出して、そのキーで作業記録テーブルを検索して、対象レコードを該当レコードのみに絞り込んでいます(レコード移動操作を抑制する目的)。

 

【現象】

前述の「移動」ボタン押下で、該当スタッフとは異なるスタッフの作業記録レコードが表示されることがあります(頻度はまれ)。
その現象発生時に表示される作業記録レコードは、他の端末にて新たに追加された作業記録レコードです。
一度現象が発生すると何度試しても発生し、その間に他の端末にて更に作業記録レコードが追加されると、表示されるレコードがそのレコードに変わります。
つまり、「関連レコードへ移動」を行うと、該当スタッフの関連レコードに移動せずに作業記録テーブルの最新レコードへ移動してしまう、という現象です。
なお、FMPを一旦終了させると正しい挙動になります。

 

現象が発生する環境が遠隔地であり、こちら(開発環境)では再現しないため、非常に困っております。
スクリプトのロジックに問題がない(と思われる)こと、発生頻度がまれでほとんどの場合問題がないこと、などから、データベースファイルの問題(破損など?)も疑いたくなるのですが、原因としてどういったことが考えられるでしょうか?

解決へ向けて、アドバイスをいただけると助かります。

Outcomes