2つのフィールドの値が一致しない場合にエラーを表示する
カスタムバリデーションはエンタープライズプランのみ利用できます。
自動計算フィールドとカスタムバリデーションを組み合わせることで、2つのフィールドの値を比較し、一致または不一致のときにエラーを表示できます。
カスタムバリデーションの条件値には直接フィールド変数を指定できません。そのため、自動計算フィールドで比較結果をフラグ値として算出し、そのフラグをカスタムバリデーションの条件に使う2段構成で設定します。
活用例
- マスタ参照値と手入力値の照合:購買申請で汎用マスタから選んだ取引先コードと、請求書から手動入力したコードが一致した場合にエラーを表示する
設定の流れ
- 比較結果を返す自動計算フィールドを作成する
- カスタムバリデーションを設定する
手順
1. 自動計算フィールドを作成する
比較結果を判定するための自動計算フィールドを追加します。このフィールドは申請者には表示しないため、隠しフィールドにすることを推奨します。
- ワークフローの作成または編集画面を開きます。
- 「フィールドを追加」し、自動計算型に設定します。
- フィールド名を入力します(例:「一致チェック用フラグ」)。
- 自動計算式に以下の式を入力します。
if($フィールドAの変数 == $フィールドBの変数, 1, 0)
- フィールドAとBの値が一致する場合:
1を返します - フィールドAとBの値が一致しない場合:
0を返します
フィールドの変数名は、各フィールドの設定画面で確認できます。
正しい結果が出力されない際には、自動計算の計算結果が表示されない場合のトラブルシューティングを確認してください
- フィールドを申請者に表示しない場合は、「隠しフィールドにする」をチェックします。
2. カスタムバリデーションを設定する
エラーを表示したいフィールドに対して、手順1で作成したフラグフィールドを条件に使ったカスタムバリデーションを設定します。
- エラーを表示したいフィールドをクリックします。
- 「カスタムバリデーション」タブを開きます。
- 以下の設定を入力します。
| 項目 | 設定値 |
|---|---|
| フィールド | 手順1で作成した「一致チェック用フラグ」 |
| 条件文 | 次の値に等しい |
| 値 | 1 |
| エラーメッセージ | フィールドAとBの内容が一致しているため申請できません |
- 設定を保存します。
一致チェック用フラグが 1(フィールドAとBが一致)のとき、バリデーションエラーが発火し、申請者は申請できない状態になります。
応用:一致しない場合にエラーを出すには
フィールドAとBの値が一致しないときにエラーを出したい場合は、カスタムバリデーションの「値」を 0 に変更します。
| 項目 | 設定値 |
|---|---|
| 値 | 0 |
| エラーメッセージ | フィールドAとBの内容が一致していないため申請できません |
自動計算式はそのまま変更不要です。