この記事では、複数選択、チェックボックス、ユーザー選択などの複数選択が可能なフィールドで、選択された項目の数をカウントし、決めた数より多く選択されたときにエラーを表示する方法を紹介します。

ここでは、担当者フィールドに2名以上が選択されないようにする設定を例に説明します。

エラーは、レコードを保存する直前だけでなく、担当者フィールドの値を変更したときにも表示されます。


完成イメージ


カスタマインの設定

以降では、それぞれのアクションを順に説明します。


チェックのきっかけになるアクションを用意する(アクション 4・5)

レコードを保存する直前と、担当者フィールドの値が変わったときの2つのタイミングでチェックを行うため、それぞれのきっかけになるアクションを用意します。


フィールドエラーを表示していても、そのままレコード保存が可能であり保存直前にも同様のチェックが必要なためにこのような設定としています。

参考:エラーを表示してレコードの保存を中断する方法


どちらも、後続のアクションにつなげるためのアクションなので、やることは「なにもしない」を選択します。


やること「なにもしない」(アクション 4)

条件「レコードを保存する直前(削除時は除く)」


やること「なにもしない」(アクション 5)

条件「フィールドの値を編集して値が変わった時」

【フィールド】

担当者

【一覧画面の鉛筆を押した時】

一覧画面の鉛筆を押した時は含めない


選択数を判定してエラーを表示する(アクション 6)

担当者が2名以上選択されている場合に、担当者フィールドにエラーを表示します。


やること「フィールドエラーを表示する」

【フィールド】

担当者

【エラーメッセージ】

1名のみ選択してください

条件「いずれかのアクションの実行が完了した時」

【アクション】

4, 5

追加条件「2つの値を比較して条件を満たすならば」

【比較する値(A)】

=count(担当者)

【条件】

大きい(>)

【比較する値(B)】

1

【数字の比較方法】

数値として比較

count関数を使うと、フィールドで選択されている項目の数を取得できます。ここでは、担当者の選択数が「1」より大きいかどうかを判定しています。


このように設定することで、担当者を2名以上選択したときと、その状態でレコードを保存しようとしたときに、エラーが表示されます。保存しようとしたときにエラーが表示されると、レコードの保存はキャンセルされるため、保存を止めるためのアクションを別に用意する必要はありません。


エラーをクリアする(アクション 7)

担当者が1名以下に修正されたときに、表示されていたエラーをクリアします。


やること「フィールドのエラーをクリアする」

【フィールド】

担当者

条件「他のアクションの実行が完了した時」

【アクション】

5

追加条件「2つの値を比較して条件を満たさないならば」

【比較する値(A)】

=count(担当者)

【条件】

大きい(>)

【比較する値(B)】

1

【数字の比較方法】

数値として比較

※「2つの値を比較して条件を満たさないならば」の追加条件は、追加条件の一覧には表示されません。追加条件「2つの値を比較して条件を満たすならば」を選択したあと、右側の「条件を反転」ボタンを押すと設定できます。

アクション6 のアクションメニューから「反対のアクションを作成」を選ぶと、反対の条件を持ったアクションをかんたんに作成できます。


参考:「反対のアクションを作成」というのが出てきたのですが、これは何ですか?


おまけ:選択数を別のフィールドにセットする

選択数を数値フィールドなどにセットしておきたい場合は、次のアクションを追加します。

やること「フィールドに値をセットする」(アクション 8)

【フィールド】

選択数

【値】

=count(担当者)

条件「フィールドの値を編集して値が変わった時」

【フィールド】

担当者

【一覧画面の鉛筆を押した時】

一覧画面の鉛筆を押した時は含めない


おわりに

count関数を使うと、複数選択・チェックボックス・ユーザー選択などのフィールドで、選択されている数をもとにした判定ができます。

「2つまで」「3名以上」のように、比較する値や条件を変えて、運用にあわせてご活用ください。


ご不明な点がございましたら、チャットでお問い合わせください。

ドキュメントやサポートページも、ぜひご活用ください。