Fonctions booléennes
Les fonctions booléennes retournent true ou false. Elles sont essentielles pour vérifier des conditions et valider des données.
Vérification d'existence
EXISTE(valeur)
Vérifie si une valeur existe et n'est pas nulle ou vide. C'est la fonction booléenne la plus utilisée.
EXISTE("texte") // true
EXISTE("") // false
EXISTE(null) // false
EXISTE(0) // true (0 est une valeur valide)
// Vérifier si un champ optionnel est rempli
EXISTE({{client.email}}) // true si l'email est renseigné
// Vérifier si un tableau n'est pas vide
EXISTE({{commande.produits}}) // true si des produits existentBon à savoir : EXISTE retourne truepour le nombre 0 et le booléen false. Elle vérifie seulement si la valeur est définie, pas si elle est "truthy".
Négation avec !
Utilisez ! devant EXISTEpour vérifier qu'une valeur n'existe pas.
!EXISTE({{client.email}}) // true si pas d'email
// Afficher un message si le champ est manquant
SI !EXISTE({{client.telephone}})
ALORS "Téléphone non renseigné"
SINON {{client.telephone}}
FINSIVérification sur tableaux
Ces fonctions permettent de vérifier des conditions sur tous les éléments d'un tableau.
TOUT.EGAL.A(tableau, valeur)
Vérifie si tous les éléments du tableau sont égaux à la valeur.
TOUT.EGAL.A([1, 1, 1], 1) // true
TOUT.EGAL.A([1, 2, 1], 1) // false (2 n'est pas égal à 1)
// Vérifier si toutes les commandes sont validées
TOUT.EGAL.A({{commandes.statut}}, "validée")
// Vérifier si tous les produits sont en stock
TOUT.EGAL.A(
TRANSFORMER({{produits}}, {{$.stock}} > 0),
true
)AU.MOINS.UN.EGAL.A(tableau, condition)
Vérifie si au moins un élément satisfait la condition. Utilisez {{$}} pour référencer l'élément courant.
// Vérifier si au moins une valeur correspond
AU.MOINS.UN.EGAL.A(["créé", "soldé", "annulé"], {{$}} == "soldé") // true
// Vérifier si au moins un produit est en rupture
AU.MOINS.UN.EGAL.A({{produits}}, {{$.stock}} == 0)
// Vérifier si au moins une facture est impayée
AU.MOINS.UN.EGAL.A({{factures}}, {{$.payee}} == false)Astuce : Cette fonction est l'équivalent d'un "OU logique" appliqué à tous les éléments. Si un seul satisfait la condition, elle retourne true.
AUCUN.EGAL.A(tableau, condition)
Vérifie qu'aucun élément ne satisfait la condition. C'est l'inverse de AU.MOINS.UN.EGAL.A.
// Vérifier qu'aucun statut n'est "annulé"
AUCUN.EGAL.A(["Créé", "Validé", "Soldé"], {{$}} == "Annulé") // true
// Vérifier qu'aucun produit n'est en rupture
AUCUN.EGAL.A({{produits}}, {{$.stock}} == 0)
// Vérifier qu'aucune tâche n'est en retard
AUCUN.EGAL.A({{taches}}, {{$.dateEcheance}} < AUJOURDHUI())Comparaison des trois fonctions
TOUT.EGAL.A | → Tous les éléments doivent correspondre |
AU.MOINS.UN.EGAL.A | → Un seul élément suffit |
AUCUN.EGAL.A | → Aucun élément ne doit correspondre |
Combiner les vérifications
Vous pouvez combiner les fonctions booléennes avec les opérateurs logiquesET, OU et !.
// Vérifier plusieurs conditions
EXISTE({{client.email}}) ET EXISTE({{client.telephone}})
// Vérifier qu'au moins un moyen de contact existe
EXISTE({{client.email}}) OU EXISTE({{client.telephone}})
// Condition complexe
EXISTE({{commande}})
ET TOUT.EGAL.A({{commande.produits.disponible}}, true)
ET AUCUN.EGAL.A({{commande.produits.stock}}, 0)Exemples pratiques
Valider un formulaire client
var emailValide = EXISTE({{client.email}});
var telephoneValide = EXISTE({{client.telephone}})
ET COMPTER({{client.telephone}}) == 10;
var siretValide = EXISTE({{client.siret}})
ET COMPTER({{client.siret}}) == 14;
SI emailValide ET telephoneValide ET siretValide
ALORS "✓ Fiche complète"
SINON "⚠ Informations manquantes"
FINSIVérifier si une commande peut être expédiée
var tousEnStock = AUCUN.EGAL.A({{commande.produits}}, {{$.stock}} < {{$.quantite}});
var adresseComplete = EXISTE({{commande.adresseLivraison}});
var paiementValide = {{commande.paiement.statut}} == "validé";
SI tousEnStock ET adresseComplete ET paiementValide
ALORS "Prêt pour expédition"
SINON
SI !tousEnStock ALORS "Stock insuffisant"
SINON SI !adresseComplete ALORS "Adresse manquante"
SINON "Paiement en attente"
FINSI
FINSIAfficher une valeur ou un texte par défaut
// Méthode simple
SI EXISTE({{client.email}})
ALORS {{client.email}}
SINON "Non renseigné"
FINSI
// Avec plusieurs champs
SI EXISTE({{client.portable}})
ALORS {{client.portable}}
SINON SI EXISTE({{client.fixe}})
ALORS {{client.fixe}}
SINON "Aucun téléphone"
FINSIVérifier l'état d'un projet
var taches = {{projet.taches}};
var toutesTerminees = TOUT.EGAL.A(TRANSFORMER(taches, {{$.statut}}), "terminée");
var auMoinsUneEnRetard = AU.MOINS.UN.EGAL.A(taches,
{{$.dateEcheance}} < AUJOURDHUI() ET {{$.statut}} != "terminée"
);
SI toutesTerminees
ALORS "✓ Projet terminé"
SINON SI auMoinsUneEnRetard
ALORS "⚠ Projet en retard"
SINON "⏳ Projet en cours"
FINSIContrôle d'unicité d'email
var email = {{nouveauClient.email}};
var clientExistant = CHERCHER.OBJET(client, { email: email });
SI EXISTE(clientExistant)
ALORS "⚠ Cet email est déjà utilisé"
SINON "✓ Email disponible"
FINSIProchaine étape
Apprenez maintenant à rechercher des objets dans votre base de données avec les fonctions d'accès aux données.