Composants de Processus BPMN Softyflow
Ce guide fournit une documentation complète pour tous les composants BPMN disponibles dans le Modeleur de Processus de Softyflow et leurs options de configuration.

Cette palette complète affiche tous les composants BPMN disponibles dans le Modeleur de Processus de Softyflow, y compris les tâches, les événements, les Portes et les éléments de flux pour construire une automatisation de flux de travail complète.
1. Composants de Tâche
1.1 Tâche Vide (Tâche Normale)
Type d'Élément : bpmn:Task
Une Tâche Vide, également appelée Tâche Normale, représente une unité de travail générique au sein du processus qui n'a pas de comportement prédéfini. Elle peut exécuter des scripts personnalisés, effectuer des calculs ou servir de placeholder pour la logique d'automatisation définie via les variables Entrée/Sortie.

Les Tâches Vides sont fréquemment utilisées pour les étapes de traitement intermédiaire ou l'automatisation backend, où la logique s'exécute automatiquement sans interaction utilisateur.
1.2 Tâche Utilisateur (Tâche Manuelle)
Type d'Élément : bpmn:UserTask
Les Tâches Utilisateur représentent un travail manuel qui doit être effectué par un utilisateur humain. Ces tâches apparaissent dans les paniers de tâches utilisateur et peuvent être affectées à des utilisateurs ou des rôles spécifiques.

L'élément Tâche Utilisateur représente un travail manuel qui nécessite une interaction humaine, apparaissant dans les listes de tâches utilisateur pour affectation et achèvement.
Options de Configuration
Utilisateurs et Rôles
Utilisateurs : Attribuer des tâches à des utilisateurs spécifiques par email
- Prend en charge l'affectation dynamique à l'aide de variables :
{{ userEmails }} - Peut attribuer à plusieurs utilisateurs avec des emails séparés par des virgules
- Variables spéciales :
{{SF_initiator}},{{SF_latestValidator}}
- Prend en charge l'affectation dynamique à l'aide de variables :
Rôles : Attribuer des tâches à des groupes/rôles d'utilisateurs
- Prend en charge l'affectation dynamique à l'aide de variables :
{{ roleId }} - Peut attribuer à plusieurs rôles avec des ID séparés par des virgules
- Rôle spécial :
public(accessible à tous les utilisateurs)
- Prend en charge l'affectation dynamique à l'aide de variables :
reCAPTCHA : Activer pour les tâches publiques afin d'empêcher le spam et les activités frauduleuses
Observateurs : Utilisateurs/rôles qui peuvent consulter la tâche en mode lecture seule

Ce panneau de configuration vous permet d'attribuer des tâches à des utilisateurs, rôles ou observateurs spécifiques, avec prise en charge de l'affectation dynamique à l'aide de variables de processus.
Configuration de l'Interface
- Interface : Sélectionner une interface web (UI) pour l'exécution de la tâche
- Écran : Choisir un écran spécifique au sein de l'interface sélectionnée

La configuration de l'interface lie la tâche à une interface web et un écran spécifiques, déterminant le formulaire avec lequel les utilisateurs interagissent lors de l'achèvement de la tâche.
Priorité de la Tâche
- Échéance dans : Définir la date d'échéance de la tâche en minutes
- Priorité : Définir le niveau de priorité de la tâche
- Très Basse, Basse, Moyenne, Haute, Très Haute
- Description : Texte de description de la tâche
- Masquer dans le Panier de Tâches : Option pour masquer la tâche de la vue du panier de tâches

