同一レコードを、同時に編集に入らせない方法

 

Kintoneアプリ上のレコードを、

同時に編集状態にしない為に、

[アクセス権の設定例] ステータスが「完了」のレコードは編集できないようにする

プロセス管理で承認されたレコードは編集不可にする

これらを参考に、

プロセス:作成中→共有中⇔編集中

通常は、共有中。

このステータスの間は編集不可。

編集時のみ、編集中にステータスを進め、

編集終了後に共有中にステータスを戻す。

 と設定してみました。

 

この時、編集中のステータスのレコードを編集出来る人を、

「編集中にステータスを変更した方のみ」に絞り込みたい場合は、

プロセス管理またはレコードの編集権限等を、

如何様に設定すれば宜しいのでしょうか。

 

また、他の方法でもっと簡単に設定出来る等あれば、

ご教授いただければ幸いです。

 

よろしくお願いいたします。

大川さん

ステータスを編集中に変更すると、更新者が更新されます。

ステータスが編集中の場合、更新者のユーザのみ編集可能に設定してはいかがでしょうか?

 

rex0220さん

いつもご教授ありがとうございます。

 

更新者のみ編集可能にする事で、思った通りの動きになりました!

 

しかし一つ問題が出てしまい、

誰かが「編集中」にステータスを変更し、レコードの更新作業中(保存迄の間に)、

もう一人がステータスを「共有中」に戻す事が出来てしまい、

そうなるとレコードの更新作業が終わり保存を行おうとすると、

権限が無い(更新者がもう一人に移る為)となってしまいます。

 

これに対しては、

「ステータスが編集中の場合は、現状の更新者しかステータスを変更できない」

と追加すれば良いと考え、

 

app.record.detail.process.proceed を利用して、

ログインユーザーと更新者が異なる場合は、

エラーメッセージを表示してキャンセル

 

というjsを追加する事にしようと思います。

※見当違いであれば、ご指摘いただけると幸いです。

 

よろしくお願いいたします。

 

いいと思います。
他にいい案が無いか考えてみましたが、それぞれ問題があり、いまいちでした。

参考案

・詳細画面表示時、ログインユーザーと更新者が異なる場合は、「編集完了」のボタンを非表示にする。
問題としては、DOM操作になってしまう。

・プロセス管理の機能で制御
プロセス管理の機能で制御する場合は、編集中の作業者を更新者に限定することで、他のユーザには、ステータスが変更できなくなります。
ただし、他のユーザが作業者を自分に変更すると、ステータス変更が可能となりますので問題は変わりません。
また、作業者が何度も変わるような運用であれば、作業者変更のオペレーションが面倒です。

いつも的確なご回答ありがとうございます。

 

お陰様で作業者以外は編集中のレコード閲覧も不可にし、

ステータス変更を出来なくする事で、

大体思っていた内容になりました。

 

助かりました、これからもよろしくお願いいたします。