4/22リリースで追加される「編集衝突の回避(β版)」機能についてご紹介します。
本機能は正式リリースするタイミングで、新規作成バインダについてはデフォルトで有効化する予定ですので、事前に内容をご確認ください。
内容についてご不明な点がある場合は、弊社サポートセンターへお問い合わせください。
背景
以下のような利用シーンでは編集衝突が発生して、「他のユーザ・画面で更新済みのため、保存できませんでした。」というメッセージが表示され文書を保存することができませんでした。
- 合議承認など複数ユーザが同一文書を操作する場合に部品の変更が発生している場合
(ユーザAは変更しているがユーザBは変更していない場合も含む) - 同一文書を複数のユーザで異なる部品を更新する場合
- ブランチ評価式が定義されている文書(親文書)を編集画面で開いた上で、ブランチ文書を開いて変更を行い、ブランチ評価式の値変更が発生した状態で、親文書を保存する場合
上記の事象はSmartDBの文書更新の排他の仕組みが、部品単位ではなく、文書単位で判断していることが背景にあります。
SmartDBの機能追加と利用シーンの拡大により、この編集衝突の発生が増え、利用者の利便性に大きく影響していることが課題となっているため、この度、排他の仕組みを見直すことにしました。
この対応をβ版として先行公開します。
仕様
- 更新判断を文書単位ではなく部品単位で行います。
- 複数ユーザにより、同一の部品が更新された場合は、従来どおり、編集競合と判断し、「他のユーザ・画面で更新済みのため、保存できませんでした。」というメッセージを表示します。
- 複数ユーザにより、異なる部品が更新された場合は、それぞれで文書の保存が可能となります。
この場合、完了画面で、自分が操作していない部品の値が反映されますが、更新履歴で他のユーザによる更新を確認することができます。
β版
β版では本機能を設定で有効化することができます。
以下の利用シーンでお使いのバインダがある場合は、設定を行い、ぜひご利用ください。
利用シーン例
- 対象ユーザ数が多い合議承認をしている
- 進捗管理などで複数ユーザによる操作が異なる部品の変更を前提としている
- ブランチ部品が定義されており親文書と子文書両方の同時編集(評価式更新を含む)を前提としている
設定
- バインダ属性の「編集衝突の回避(β版)」を有効化する
- バインダ属性の「文書ロック」を無効化する(利用シーン例2の場合は設定してください)
正式版
β版でのフィードバックをもとに改善予定ですが、現在、下記を予定しています。
仕様
- 文書ロック機能が有効な場合には、排他制御は現状の文書単位の判断のままとし、従来どおりの動作とします。
- 文書ロック機能が無効な場合には、排他制御は部品単位に変更します。
(「編集衝突の回避(β版)」の設定は削除予定) - 新規バインダ作成時には、文書ロック機能をデフォルトで無効で、排他制御は部品単位にします。
対応時期
2022年7月を目処に切り替えを予定しています。
以上