Les paramètres de priorité de la tâche vous permettent de définir des dates d'échéance, des niveaux de priorité, des descriptions et des options de visibilité pour gérer l'urgence et l'organisation des tâches.
Paramètres de Notification
- Envoyer un email de notification : Activer/désactiver les notifications par email
- Fournisseur : Choisir le fournisseur d'email (par défaut : fournisseur Softyflow)
- Sujet du Mail : Ligne de sujet de l'email (prend en charge les variables)
- Modèle de Mail : Éditeur visuel de modèle d'email
- Paramètres Avancés :
- Envoyer le mail UAT à SF_initiator : Envoyer des emails de test à l'initiateur du processus
- De : Email de l'expéditeur personnalisé
- Cc : Destinataires en copie carbone
- Répondre à : Adresses de réponse
- Pièces jointes : Pièces jointes de fichier depuis les fichiers du projet

Les paramètres de notification activent les alertes email automatiques pour les affectations de tâches, avec des modèles personnalisables, des fournisseurs et des options avancées pour les destinataires et les pièces jointes.
1.3 Tâche d'Envoi (Tâche de Mail)
Type d'Élément : bpmn:SendTask
L'élément Tâche d'Envoi automatise la livraison d'emails pendant l'exécution du processus, envoyant des notifications ou des informations sans nécessiter d'interaction humaine.

Options de Configuration
Destinataires
- Aux Utilisateurs : Destinataires email (utilisateurs)
- Aux Rôles : Destinataires email (rôles/groupes)

Ce panneau configure les destinataires email pour les tâches d'envoi, prenant en charge à la fois les adresses email utilisateur directes et les affectations de groupe basées sur les rôles.
Configuration du Mail
- Fournisseur : Fournisseur de service email
- Sujet du Mail : Sujet de l'email (prend en charge les variables comme
{{ taskId }}) - Modèle de Mail : Éditeur visuel du corps de l'email
- Paramètres Avancés : Identiques aux paramètres de notification de Tâche Utilisateur

Le panneau de configuration de mail vous permet de définir le sujet de l'email et de composer le corps du message en utilisant des variables de processus pour un contenu dynamique.
Modèle de Mail

L'éditeur visuel de modèle d'email fournit une interface glisser-déposer pour concevoir des mises en page d'email professionnelles avec du contenu dynamique et des options de formatage.
1.4 Sous-Processus
Type d'Élément : bpmn:SubProcess
Les Sous-Processus permettent d'intégrer et d'exécuter d'autres processus au sein du processus actuel.

L'élément Sous-Processus vous permet d'intégrer et d'exécuter d'autres processus au sein du flux de travail actuel, permettant la modularité et la réutilisabilité des processus.
Options de Configuration
- Sous-Processus : Sélectionner le processus à exécuter
- Multi-Instance Parallèle : Activer l'exécution parallèle de plusieurs instances
- Tableau Parallèle : Variable contenant les valeurs de tableau pour l'exécution multi-instance
- Chaque valeur de tableau démarre une nouvelle instance de sous-processus

Ce panneau de configuration vous permet de sélectionner le processus à exécuter en tant que sous-processus et de configurer l'exécution multi-instance parallèle pour le traitement de tableaux de données.
2. Composants de Porte
Les Portes contrôlent la divergence et la convergence des flux de processus en fonction de conditions définies.
2.1 Porte Exclusive (XOR)
Les Portes Exclusives créent des points de décision dans le flux de processus où un seul chemin peut être pris en fonction de conditions.
- Utilisée pour modéliser des décisions basées sur des conditions.
- Un seul chemin sortant est sélectionné (mutuellement exclusif).

Les Portes Exclusives créent des points de décision où un seul chemin sortant est sélectionné en fonction d'expressions conditionnelles, orientant le flux de travail vers la branche appropriée.
Porte Parallèle
- Utilisée pour diviser le processus en plusieurs chemins parallèles.
- Peut également joindre plusieurs chemins entrants en un seul.

