同一レコードを同時に編集した際の標準機能挙動(Collision Detection)

排他制御 機能

複数ユーザが同一レコードを同時に編集した場合、特に同一項目を編集した場合は意識しておくことが必要です。

2パターンを検証してみます。

パターン1:自分が編集した項目以外を別ユーザが同時保存した場合

同一レコードを同時編集していきます。

・取引先の初期状態:電話番号が「03-1111-1111」である状態からスタートします。

パターン1

 

 

・ユーザA(自分)がこの取引先を編集モードにします。

取引先2を編集

 

 

・ユーザB(他のユーザ)が同じ取引先を編集モードにします。

編集モード

 

 

・ユーザA(自分)が電話番号を「03-1111-0000」に変更し保存します。

電話番号

 

 

・ユーザB(他のユーザ)がFaxを「06-0000-0000」と入力し保存します。

保存直後に下記トースト表示があり他のユーザが同時に編集していたことが分かります。

保存されました

 

 

電話番号、Faxとそれぞれ別項目を更新しました。

結果的に取引先はユーザB(他のユーザ)が電話を編集した通り「03-1111-0000」に更新されています。

FaxはユーザA(自分)が入力した通り「06-0000-0000」が保存されています。

Faxの入力

 

 

このように複数ユーザが同一レコードの別項目を編集するとトースト表示で別ユーザが同時編集していたことが分かりますが、

各ユーザが入力した値はそのまま反映されることが分かります。

 

 

パターン2:自分が編集した項目と同じ項目を別ユーザが同時保存した場合

同一レコードを同時編集していきます。

・取引先の初期状態:電話番号が「03-1111-0000」である状態からスタートします。

パターン2

 

 

・ユーザA(自分)がこの取引先を編集モードにします。

取引先名の追加

 

 

・ユーザB(他のユーザ)が同じ取引先を編集モードにします。

取引先2の編集モード

 

 

・ユーザA(自分)が電話番号を「03-1111-8888」に変更し保存します。

電話の編集モード

この段階で「03-1111-8888」は正常に保存完了します。

保存後

 

 

・ユーザB(他のユーザ)が電話番号を「03-1111-9999」に変更し保存します。

電話の再編集

 

 

保存が完了する前に下記のようにどちらの値を最終的な正の値として保存するか選択する画面が表示されます。

あくまでユーザB(他のユーザ)に表示される画面であり、既に保存完了したユーザA(自分)には表示されません。

保存する値を選択

保存ボタンを押して初めて他のユーザも同時に同一項目を編集していたのだと気づくことが出来ます。

 

 

注意点

この挙動はコリジョンディテクション (衝突検出) としてドキュメント化されています。

Help And Training Community

この挙動は編集またはインライン編集時に適用されます。

そのためアクションやパスでのレコード更新時に適用されないため注意が必要です。

また、標準機能で用意されている機能であるため無効化することは出来ません。

機能
Salesforceナレッジ

コメント

タイトルとURLをコピーしました