kintoneレコード同時編集問題の解決模索

kintoneを使っていると、どうしても目にしてしまうこのエラー

kintoneは同じレコードを複数のユーザーが同時に編集した場合、先にレコードを保存したユーザーの内容が反映されます

レコードのアクセスした順番ではなく、後からレコードの編集ボタンを押しても先に保存すれば勝ちという理不尽な世界

bozu
今誰かが編集しているのか分からないので、保存ボタンを押すと・・・新しいタブ開いて、打ったやつをコピペしてとまぁ面倒臭い

標準機能では他のユーザーが編集中だと通知してくれないので、アプリの運用を変えたり連携サービスやプラグインを使ったり・・・

色々ご紹介します

ライトコースで同時編集問題解決を検討してみた

bozu
1つのレコードに集結しない、1つのレコードに複数ユーザーが入力しないといけないアプリ運用を変えたらいい!!

ってことで、イメージとしてはみんなの情報を集約して見るだけのアプリと各自が情報を入力するだけのアプリに分けて作成します

見るだけのアプリ

例えば会議で各自のPCで確認したり、Zoomで繋ぎながら確認もしくは誰かが画面共有しながら利用をイメージしています

アプリ名はレジュメアプリにしておきます

ポイントとしては

  • 予定入力以外は編集する必要がない
  • 各ユーザーはアプリアクションを使って報告や予定を共有
  • 共有方法は関連レコードを活用
  • 表示するレコードの条件を工夫

で、下記の様なアプリを作成

関連レコードの表示するレコードの条件には、文字列1行の自動計算を使って会議名&開始(日時)で特定のレコードを絞り込めるようにしています

bozu
同じ日時に同じ会議名の会議を行うことはないでしょうし、万が一そんなケースがあるのであれば、文字列結合のバリエーションを変えればいいだけですからね

上記の方法で作成した会議コードを、アプリアクションで別のアプリ(今回は個人記入アプリ)にコピーした状態でレコードを作成します

入力するだけのアプリ

まぁ確認もしますが、確認するのは入力した本人であって他のユーザーはレジュメアプリで確認

レジュメアプリでアプリアクションを実行すると、会議コードが入力され、記入者にログインユーザーが入力された状態でスタートします

報告と今後の予定を入力するのですが、各ユーザー毎にレコードを作成するので

レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。

って事態に陥ることがない

1つのレコードに各ユーザーが報告事項や予定を入力する必要がないので保存できなかったとか、誰かの保存待ちとかを気にしなくていいんです

 

入力された状態

会議が始まると各ユーザーの入力した情報は、関連レコードで一覧となって確認可能です

会議前にコメントを入れておくことで、リアルに参加できなくても意見を伝えることができますし、会議中に1人1人報告する時間も省けるので便利ですよね

今回使った機能はkintoneのライトコースで活用できますので、スタンダードコースじゃない!!って人でも問題なし!!

  • 文字列(1行)の自動計算
  • アプリアクション
  • 関連レコード

では、スタンダードコースで利用可能な連携サービスやプラグインだとどんなことができるのかも紹介してみます

連携サービスやプラグイン

bozu
毎回別のアプリに情報を入力する方法ではなく、1つのアプリで編集を被らないようにしたい

まずはkintone連携サービスCustomineでチャレンジしてみましょう

連携サービス Customine

Customineにはそもそも

レコード編集画面をロックするってカスタマイズが存在します

このカスタマイズだけだと、編集ボタンを押さないとレコード編集画面をロックすべき状態か分からない(誰かが編集中の状態)ので

レコードのロック状態をスペースに表示するってカスタマイズを活用することで、表示しているレコードが編集可能か編集ロック中(誰かが先に編集中)かを確認することが可能となります

ロック状態はスペースフィールドに反映されるのですが、気づかずにレコード編集しようとすると

Customineを使うメリットとしては、レコード編集画面をロックする条件を設定できるので

  • ユーザーが〇〇だったら
  • ステータスが〇〇だったら
  • フィールドの値が〇〇だったら

カスタマイズするサービスなんだから当然と言えば当然なんですけど、jsとかさっぱりな自分でも状況に応じた運用ができるのでお勧めです!!

TIS プラグイン

続いて無料のプラグインをご紹介します

毎度お馴染みTISさんkintoneレコード同時編集確認プラグインです

なんとこのプラグインは設定の必要がありません

利用したいアプリにプラグインを追加するだけでOKです

誰かがレコードを先に編集していたら確認画面が表示されます

OKを押すと編集を行えるようになります。

ボタンを出したくないとかはプラグインの中身を変える必要があるので、そういった面で連携サービス(今回はCustomine)を使うかプラグインを使うか検討ですね。

アプリ運用前にしっかり設計を

ごく稀にレコード同時編集するぐらいであれば許容範囲?ごく稀も防ぎたい?

アプリ運用を考えた際、レコード同時編集する機会がどの程度あるか、どこまで許容できるかをアプリ運用前にしっかり考えておくことが大切です

bozu
1つのレコードを複数ユーザーが同時刻に編集する可能性がある・・・

複数ユーザーが同時編集する可能性があるのであれば、最初に書いた2つのアプリに分ける方法やそもそもスレッドやコメントを活用を検討する必要があるかもしれませんしね

シェアどうぞ宜しくお願い致します