いいえ
MirrorSyncで使用するレイアウト上には、MirrorSyncの設定画面上で「修正情報タイムスタンプ」として定義されたフィールドを1つだけ配置してしてください。
概要
- MirrorSyncの設定画面上で「修正情報タイムスタンプ」として指定されたフィールドは、MirrorSyncでは同期で管理されるべき変更対象のフィールドとして使用できません。
- MirrorSyncの設定画面上で「修正情報タイムスタンプ」として指定されたフィールド以外はいかなる「修正情報」タイプの計算値自動入力フィールドも同期レイアウトに配置しないでください。
- 「修正情報」タイプの計算値自動入力フィールドを同期レイアウトに配置した場合、常に競合が発生して正しく同期を行うことができません。
以下で、修正情報の自動入力フィールドをレイアウトに配置した場合に発生する問題の具体例を紹介します。
具体例
前提A. 「修正情報ユーザ名」の計算値自動入力が設定されているフィールドが同期レイアウトに配置されている
前提B. ユーザーAとユーザーBはどちらも、正午に連絡先データベースを同期した。
前提C. ユーザーAはファイル内のレコードの "名"フィールドの値を "John"に変更した。
前提D. ユーザーBはファイル内の同じレコードの "姓"フィールドの値を "Smith"に変更した。
前提E. 午後1時に、ユーザーAが自分のファイルをHubと同期します。
前提F. 午後2時に、ユーザーBが自分のファイルをHubと同期を開始します。
この場合に必ず発生する問題点
- 前提F(ユーザBが同期を開始)した時点で、MirrorSyncはユーザーBは正午近くに前回の同期を実行し(前提B)、その後ユーザーAによってHubのデータが午後1時に更新されている(前提E)、という状況をを確認します。
- この時、MirrorSyncは2つのユーザの行なった変更に競合の可能性があるとて以下の確認プロセスを行います。
- MirorSyncはユーザAの変更(前提C)が既に適用されたHubのデータとユーザBによるSpokeデータの変更について、マージできるかどうかを検査します。
- 同じレコードの2つの異なるフィールドが変更されているので、通常であればMirrorSyncは変更をマージします。
- このケースでは「修正情報ユーザ名」の自動入力フィールドがレイアウト上に配置されているため、MirrorSyncはこのフィールドも同期対象としてマージできるかどうか検査します。
- 「修正情報ユーザ名」フィールドは常にユーザー間で異なるため、MirrorSyncはこのレコードをマージすることができないもの判定とし、「競合」として処理されます。
- MirrorSyncは同期設定で指定されている競合解決手法に基づいて、競合の解決を行います。競合解決の設定によって、同期がキャンセルされてしまったり、最悪の場合はユーザBの変更データは破棄されます。
この問題は、同じレコードが異なるユーザーによって変更されたときはいつでも発生し、正しい同期が行われないトラブルの原因になるので必ず守ってください。
原文:Can I have more than one modified auto enter field on my sync layout? http://docs.360works.com/index.php/MirrorSync_advanced_topics#Can_I_have_more_than_one_modified_auto_enter_field_on_my_sync_layout.3F
コメント
0件のコメント
サインインしてコメントを残してください。