В этой статье я расскажу о том что такое Validation rule в Salesforce! Статья поможет разобраться тем кто ещё не имел опыта с validation rule и только начинает разбираться.
1. Вступление
2. Что такое Validation Rule
3. Как работает Validation Rule
4. Как создать Validation Rule
5. Заключение
Вступление
Для каждого поля в Salesforce определяется свой тип, некоторые созданы по умолчанию и их уже не изменишь, а не которые создаёте вы сами. Тип поля определяет какие данные будут храниться в нём. Своего рода защита от возможности ввести не те данные. Представьте сколько проблем бы вызывал тот факт, что в поле которое должно содержать целочисленное значение, например количество отработанных работником часов, вдруг окажется текст, дата или вообще булевское значение. Определив тип, вы сделали первый барьер, что же делать если в числе отработанных часов у работника вдруг окажется отрицательное значение? Например -3. Здесь нам и понадобится Validation rule который поможет избежать нежелательных значений в полях объекта.
Что такое Validation Rule
Что бы лучше представить роль Validation Rule в Salesforce, возьмём для примера таможенный контроль в аэропорту.
У каждого человека есть свои параметры и багаж, они и будут представлять собой входящие данные в базу данных salesforce.
В частности всегда присутствуют свои правила касательно того какие предметы можно брать с собой на борт самолёта и перевозить в багаже. И все люди проходят проверку на торможенном контроле. В нашем случае Validation rule проверяет входящие данные, так же как и таможенный контроль проверяет багаж людей перед посадкой на самолёт. Validation rule тоже имеет свои установленные правила и критерии, и в соответствии с ними решает сохранять данные или отказаться, при отказе Validation rule укажет причину, так же как и в аэропорту в случае проблем с багажом пассажира.
Хотел бы отметить что как аэропорт обычно относится к какой-нибудь стране, так и validation rule относится к конкретному объекту.
Как работает Validation Rule
Срабатывает Validation rule автоматически, он всегда на страже того что бы данные были валидными! Но когда же он срабатывает ? Каждый раз когда вы создаёте или обновляете данные какого-нибудь объекта и пытаетесь их сохранить то срабатывает Validation rule, т.е он срабатывает всегда при сохранении.
Проверка Validation rule позволяет использовать большой набор полей. Вы выбираете одно или несколько полей, указываете значения и условия которым они должны соответствовать. Как например в аэропорту проверяют вес вашей ручной клади которая должна быть не больше 10 кг.
Сообщение об ошибке Validation rule показывает в том случае, если условия заданные в нём вернут истину. То есть когда задаёте условия, то нужно писать не то какими данные должны быть для пропуска, а то какие данные НЕ ДОЛЖНЫ проходить валидацию. Как например если бы мы писали правило для ручной клади то условия были бы такими: вес ручной клади > 10.
Так же вы в праве указать место где будет выведена ошибка.
Как создать Validation Rule
Давайте перейдём к созданию validation rule, у меня уже существует объект Hand Luggage(ручная кладь) и поле Weight(вес). Я создам Validation rule который не позволит сохранить запись типа Hand Luggage если её вес больше 10 килограмм.
- На объекте переходим в раздел Validation Rules и нажимаем New.
- Указываем имя для Validation rule. Rule Name : Luggage weight check
- Указываем условия проверки. Нажав на кнопку Insert field откроется окно с выбором полей, там в разделе с именем вашего объекта выберите необходимое вам поле. Я выбрал поле Weight.
- Указываем условия для этого поля, в моём случае я пишу Weight > 10
- Обязательным является сообщение об ошибке, и место вывода сообщения. Error message и Error Location
- Если указали Error message и Error Location, то нажимаем Save.
Теперь давайте проверим, работает ли Validation rule. Создадим запись Hand Luggage указав вес больше 10-ти килограмм. Указав, вес в 12 килограмм, я получил ошибку.
Заключение
Validation rule срабатывает при сохранении записи и проверяет значения полей на валидность. Условия проверки могут содержать множество функций, среди них: Data&Time, Logical, Math, Text и Advanced которая содержит такие функции как IsChanged и т.п.
Обязательными является указать сообщение об ошибке и его расположение. Используйте Validation rule для того что бы избежать нежелательных значений в записях вашей организации. Создавайте свои фильтры для проверки не прибегая к использованию Apex кода.