Les Portes Parallèles permettent l'exécution simultanée de plusieurs chemins de flux de travail, permettant aux tâches de s'exécuter de manière concurrente et de les synchroniser lorsque tous les chemins sont terminés.
3. Composants d'Événement
3.1 Événements de Limite
Type d'Élément : bpmn:BoundaryEvent
Les Événements de Limite sont attachés aux activités et peuvent interrompre ou s'exécuter en parallèle de l'activité principale.
Événements Minuteur
Définition d'Événement : bpmn:TimerEventDefinition
Minuteur Interruptif (Unique)
- Démarrer dans : Temps d'attente avant déclenchement (en minutes)
- Prend en charge les délais basés sur des variables :
{{ delay }} - Interrompt l'activité principale lorsqu'il est déclenché
Minuteur Non-Interruptif (Récurrent)
- Chaque : Intervalle récurrent (en minutes)
- S'exécute périodiquement sans interrompre l'activité principale
- Continue jusqu'à ce que l'activité principale soit terminée

Les événements minuteur permettent l'automatisation de flux de travail basée sur le temps, déclenchant des actions après des délais spécifiés ou à intervalles récurrents, avec prise en charge du comportement interruptif et non-interruptif.
Événements d'Erreur
Définition d'Événement : bpmn:ErrorEventDefinition
- Capture les erreurs de l'activité attachée
- Fournit des mécanismes de gestion et de récupération d'erreur
- Peut définir une logique de gestion spécifique aux erreurs

Les événements d'erreur fournissent des mécanismes de gestion d'erreur en capturant les exceptions des activités et en redirigeant le flux de travail vers les chemins de récupération d'erreur.
3.2 Événements de Début
Type d'Élément : bpmn:StartEvent
Les Événements de Début définissent où les instances de processus commencent leur exécution.

Les Événements de Début définissent les points d'entrée pour les instances de processus, marquant où l'exécution du flux de travail commence et initialisant le processus avec les variables de départ. Ils ne peuvent être déclenchés que par un seul utilisateur qui initie l'exécution du processus.
3.3 Événements de Fin
Type d'Élément : bpmn:EndEvent
Les Événements de Fin marquent les points d'achèvement des instances de processus, finalisant l'exécution du flux de travail et stockant l'état final des variables de processus.

4. Composants de Flux
4.1 Flux de Séquence
Type d'Élément : bpmn:SequenceFlow
Les Flux de Séquence connectent les éléments de processus et définissent l'ordre d'exécution.
Options de Configuration
- Flux Conditionnels : Ajouter des conditions JavaScript pour contrôler le flux
- Flux par Défaut : Chemins de repli lorsqu'aucune condition n'est remplie
- Accès aux variables pour l'évaluation des conditions

Les flux de séquence connectent les éléments de processus et définissent l'ordre d'exécution, avec prise en charge des expressions conditionnelles pour contrôler quels chemins sont pris lors de l'exécution du flux de travail.
5. Variables Entrée/Sortie
Disponibles pour les Tâches Vides, les Tâches Utilisateur, les Tâches d'Envoi et les Sous-Processus.
Les Variables E/S définissent les valeurs évaluées avant (Entrée) ou après (Sortie) l'exécution de la tâche.
Paramètres d'Entrée
- Traiter les données avant l'exécution de la tâche
- Transformer les données externes pour la consommation de la tâche
- Configurer des variables spécifiques à la tâche
Paramètres de Sortie
- Traiter les données après l'achèvement de la tâche
- Transformer les résultats de la tâche pour la consommation du processus
- Mettre à jour les variables de processus
Types de Variables
Scripts
- Type :
script - Langage : JavaScript
- Exécution : Exécution côté serveur
- Cas d'Utilisation : Manipulation de données complexe, calculs, appels API

Les variables entrée/sortie basées sur des scripts permettent une manipulation de données complexe en utilisant JavaScript, avec une exécution côté serveur pour les calculs, les appels API et le traitement de la logique métier.
Expressions
- Type :
expression - Langage : Expressions JavaScript
- Exécution : Affectations et transformations de valeurs simples
- Cas d'Utilisation : Mappage de variables, calculs simples

