

Les règles de validation dans Salesforce vérifient que les données saisies par un utilisateur répondent à certains critères. Si la règle est vraie, un message d’erreur s’affiche afin d’expliquer à l’utilisateur ce qu’il doit faire pour corriger l’enregistrement.Observons quelques exemples 📗.
Le chiffre d’affaires doit être positif sans excèder 100 milliards
OR(AnnualRevenue < 0,AnnualRevenue > 100000000000)
Le numéro de compte doit être renseigné et numérique
OR(ISBLANK(AccountNumber),NOT(ISNUMBER(AccountNumber)))
Le numéro de compte doit comporter sept chiffres quand il n’est pas vide
AND(NOT(ISBLANK(AccountNumber)),LEN(AccountNumber) <> 7)
Les champs d’adresse postale sont obligatoires
OR(ISBLANK(MailingStreet),ISBLANK(MailingCity),ISBLANK(MailingCountry))
Le numéro de téléphone doit commencer par + (code pays)
LEFT(Phone, 1) <> "+"
La date de livraison est nécessaire pour cette étape
AND(OR(ISPICKVAL(StageName, "Closed Won"),ISPICKVAL(StageName, "Negotiation/Review")),ISBLANK(DeliveryDate__c))
La date de clôture ne peut pas être antérieure au mois en cours
AND(OR(ISNEW(),ISCHANGED(CloseDate)),CloseDate < DATE(YEAR(TODAY()), MONTH(TODAY()), 1))
La date de clôture ne doit pas être un jour passé
CloseDate < TODAY()
Le taux de remise doit être compris entre 0 et 40 %
OR(DiscountRate__c < 0,DiscountRate__c > 0.40)
Le nom doit comporter un trait d’union
FIND( " - ", Name ) = 0
Impossible de supprimer les produits des opportunités clôturées
AND(OR(ISPICKVAL(StageName, "Closed Won"),ISPICKVAL(StageName, "Closed Lost")),NumberOfProducts__c < PRIORVALUE(NumberOfProducts__c))
Seul le propriétaire d’enregistrement peut modifier le champ
AND(ISCHANGED(PersonalGoal__c),Owner <> $User.Id)
Seul le propriétaire ou l’administrateur peuvent changer le champ
AND(ISCHANGED(PersonalGoal__c),Owner <> $User.Id,$Profile.Name <> "Custom: System Admin")
La date doit être un jour de semaine
CASE(MOD(MyDate__c - DATE(1900, 1, 7), 7),0, 0,6, 0,1) = 0
La date doit faire partie du mois en cours
OR(YEAR(MyDate__c) <> YEAR(TODAY()),MONTH(MyDate__c) <> MONTH(TODAY()))
La date doit être le dernier jour du mois
DAY(MyDate__c) <>IF(Month(MyDate__c) = 12,31,DAY(DATE(YEAR(MyDate__c),MONTH(MyDate__c)+1,1) - 1))
La date doit être comprise dans une période d’un an à compter d’aujourd’hui
MyDate__c - TODAY() > 365
Le nombre doit être positif et pair
OR(MyNumber__c < 0,MOD(MyNumber__c, 2) <> 0)
Le nombre doit être un entier
FLOOR(MyNumber__c) <> MyNumber__c
Le nombre doit être compris entre -50 et 50
ABS(MyNumber__c) > 50
Autoriser l’augmentation mais non la diminution d’un nombre
PRIORVALUE(MyNumber__c) > MyNumber__c
Interdiction de modifier un champ après la création d’un enregistrement
ISCHANGED(MyField__c) && NOT(ISNEW())
Champs obligatoires quand un prospect est converti
AND(IsConverted,OR(ISBLANK(Phone),ISBLANK(Email),ISPICKVAL(Rating, “”)))
Numéro de sécurité sociale: 9-99-99-99-999-999-99
NOT(OR(ISBLANK(SocialSecurityNumber__c),REGEX(SocialSecurityNumber__c, "[0-9]{1}-[0-9]{2}-[0-9]{2}-[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{2}")))
Devise valide
CASE(CurrencyIsoCode,"USD", 1,"EUR", 1,"GBP", 1,"JPY", 1,0) = 0
Adresse IP: 4 fois 3 chiffres (0 à 255) séparés par des points
NOT(REGEX(IPAddress__c, "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" ))
Carte de crédit: 9999-9999-9999-9999 ou 9999999999999999
NOT(REGEX(CreditCardNumber__c , "(((\\d{4}-){3}\\d{4})|\\d{16})?"))
Le site Web doit avoir une extension .com, .org, .net ou .fr
AND(RIGHT(WebSite__c, 4) <> ".COM",RIGHT(WebSite__c, 4) <> ".com",RIGHT(WebSite__c, 4) <> ".ORG",RIGHT(WebSite__c, 4) <> ".org",RIGHT(WebSite__c, 4) <> ".NET",RIGHT(WebSite__c, 4) <> ".net",RIGHT(WebSite__c, 6) <> ".FR",RIGHT(WebSite__c, 6) <> ".fr")
Pour avoir la possibilité de désactiver les règles de validation pour un utilisateur, créez un champ sur l’objet User nommé overpassVR, puis ajoutez dans chaque règle
&& NOT($User.OverpassVR__c)
Sur le même principe il est possible de désactiver une règle pour un flux. Par exemple créez une case à coché “Toggle” sur l’objet mis à jour dans votre flux, ajoutez sur ce dernier une variable de formule appelée “ChangeToggle” en utilisant “IF(Toggle__c = TRUE, FALSE,TRUE)”, puis définissez la valeur de Toggle dans votre flux égale à ChangeToggle. Enfin complétez votre règle de validation avec
&& NOT(ISCHANGED(Toggle__c))

Liens rapides
Informations Légales