Règles métier
Les règles métier sont le moteur d'automatisation de Miel. Elles permettent de déclencher des actions automatiques en réponse à des événements sur vos objets.
Introduction
Une règle métier suit un schéma simple : Quand un événement se produit, Si une condition est remplie, Alors exécuter une ou plusieurs actions.
Par exemple : Quand une facture est validée, si le montant dépasse 10 000 EUR, alors assigner automatiquement le directeur financier.
Analogie
Pensez aux règles métier comme à un assistant invisible qui surveille en permanence ce qui se passe dans votre système et réagit instantanément selon les instructions que vous lui avez données.
Caractéristiques d'une règle
| Propriété | Description |
|---|---|
| Nom | Identifiant technique de la règle |
| Libellé | Nom affiché dans l'interface |
| Description | Explication détaillée du rôle de la règle (optionnelle) |
| Type d'objet | Sur quel type d'objet la règle s'applique |
| Active | La règle est-elle actuellement en service |
| Événements | Un ou plusieurs événements qui déclenchent la règle |
| Condition | Expression MEL évaluée avant l'exécution (optionnelle) |
| Actions | Une ou plusieurs actions à exécuter |
| Message d'erreur | Message personnalisé affiché en cas de blocage |
Événements déclencheurs
Les événements déterminent quand la règle se déclenche. Une même règle peut réagir à plusieurs événements.
Création d'objet
Un nouvel objet de ce type vient d'être créé.
Modification d'objet
Un objet de ce type vient d'être modifié (un ou plusieurs champs ont changé).
Suppression d'objet
Un objet de ce type vient d'être supprimé.
Changement de statut
Le statut d'un objet vient de changer (via le flux ou manuellement).
Modification d'un objet enfant
Un objet référencé (enfant) a été modifié.
Changement d'étiquettes
Les tags de l'objet ont été ajoutés, modifiés ou retirés.
Archivage / Désarchivage
Un objet vient d'être archivé ou désarchivé.
Conditions
La condition est une expression MEL qui est évaluée avant l'exécution des actions. Si elle est absente, les actions sont toujours exécutées quand l'événement se produit.
Exemple : pour qu'une règle ne s'applique qu'aux commandes dépassant 1 000 EUR :
{ "totalHT": { "$gt": 1000 } }Vous pouvez combiner plusieurs conditions avec les opérateurs logiques :
{
"$and": [
{ "totalHT": { "$gt": 1000 } },
{ "client.type": { "$eq": "professionnel" } }
]
}Bon à savoir
Pour maîtriser la syntaxe des conditions, consultez le guideMELqui détaille tous les opérateurs disponibles.
Actions disponibles
Les actions définissent ce qui se passe quand la règle est déclenchée. Vous pouvez combiner plusieurs actions dans une même règle.
Actions de contrôle
| Action | Description |
|---|---|
| Bloquer | Empêche l'opération en cours et affiche un message d'erreur à l'utilisateur |
| Verrouiller la modification | Empêche toute modification ultérieure de l'objet |
| Déverrouiller la modification | Autorise de nouveau la modification de l'objet |
| Verrouiller la création d'enfants | Empêche la création d'objets enfants |
| Déverrouiller la création d'enfants | Autorise de nouveau la création d'objets enfants |
Actions sur les statuts
| Action | Description |
|---|---|
| Changer le statut | Change automatiquement le statut de l'objet courant |
| Changer le statut d'objets liés | Change le statut d'autres objets identifiés par une formule |
Actions d'archivage
| Action | Description |
|---|---|
| Archiver l'objet | Archive l'objet courant |
| Désarchiver l'objet | Désarchive l'objet courant |
| Archiver des objets liés | Archive d'autres objets identifiés par une formule |
| Désarchiver des objets liés | Désarchive d'autres objets identifiés par une formule |
Actions d'assignation
| Action | Description |
|---|---|
| Changer la priorité | Modifie la priorité de l'objet |
| Assigner un utilisateur | Assigne automatiquement un utilisateur spécifique |
| Assigner un groupe | Assigne automatiquement un groupe d'utilisateurs |
| Retirer l'assignation | Supprime l'assignation courante |
Actions de création et suppression
| Action | Description |
|---|---|
| Créer un objet | Crée automatiquement un objet lié avec des valeurs par défaut |
| Supprimer un objet | Supprime un objet identifié par une formule |
Autres actions
| Action | Description |
|---|---|
| Modifier les permissions | Change les droits d'accès sur l'objet (lecture, modification, suppression...) |
| Rendre exportable / non exportable | Autorise ou interdit l'export de l'objet en PDF |
| Modifier la valeur d'un champ | Change automatiquement la valeur d'un champ via une formule |
Fonctionnement
Voici comment une règle métier est exécutée, étape par étape :
- Un événement se produit sur un objet (création, modification, changement de statut...)
- Toutes les règles actives associées à ce type d'objet et cet événement sont évaluées
- Si la condition MEL est remplie (ou absente), les actions sont exécutées dans l'ordre
- L'action Bloquer, si présente, interrompt l'opération et affiche le message d'erreur
Attention
L'action Bloquer empêche l'opération en cours (création, modification, etc.) et annule toutes les actions qui suivent dans la même règle. Placez-la judicieusement dans l'ordre de vos actions.
Exemples concrets
Validation automatique des petites commandes
Événement : Création d'objet (Commande)
Condition : Montant inférieur à 500 EUR
{ "montantTotal": { "$lt": 500 } }Action : Changer le statut en "Validée"
Les commandes de moins de 500 EUR sont automatiquement validées, les autres restent en attente de validation manuelle.
Bloquer la suppression des factures validées
Événement : Suppression d'objet (Facture)
Condition : Statut différent de "Brouillon"
{ "status": { "$ne": "brouillon" } }Action : Bloquer avec le message "Seules les factures en brouillon peuvent être supprimées"
Assigner un responsable pour les gros montants
Événement : Changement de statut (Facture → "Validée")
Condition : Montant supérieur à 10 000 EUR
{ "montantTotal": { "$gt": 10000 } }Actions : Assigner le directeur financier + modifier les permissions pour restreindre la modification aux administrateurs.
Prochaine étape
Découvrez maintenant comment rendre vos formulaires de saisie dynamiques et intelligents avec les déclencheurs de formulaire.