みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつもお世話になっております。
FileMakerのレコードロック回避方法について教えてください。
現在、Aというレイアウトで支店テーブルのレコードを表示しています。
[支店]
no|会社 |金額 |備考
01|本社 |300 |あいうえお
02|大阪支店 |600 |かきくけこ
03|愛知支店 |500 |さしすせそ
といったテーブルをAレイアウトにフォーム型式で表示しています。
本社の人は本社レコードのみ表示、大阪支店の人は大阪支店のみ表示といったようにしています。
本社の人が備考を入力中だと大阪,愛知支店の人が金額、備考のフィールドに入力すると
レコードロックがかかってしまいできません。
金額、備考フィールドは誰が見ても最後に入力したものを表示させておく必要があるため、
グローバルフィールドを使用せず、通常のフィールドです。
レコードロックの回避方法があればご教授お願い致します。
ファイルはどのように共有されているのですか?
FileMaker Server で共有または非推奨ですがピアツーピア共有をしているとき
「本社」「大阪支店」「愛知支店」がそれぞれ別のレコードで
それぞれの「備考」フィールドに入力しているならレコードロックは発生しません。
※「本社」を2箇所から触っているなら別ですが......
金額、備考フィールドは誰が見ても最後に入力したものを表示させておく必要があるため、
グローバルフィールドを使用せず、通常のフィールドです。
これが何を意味するのか分かりませんがどんなレイアウトにどのようにフィールドを配置しているのですか?
例えば「備考」だけ別のテーブルで1レコードしか無いという場合には競合してしまうのでロックが発生します。
ただし最後に編集した状態を残したいなら、誰かが書いている間は終わるまで待ったほうが自然ではありませんか?
同時に書けてしまうほうが時系列がおかしいと思います。
Offline
Moz様
返信ありがとうございます。
ピアツーピア共有は不可にしています。
no、会社、金額、備考は同じテーブルです。
山田さんが1レコードめ(本社)の「no、会社、金額、備考」のいずれかを編集の場合、
佐藤さんはそれ以外のレコード(大阪支店、愛知支店)の「no、会社、金額、備考」のいずれのレコードも編集できなくなります。
共有はどのようにされているのでしょうか?
それぞれが別のレコードでフォーム形式であればそのようなロックにはなりません。
レコード数は3なのですよね?
繰り返しになっていて1レコードに各支店の情報が入っているとかではないですよね......
本社の人は本社レコードのみ表示、大阪支店の人は大阪支店のみ表示といったようにしています。
これをどのように実現されていますか?何かリレーションを設定して
素のテーブルをフォーム形式にしているだけではないように思います。
具体的には「編集ができなくなる」というのはどのような状態を指していますか?
例えばダイアログが出るとか。
書かれているとおりの構造のファイルです。どこが異なりますか?
https://bit.ly/32tnPqd
Last edited by Moz (2020-08-27 15:08:00)
Offline
Moz様
ファイル構成は頂いた通りです。
改めて自分の作成したデータを見直していたら原因は分かりました。
FileMakerでファイルを開いた人の情報を格納する、全てグローバルフィールドで1レコードしかないテーブルを作っています。(テーブル名:グローバルテーブル)
例えば山田さんがFilemakerを開いた場合、
グローバルテーブルのフィールド「社員名、会社」に「山田、本社」がセットされます。
「グローバルテーブル.会社=支店.会社」でリレーションを張り、
グローバルテーブルのレイアウトにリレーション先の支店のフィールドを貼り付けていました。
解決しそうですね。
グローバルフィールドしかないテーブル(グローバルテーブル)と他のテーブルにリレーションしているとき
グローバルテーブルのレイアウトから他のテーブルを編集する際にレコードロックが発生します。
これを防ぐためにはグローバルテーブルにもセッション分のレコードが必要です。
Offline
Moz様
すごく勉強になりました。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 517.67 KiB (Peak: 522.58 KiB) ]