Les variables basées sur des expressions fournissent des affectations et transformations de valeurs simples en utilisant des expressions JavaScript, idéales pour le mappage de variables et les calculs simples.
Actions
- Type :
action - Basé sur l'UI : Constructeur de fonction visuel
- Capacités : Composants UI, opérations de base de données, gestion de fichiers
- Valeur de Retour : Données de retour configurables

Les variables basées sur des actions fournissent un constructeur de fonction visuel pour les opérations de base de données, la gestion de fichiers et les composants UI, permettant des flux de travail complexes sans écrire de code.
6. Fonctionnalités Avancées
6.1 Référence des Variables Système
Les variables système suivantes sont automatiquement disponibles dans tous les contextes de processus :
| Variable | Type | Description | Disponible Dans |
|---|---|---|---|
SF_initiator | Object | Informations utilisateur de l'initiateur du processus (email, nom, id) | Toutes les tâches et scripts |
SF_latestValidator | Object | Utilisateur ayant terminé la tâche la plus récente | Toutes les tâches et scripts |
SF_mode | String | Mode d'exécution : "test", "uat" ou "prod" | Tous les contextes |
SF_version | String | Identifiant de version du processus | Tous les contextes |
instanceId | String | Identifiant unique de l'instance de processus | Tous les contextes |
projectId | String | Identifiant du projet actuel | Tous les contextes |
nextTaskId | String | Identifiant de la prochaine tâche à exécuter | Flux de processus |
SF_loop_variables | Any | Élément de tableau actuel dans l'exécution multi-instance | Sous-processus multi-instance uniquement |
SF_loop_index | Number | Index d'itération actuel (base 0) | Sous-processus multi-instance uniquement |
SF_sub_process_data | Object | Données retournées de l'exécution du sous-processus | Processus parent après sous-processus |
SF_sub_process_res | Array | Tableau de résultats des instances de sous-processus parallèles | Processus parent après multi-instance |
SF_last_activity_name | String | Nom de la dernière activité exécutée | Tous les contextes |
SF_involved_users | Array | Tous les utilisateurs ayant participé au processus | Tous les contextes |
SF_involved_validators | Array | Tous les utilisateurs ayant validé des tâches | Tous les contextes |
SF_involved_roles | Array | Tous les rôles affectés aux tâches | Tous les contextes |
SF_observer | Array | Rôles observateurs pour le processus | Tous les contextes |
SF_priority | String | Niveau de priorité actuel du processus | Tous les contextes |
SF_description | String | Texte de description du processus | Tous les contextes |
Exemples d'Utilisation :
// Accéder à l'email de l'initiateur
let requesterEmail = SF_initiator.email;
// Vérifier le mode d'exécution
if (SF_mode === "prod") {
// Logique réservée à la production
}
// Accéder aux données de boucle en multi-instance
let currentItem = SF_loop_variables;
let itemIndex = SF_loop_index;
6.2 Interpolation de Variables
- Syntaxe :
{{ variableName }} - Pris en charge dans : Sujets d'email, modèles, affectations, conditions
- Évaluation dynamique pendant l'exécution
6.3 Exécution Multi-Instance
Multi-Instance Parallèle
- Exécuter plusieurs instances de sous-processus simultanément
- Création d'instances basée sur des tableaux
- Portées de variables indépendantes par instance
7. Bonnes Pratiques
Cette section consolide les bonnes pratiques issues de l'ensemble de la suite de documentation des processus.
7.1 Conception de Processus
- Commencer Simple : Commencer avec des flux de base avant d'ajouter de la complexité
- Utiliser des Noms Descriptifs : Tous les éléments doivent avoir des noms clairs et compréhensibles pour l'entreprise
- Conception Modulaire : Diviser les processus complexes en sous-processus
- Planifier la Gestion des Erreurs : Définir des chemins d'erreur pour les opérations critiques
- Documenter Votre Processus : Ajouter des descriptions et commentaires pour les futurs mainteneurs
7.2 Gestion des Variables
- Nommage Cohérent : Utiliser le camelCase et des noms descriptifs
- Éviter les Préfixes Système : Ne pas commencer les variables par
SF_ - Documenter les Scripts Complexes : Ajouter des commentaires expliquant la logique métier
- Tester Avant le Déploiement : Valider tous les scripts en mode test
- Minimiser la Portée : Garder l'utilisation des variables aussi locale que possible
7.3 Transformation de Données (Entrée/Sortie)
- Choisir le Bon Type :
- Expressions pour les valeurs simples
- Scripts pour la logique complexe
- Actions pour les opérations de base de données
- Performance : Minimiser les appels API externes dans les chemins critiques
- Gestion des Erreurs : Toujours utiliser try-catch dans les scripts complexes
- Validation de Type : S'assurer que les types de données correspondent aux attentes
7.4 Configuration Email
- Tester les Modèles : Toujours tester en mode UAT d'abord
- Utiliser les Variables : Créer du contenu dynamique et personnalisé
- Sélection du Fournisseur : Configurer les fournisseurs appropriés par environnement
- Conformité : Inclure des options de désinscription lorsque requis
7.5 Utilisation des Sous-Processus
- Interfaces Claires : Documenter les variables entrée/sortie attendues
- Gestion des Erreurs : Implémenter la gestion des erreurs dans le parent et le sous-processus
- Performance : Surveiller les limites d'exécution parallèle
- Tests : Tester les sous-processus indépendamment avant l'intégration
7.6 Mesures et Reporting
- Noms Significatifs : Utiliser des étiquettes de mesures compréhensibles pour l'entreprise
- Nommage Cohérent : Suivre les conventions dans tous les processus
- Types Appropriés : Faire correspondre les types de mesures aux types de données
- Gérer les Valeurs Nulles : Utiliser la logique conditionnelle pour les données manquantes
- Tester les Expressions : Valider avec divers scénarios
7.7 Sécurité
- Activer reCAPTCHA : Pour les tâches publiques afin d'empêcher le spam
- Valider les Entrées : Toujours valider les entrées utilisateur dans les scripts
- Accès Basé sur les Rôles : Utiliser les affectations de rôles appropriées
- Sécuriser les Identifiants : Ne jamais coder en dur les clés API ou mots de passe
- Journalisation d'Audit : Activer la journalisation pour les opérations sensibles
7.8 Optimisation des Performances
- Limiter les Tâches Parallèles : Éviter l'épuisement des ressources
- Optimiser les Requêtes : Utiliser des champs indexés dans les requêtes de base de données
- Mettre en Cache Si Possible : Stocker les données fréquemment consultées
- Surveiller l'Exécution : Suivre les temps d'exécution des sous-processus et des tâches
- Définir des Timeouts Appropriés : Configurer des valeurs de timeout réalistes
7.9 Tests et Déploiement
- Mode Test d'Abord : Toujours tester dans l'environnement de test
- Déploiement Progressif : Test → UAT → Production
- Contrôle de Version : Suivre les changements de version des processus
- Sauvegarde Avant les Changements : Sauvegarder la version actuelle avant les mises à jour majeures
- Surveiller Après le Déploiement : Surveiller les erreurs en production
7.10 Maintenance
- Revues Régulières : Réviser et optimiser périodiquement les processus
- Mettre à Jour la Documentation : Maintenir les descriptions de processus à jour
- Nettoyer l'Inutilisé : Supprimer les processus et variables obsolètes
- Surveiller les Performances : Suivre les métriques et optimiser les goulets d'étranglement
- Retour Utilisateur : Intégrer les suggestions et problèmes des utilisateurs
Ce guide complet couvre tous les composants BPMN disponibles dans Softyflow. Chaque composant peut être combiné pour créer des solutions d'automatisation de flux de travail sophistiquées répondant aux besoins de votre entreprise.