関連レコードで参照するアプリのアクセス制限について

お世話になります。

kintoneのアプリで、作業指示書アプリから、各工程の作業履歴を、作業履歴アプリという別アプリに書き込んでいます。
作業指示書との紐付けを行ったうえで、tisの条件分岐プラグインの自動アプリ間更新機能を使っています。

作業日報という性質上、書き込んだ結果は、後から書き換えられると困るので、作業履歴アプリには、管理者以外の編集・削除を許可しないようにする必要があるのですが、こうしてしまうとアプリ内での書き込み自体ができなくなってしまいます。

作業履歴アプリを設置するスペースを分けてアクセス権を設定すれば、直接起動させなくすることは可能ですが、作業指示書アプリから、作業履歴を見せる必要があるので、kintone標準の関連レコード一覧を使って参照しています。これを使うと、表示されたレコードから、アクセス権を与えた作業履歴アプリが開いてしまい、事が果たせなくなってしまいます。

これを防止するには、関連レコード一覧に相当する処理をスクリプトで作りこむしか方法はないでしょうか?

作業履歴アプリと作業日報の関連性がよくわからなかったので、日報関係でよくある解決策になりますが。。

書き換えられては困るタイミングというのは、一般的には 上長が確認した後 、つまり 提出した後 になると思います。なので、下書きの状態では書き換えを許可しても問題ないことが多いです。

kintone には プロセス管理 という機能があり、レコードの状態をワークフローに沿って遷移させる機能があります。

また、レコードの条件に合わせて権限を設定する仕組みもあります。

これらを組み合わせると、例えば:

  • レコードの状態が「下書き」→「申請済」→「承認済」と遷移するプロセス管理を設定する
  • 「下書き」の状態は、ユーザーは編集/削除が できる
  • 「申請済」以降の状態では、ユーザーは編集/削除が できない

といった設定が可能です。


基本的な権限制御の考え方は上記の通りですが、日報はヘッダ情報と明細情報でアプリが分かれていることが多いです。

実際のアプリ構成がどのようになっているかはわかりませんが、仮に作業履歴アプリと作業日報アプリが別であったとすると、 ER 図で表したときに

[作業指示書] 1 -(工程ごとに分解)- n [作業履歴] n -(同じ日付のものを関連レコード)- 1 [作業日報]

のような構成になります。

このとき、申請者が申請 (=プロセス遷移) を行うレコードは作業日報のレコードになります。

ただ、変更させたくないレコードは作業履歴なので、この場合は 作業日報レコードのプロセス変更時に紐づく作業履歴レコードを編集不可にする (=プロセス遷移 or フラグ立て) カスタマイズが必要になります。

細かい仕様はアプリ設計にもよるので何ともですが、一般的にはこんな感じで解決できると思います。

「いいね!」 2

早々にコメントを頂きまして有難うございます。

この案件については、承認というプロセスがつけにくいので、アクセス権でなんとかならないか考えてみました。
作業履歴を書き込む時に、終了時刻を打刻した時点でロックを掛けるという運用にすれば、問題はないのかなと思って実装してみました。

レコードのアクセス権で終了時刻が入っている場合は、一般ユーザーは編集、削除禁止とすれは、関連レコード一覧から読みだしてもアイコンが出なくなりました。
終了時刻が新たに更新するタイミングでは書き込みができるので問題はなさそうです。

できれば、特定のフィールドだけは許可したかったので、それ以外のフィールドを編集不可としてみましたが、今後は追記自体ができなくなってしまったので止めました。

ともあれ、基本的なアクセス制限はできるようになり、非常に助かりました。
どうもアドバイス有難うございました。

「いいね!」 2

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。