はじめに
kintone の基本機能で以下のように「必須項目にする」にチェックを入れた場合、レコード保存時にそのフィールドが未入力の状態だとエラーとなり保存できません。
このように、kintoneの基本機能だけでは「特定のステータスのときのみ必須にしたい」「別のフィールドの値が A の場合は必須にしたい」など特定の条件の時のみ入力を必須とさせる事はできません。
ですがカスタマインであれば、やること「必須チェックを行う」を用いる事で特定の条件に該当する時のみ入力必須となるようなチェックを実現する事ができます。
今回はフィールドの値がある値であった時のみ、入力が必須となるようにフィールドを制御する、いわゆる条件付き必須チェックをカスタマイズで作成する例をご紹介します。
カスタマインの基本的な事柄は、こちらの「はじめてのカスタマイズ」をご参照ください。
カスタマイズ例
今回は、アプリストアにある「案件管理」を用い、2つのカスタマイズを実現します。
カスタマイズ1
1つ目は、「確度」フィールドが「A」のときには、小計の元となる単価とユーザー数を確定しなければいけない、という条件付き必須チェックを実現します。
カスタマイズ2
2つ目は、テーブル内にある「活動内容」フィールドが「電話」のときにはメモを必ず入力しなければならない、という条件付き必須チェックを実現します。
アプリの準備
このカスタマイズでは、アプリストアにある「案件管理」を利用します。
自分で作る時は次のようにアプリを作成してください。
また、アプリストアにある「案件管理」を使うときは、下記のフィールド(見込み時期、確度、活動内容、メモ)についてはフィールドコードをフィールド名と同じものに変更してください。
・カスタマイズ1に対応するフィールド
※フィールド名とフィールドコードは同じものを指定
・カスタマイズ2に対応するフィールド
※フィールド名とフィールドコードは同じものを指定
カスタマイズ1:条件付き必須チェック
まずは「確度」が「A」のときの必須チェックを作成しますが、具体的には確度がAだった時は、単価とユーザー数を入力しないと保存ができないようにします。
※なお、「[テンプレート] 特定条件で必須チェック」の内容はこのカスタマイズのみが対象となります。
具体的には、やること「必須チェックを行う」、条件「レコードを保存・削除する直前 」、「フィールド値が特定の値ならば」を使います。
やること「必須チェックを行う」を行う「フィールド」には、「単価」、「ユーザー数」を設定し、メッセージには「確度がAの場合は金額を確定してください。」と設定しておきます。
また、条件「フィールド値が特定の値ならば」は「確度(ラジオボタン)」が「A」と「等しい」事をチェックするようにします。
※注:テンプレートでは条件「レコードを保存・削除する直前」を用いていますが、今回の場合だと「レコードを保存する直前(削除時は除く)」を使っても同じ結果になります。
これで、カスタマイズ1のカスタマイズが完成したので「kintoneアプリへ登録」し、レコードを作成してみてください。「確度」が「A」のときには金額(単価やユーザー数)を確定しなければ保存できないという必須チェックが実現されている事がわかります。
なお、この必須チェックは一覧画面で鉛筆モードで編集した場合にもチェックされますので、試してみてください。
カスタマイズ2:テーブル内の条件付き必須チェック
続いて、活動履歴の活動内容が「電話」のときには「メモ」を必ず入力してもらうために、メモフィールドを必須にします。
具体的には、やること「必須チェックを行う」、条件「レコードを保存・削除する直前 」、「フィールド値が特定の値ならば」を使います。
やること「必須チェックを行う」を行う「フィールド」には、「メモ」を設定し、メッセージには「電話の時にはメモを必ず入力してください。」と設定しておきます。
また、条件「フィールド値が特定の値ならば」は「活動内容」が「電話」と「等しい」事をチェックするようにします。
これでカスタマイズは完成です。「kintoneアプリへ登録」して追加画面、編集画面それぞれで動きを確認してみてください。
参考(値を入力したら必須チェックエラーを消したい時)
上で示したような必須チェックのエラーになった後、「活動内容の選択を変更するか、「メモ」に値を入力したとしても、保存ボタンを押すまでは必須チェックのエラー表示は消えません。
もし、「活動内容」や「メモ」の値を変更した時にエラーをクリアしたい場合は、次のカスタマイズも併せて追加しておくと値変更のタイミングでエラーをクリアする事ができます。
具体的には、やること「フィールドのエラーをクリアする」と条件「フィールドの値を編集して値が変わった時」、「フィールド値が特定の値ならば」や、条件「フィールドの値を編集して値が変わった時」、「フィールド値が空でないならば」を用います。
おわりに
この記事では、条件付き必須チェックのカスタマイズの例についてご説明しました。カスタマインでは、より運用にそった入力必須制御を簡単に実現する事ができます。
条件については更に複数のフィールドや条件を組み合わせたようなものも追加することができますので、ぜひお試しください。
また、ご不明点等ございましたら、チャットにてご質問ください!