プロセル管理機能とレコードのアクセス権利設定とを組み合わせた更新制御方法の伺い

プロセス管理機能のステータスによって、レコードの編集を不可にするようなワークフローを構成しようとしています。

 

ところが、
プロセス管理機能を適用したレコードのアクセス権を”閲覧”のみに制限して、明細画面の上部に表示されたプロセス管理機能のペインでステータスを変更した場合、「CB_NO02 権限がありません」というエラーメッセージが表示されて、ステータス変更されませんでした。

その時のブラウザのネットワーク・トレースを観ると、updateWithStatus.jsonなるREST API のURLに、ステータス変更の為の情報とrecord型の情報とが渡されていました。
※メッセージ内容は、添付の図参照。

発生条件を絞ろうとして、プロセス管理機能を適用したレコードのアクセス権に{”閲覧”、”編集”}を加えたら、ステータス変更はできました。

では、どのような設定にすれば、特定のステータスの場合に 編集不可にできるのでしょうか、教示いただけませんでしょうか?

 

 

こんにちは!

JavaScript等のカスタマイズをしていない状態でのステータス変更ですよね?

私もレコード権限については似たような設定でやってみましたが、問題なく特定のステータス(処理中と完了)の場合に編集不可にできました。

新規で別のフィールドが1つとかのアプリを作成してプロセス管理のところを同じように設定してみても
同じエラーが出ますでしょうか??

応答ありがとうございます。

はい、残念ながら、「”処理中”で閲覧権限しかユーザIDで、差し戻しして、”未処理”のカ編集可能状態に変更」したときに、「CB_NO02 権限がありません」エラーが出ました。

つまり、「一旦 編集不可にすると、編集可能なステータスに戻せなかった」ということです。

この現象を私なりに解釈すると、updateWithStatus.jsonなるREST API のURLは、その時操作しているユーzIDの権限で動いていて、編集権限が付与されていないユーザIDは、ステタス変更という、レコードの中の一つのフィールドの値を変更することすらできないように見えました。

すると、解決策は、「レコードを閉じた後に遅延して、何時も編集可能なAdministrators権限で「everyoneが編集不能な状態から編集可能な状態にステータス変更する」するようなJavaScriptプラグインを作るしかないような気がしていました。

この場合、まず「レコードを閉じた後に遅延して」 楽観的排他制御に躓かずに 更新できるようなプラグインの起動方法が難しそうです。

もっと簡単に対策はできないものでしょうか?

 

 

本件と直接関係あるかどうかは未検証ですが、
未処理の場合は全ユーザーに全権限を与えるということであれば、
そもそも未処理の場合の設定は不要な気がしました。

未処理の場合を削除してみても事象が改善しない場合は、
カスタマーサポートへお問い合わせされてみた方がよろしいかと思います。
https://kintone.cybozu.co.jp/support/tel.html

ちなみに私は差し戻し時に作成者に通知させたいため、
差し戻し先のステータスは「未処理」とは別に「差し戻し」を用意することが殆どです。
https://pj.asunote.jp/workflow/wf-003/

応答ありがとうございます。

えーと、”未処理”ステータスというと、私のアプリの場合”起票・無効”のステータスでのeveryoneに対するアクセス権の設定ですね。

それのアクセス権の設定を削除しても、”処理中”を示す”仮計上”ステータスから、”起票・無効”のステータスに変更する時に、アクセス権が無いというエラーになりました。

でも、冒頭に述べたように、”処理中”を示す”仮計上”ステータスでのeveryoneに対するアクセス権に、”編集”を追加すると、未処理状態を示す”起票・無効”ステータスに変更することはできています。

レコードのアクセス権の判定は、ステータス変更しようとした時のレコードのステータス(仮計上ステータス)に戻ついて適用されるのであって、ステータス変更後の”起票・無効”のアクセス権にもとづかないという仕様であるように観えます。

ところで、未だ 誰も 「”処理中”を示す”仮計上”ステータスでのAdministratorsに対するアクセス権を編集可能にしている設定の用法」について、情報を頂けていないのですが、、

> ところで、未だ 誰も 「”処理中”を示す”仮計上”ステータスでのAdministratorsに対するアクセス権を編集可能にしている設定の用法」について、情報を頂けていないのですが、、

有志のエンジニアが片手間で知っていたら回答するというスタイルだと思うので、限界があると思います。
私では力及ばずバグなのか仕様なのかも分かりかねますし(ご存じの方いらっしゃったらご回答ください:sweat_drops:
たねまきさんがおっしゃるように、カスタマーサポートに問い合わせてみられてみてはいかがでしょうか:eyes:!?