kintone でアプリを作っていると、あるフィールドの値によっていろいろな処理をしたい、ということがよくあると思います。今回はその中でもちょっと頭をひねる必要のある、条件によってレコードの削除を出来なくする、いわゆる条件付き削除不可というカスタマイズを作成してみたいと思います。
Customineの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
利用想定シーン
ここでは、日報アプリで「上司が確認したら、レコードは削除不可」という運用ルールを作るカスタマイズを実現してみたいと思います。利用するアプリは、アプリストアにある日報アプリをベースに少しカスタマイズします。
どうやって「上司が確認したか」を表現するかが問題ですが、ここではシンプルに「上司確認」というチェックボックスを追加してみました。このフィールドがチェックされていたら、削除ができないというカスタマイズを作成してみます。
アクセス権の設定でも削除を許可しないように設定することは可能ですが、ここではもう少しレコードの状態によって可否をカスタマイズしたい、という運用ルールを想定しています。
Customineの設定
それでは、この日報アプリに対してカスタマイズをしていきます。Customine のアプリ選択画面から、日報アプリを選択してカスタマイズの作成を始めます。
はじめに「レコードを削除できない」というカスタマイズをどう実現するかを考えてみます。削除ボタンを消すなど、色々方法はあるかと思いますが、ここでは条件によって「レコードを削除する直前」に「レコードの保存をキャンセルする」という方法で実現してみたいと思います。
ということで、まず条件から設定してみます。
- 「条件」に「レコードを削除する直前」を選択します
- 条件をさらに追加で、「フィールド値が特定の値ならば」を選択します
- この条件の「フィールド」には、先程追加したチェックボックスの「上司確認」を選択します
- さらに「条件」には「等しい」を選択します
- 最後に「比較値」には「確認済み」を入力します
以上で条件は完成です。
次にこの条件のときに動作する、やることを追加します。
保存キャンセルの実行
ここでそのままレコードの保存をキャンセルしてもいいのですが、そうするとユーザーに何も情報が表示されないので、何が起こったのか分かりづらくなってしまいます。そこで、ここでは一旦ダイアログを出してユーザーに通知してみましょう。
- 「やること」にカテゴリー:その他UIから「エラーダイアログを表示して保存をキャンセルする」を選択します
- 「メッセージ」には「確認済みの日報は削除できません!」などと入力しておきましょう
- 「OKボタンの名前」は何でも構いません。
最終的にはこのような設定になります。
これで完成ですね。「kintoneアプリへ登録」して動きを確認してみてください。
まとめ
条件付き削除不可のカスタマイズは以上になります。非常にシンプルですが、この条件付き削除不可はなかなか便利に活用できます。ここで利用した条件の「上司確認」の部分を色々工夫することで、様々な運用ルールを実現できると思いますのでぜひお試しください。
また、この2ステップのカスタマイズだけで、詳細画面にある「レコード削除」ボタンだけでなく、一覧画面のバツアイコンの削除も出来なくなります。これはとても簡単でいいですね!