GrapeCity for Salesforce よくある質問

同時編集した場合の動作について(排他制御、排他処理、同時実行制御、排他ロック)

この記事では、SalesforceのデータをGrapeCity Spreadsheet for Salesforceを使う複数のユーザが同時に編集する場合の動作について説明します。この記事はSpring '17での確認結果をもとにしています。

Salesforceの標準画面では、同じ取引先のレコードを複数のユーザが同時に編集しようとすると、後から保存したユーザに対して次のエラーメッセージを表示します。以下の「%ユーザ%」には実際のユーザ名が表示されます。

Salesforce Classicの場合:
変更を保存できません
編集していたレコードは、編集セッション中に %ユーザ% によって変更されました。
もう一度編集する前に、レコードを再表示してください。
lock_accounts_salesforce_classic_50p.png

Lightning Experienceの場合:
このページのエラーを確認してください。
このレコードは、編集セッション中に %ユーザ% によって変更されました。入力したデータをメモしてから、レコードを再読み込みして更新を再入力してください。
lock_accounts_lightning_experience_50p.png

この結果、先に編集を開始していたユーザは変更を保存できないため、変更内容をメモ帳などに退避し、ページを再読み込みした後でレコードを編集しなおします。

これは、レコードを取得した時点の情報とレコードを保存する時点の情報を比較し、この間に別のユーザによってレコードが変更されていることがわかると、後から変更したユーザによって意図せずに別のユーザの変更が上書きされることを防いでいます。(いわゆる楽観的排他制御、楽観排他、楽観的ロック、オプティミスティック同時実行制御)

GrapeCity Spreadsheetでは、Salesforceの標準画面と同様の結果を提供しています。同じ取引先のレコードを複数のユーザが同時に編集しようとすると、後から保存したユーザの該当するレコードの行の見出しに対してGrapeCity Spreadsheetは次のエラーメッセージを表示します。

このレコードは %ユーザ% によって %hh:mm:ss% に変更されました。データを再読み込みしてから変更を再度入力してください。
lock_accounts_gcss173_50p.png

「%hh:mm:ss%」は別のユーザによってレコードが変更された時刻です。このエラーメッセージが表示されるとき、Salesforceの標準画面の場合と同じように編集結果を保存することはできません。変更内容をExcelなどにコピーして退避し、GrapeCity Spreadsheetのツールバーから「再読み込み」を実行します。その後、再度レコードの編集と保存操作を実行します。

なお、Salesforceの標準画面と、GrapeCity Spreadsheetで同時に同じレコードを編集する場合も同じ結果になります。

Salesforceの標準画面のうち、リストビューには排他制御がありません。GrapeCity Spreadsheetを代わりに使用すると、安全にデータを更新できます。

以上

0 コメント

記事コメントは受け付けていません。