Processus & Conception
Le Modélisateur de Processus de Softyflow fournit un environnement robuste et intuitif pour concevoir visuellement, construire et tester vos flux de travail métier en utilisant la norme BPMN 2.0 internationalement reconnue. Ce guide complet vous guidera à travers toutes les fonctionnalités essentielles et les composants dont vous avez besoin pour maîtriser la création de flux de processus automatisés puissants et efficaces.
Avant de plonger dans la conception des processus, il est crucial que votre projet soit complètement configuré. Assurez-vous que vous avez terminé la configuration du projet et que vous avez déjà conçu les interfaces web avec lesquelles vos processus interagiront.
La conception des processus dans Softyflow est centrée sur la création de workflows en orchestrant une combinaison d'activités, de passerelles et d'événements. Ces éléments travaillent ensemble pour automatiser votre logique métier. Chaque processus est composé de composants de processus interconnectés qui définissent le chemin d'exécution précis, appliquent les règles métier et gèrent les transformations de données.
Composants clés d'un processus :
- Activités : Elles représentent le travail à effectuer au sein du processus. Cela inclut les tâches effectuées par les utilisateurs (Tâches Utilisateur), les actions système automatisées (Tâches Normales), l'envoi d'e-mails (Tâches d'Envoi) ou même l'invocation d'autres processus (Sous-Processus).
- Passerelles : Ce sont les points de décision qui contrôlent le flux du processus. Elles vous permettent de créer des branches, des chemins parallèles et une logique conditionnelle.
- Événements : Ils agissent comme des déclencheurs qui démarrent un processus, des points finaux qui le terminent, ou des événements intermédiaires qui réagissent aux minuteurs ou aux erreurs.
- Flux de Séquence : Ce sont les connecteurs qui lient tous les composants, définissant l'ordre d'exécution et le chemin que le processus prendra.
1. Activités & Composants
Les activités sont les éléments fondamentaux de tout processus, représentant une unité de travail à effectuer. Softyflow offre plusieurs types d'activités pour modéliser un large éventail de scénarios métier.
1.1. Tâches Utilisateur (Tâches Manuelles)
Les Tâches Utilisateur, également connues sous le nom de Tâches Manuelles, représentent le travail qui doit être effectué par un humain. Lorsqu'un processus atteint une Tâche Utilisateur, elle crée une entrée dans le panier de tâches de l'utilisateur assigné, où il peut ouvrir l'interface web associée, effectuer l'action requise et terminer la tâche pour faire avancer le processus.
Options de configuration clés :
- Affectation : Vous pouvez affecter les tâches à des utilisateurs spécifiques, à un groupe d'utilisateurs en affectant un rôle, ou les affecter dynamiquement en fonction des variables du processus.
- Interface : Sélectionnez l'écran UI avec lequel l'utilisateur interagira pour terminer la tâche.
- Notifications : Configurez les notifications par e-mail à envoyer lorsqu'une tâche est assignée, avec des modèles d'e-mail entièrement personnalisables.
- Dates d'échéance : Définissez les délais et les niveaux de priorité des tâches pour assurer leur réalisation en temps opportun.
- Observateurs : Accordez un accès en lecture seule à la tâche pour des utilisateurs ou des rôles spécifiques qui ont besoin de surveiller la progression sans prendre d'action.
Panneau de configuration pour une Tâche Utilisateur, montrant les options d'affectation, d'interface et de notification.
1.2. Tâches d'Envoi (Tâches d'E-mail)
Les Tâches d'Envoi sont utilisées pour envoyer des e-mails automatisés sans intervention humaine. C'est parfait pour envoyer des notifications, des confirmations ou des alertes à des moments spécifiques de votre processus.
Options de configuration clés :
- Destinataires : Définissez qui reçoit l'e-mail. Cela peut être une liste statique d'utilisateurs, un rôle, ou déterminé dynamiquement à partir d'une variable du processus.
- Modèles : Utilisez un éditeur d'e-mail visuel riche pour créer des modèles d'e-mail beaux et professionnels. Vous pouvez facilement inclure des variables de processus pour personnaliser le contenu.
- Fournisseurs : Softyflow prend en charge plusieurs fournisseurs de services d'e-mail, vous permettant de choisir celui qui convient le mieux à vos besoins.
- Pièces jointes : Attachez des fichiers à vos e-mails, provenant des ressources de votre projet.

Panneau de configuration pour une Tâche d'Envoi, où vous pouvez définir les destinataires, les modèles d'e-mail et les pièces jointes.
1.3. Tâches Normales
Les Tâches Normales sont des tâches système automatisées qui exécutent une logique côté serveur sans nécessiter d'interaction utilisateur ou d'envoi d'e-mail. Elles sont idéales pour effectuer des opérations d'arrière-plan telles que le traitement de données, les calculs ou l'appel de services externes. La logique d'une Tâche Normale est définie à l'aide de paramètres d'entrée/sortie, où vous pouvez écrire des scripts ou utiliser des actions pour effectuer les opérations souhaitées.

Une Tâche Normale dans le modélisateur de processus, utilisée pour le traitement automatisé en arrière-plan.
1.4. Sous-Processus
Les Sous-Processus vous permettent d'encapsuler une partie de votre processus et de la réutiliser, ou d'appeler un autre processus existant à partir de votre flux de travail actuel. C'est une fonctionnalité puissante pour créer des modèles de processus modulaires, lisibles et maintenables.
Fonctionnalités clés :
- Sélection du Processus : Choisissez facilement tout autre processus de votre projet à exécuter en tant que sous-processus.
- Passage de Variables : Les variables du processus parent sont automatiquement héritées par le sous-processus, assurant un flux de données transparent.
- Exécution Parallèle : Vous pouvez exécuter plusieurs instances d'un sous-processus en parallèle, par exemple en itérant sur un tableau de données.
- Collecte de Résultats : Lors de l'exécution en parallèle, les résultats de toutes les instances peuvent être collectés et agrégés pour un traitement ultérieur dans le processus parent.

Configuration pour un Sous-Processus, montrant la sélection du processus et le mappage des variables.
2. Passerelles & Contrôle de Flux
Les Passerelles sont essentielles pour contrôler le chemin d'exécution de votre processus. Elles vous permettent d'implémenter des points de décision, de créer des flux parallèles et de gérer une logique métier complexe.
2.1. Passerelle Exclusive (XOR)
La Passerelle Exclusive (souvent appelée passerelle XOR) crée un point de décision dans votre processus où un seul des chemins sortants possibles peut être pris. Le choix du chemin est déterminé par les conditions que vous définissez sur les flux de séquence connectés à la passerelle. La première condition qui s'évalue à vrai déterminera le chemin pris.

Une Passerelle Exclusive (XOR) divisant le flux du processus en plusieurs chemins conditionnels.
2.2. Passerelle Parallèle
La Passerelle Parallèle est utilisée pour diviser le flux du processus en plusieurs chemins qui s'exécuteront simultanément, ou pour rejoindre plusieurs chemins parallèles en un seul. Cela est utile lorsque vous avez plusieurs tâches qui peuvent être effectuées au même moment.
Cas d'utilisation courants :
- Exécution de Tâches Simultanées : Permettez à plusieurs utilisateurs ou systèmes de travailler sur différentes tâches au même moment.
- Approbations Parallèles : Demandez des approbations à plusieurs départements simultanément et attendez que tous répondent.
- Traitement Multi-étapes : Effectuez plusieurs étapes de traitement des données indépendantes en parallèle pour économiser du temps.

Une Passerelle Parallèle divisant le flux en deux chemins concurrents.
3. Paramètres d'Entrée/Sortie
Les paramètres d'Entrée/Sortie sont une fonctionnalité puissante qui vous permet de configurer les transformations de données avant et après l'exécution d'une tâche. C'est là que vous pouvez définir la logique centrale de vos tâches automatisées. Cette fonctionnalité est disponible pour les Tâches Utilisateur, les Tâches d'Envoi, les Tâches Normales et les Sous-Processus. Pour un guide détaillé, consultez notre guide des Paramètres d'Entrée/Sortie.
 d'Entrée/Sortie](/img/02_developpement_guide/02-process-design/input_output.png)
L'interface de mappage des paramètres d'Entrée/Sortie.
3.1. Types de Paramètres
3.1.1. Scripts (JavaScript)
Les scripts vous permettent d'écrire une logique complexe côté serveur en utilisant JavaScript. Vous avez accès complet au SDK de Softyflow, qui vous permet d'interagir avec les fonctionnalités principales de la plateforme, de manipuler les données et d'effectuer des calculs avancés.

L'éditeur JavaScript pour écrire la logique des scripts personnalisés.
Fonctions SDK disponibles :
Le SDK fournit un riche ensemble de fonctions pour interagir avec votre environnement Softyflow.

Un exemple des fonctions SDK disponibles dans l'éditeur de script.
Pour en savoir plus sur les capacités complètes du SDK, veuillez consulter notre référence du SDK Node.js.
3.1.2. Expressions
Les expressions sont utilisées pour les manipulations de données simples, comme l'assignation de valeurs à des variables ou l'effectuation d'opérations de chaînes de caractères de base. C'est un moyen rapide et facile de gérer le flux de données sans écrire des scripts complets.

L'éditeur d'expressions pour les assignations simples de variables.
3.1.3. Actions
Les Actions fournissent un constructeur de fonctions visuel, sans code, pour effectuer des opérations courantes comme les manipulations d'UI et les requêtes de base de données. Cela permet aux non-développeurs de construire une logique puissante sans écrire aucun code.
Actions disponibles :
- Opérations de Base de Données : Trouvez, insérez, mettez à jour ou supprimez facilement des enregistrements de votre base de données.
- Gestion des Processus : Lancez de nouveaux processus, validez les tâches ou récupérez les informations de tâche.
- Gestion des Utilisateurs : Trouvez des utilisateurs, mettez à jour leurs métadonnées et gérez les rôles.
- Utilitaires : Une large gamme d'utilitaires est disponible, tels que Générer un PDF, Envoyer un e-mail et effectuer des appels API.

Le constructeur Action visuel pour créer une logique sans code.
Pour une configuration détaillée des Paramètres d'Entrée/Sortie, consultez le guide des Paramètres d'Entrée/Sortie.
4. Tâches Planifiées & Minuteurs
4.1. Tâches Planifiées
La fonctionnalité Tâches Planifiées vous permet d'automatiser l'exécution de vos processus à intervalles réguliers. Vous pouvez configurer les processus pour s'exécuter périodiquement dans différents environnements : TEST, UAT (Acceptation) et PROD (Production). C'est parfait pour les tâches récurrentes comme la génération de rapports quotidiens ou la synchronisation des données nocturnes.
Sur la page Tâches Planifiées, vous trouverez un tableau qui énumère toutes les exécutions planifiées que vous avez configurées.
4.1.1. Création d'une Nouvelle Tâche Planifiée
Pour créer une nouvelle tâche planifiée, cliquez simplement sur le bouton rouge Créer des Tâches de Planification. Cela ouvrira la modal de configuration de planification où vous pouvez définir tous les paramètres pour l'exécution.
4.1.2. Champs du Formulaire :
| Champ | Description |
|---|---|
| Mode | L'environnement où le processus s'exécutera : TEST, ACCEPTATION ou PRODUCTION. |
| Projet | Sélectionnez le projet qui contient le processus que vous souhaitez planifier. |
| Processus | Choisissez le processus spécifique à exécuter. |
| Date et Heure de Début | Définissez la date et l'heure exactes du début de la première exécution. |
| Délai Entre Répétitions | Configurez l'intervalle de temps entre les exécutions. Vous pouvez le spécifier en jours, heures, minutes ou utiliser une expression cron pour les planifications plus complexes. |
| Répéter Chaque | Définissez la fréquence de répétition de la tâche. |
4.1.3. Options de Délai
Vous pouvez spécifier à quelle fréquence le processus doit se répéter en sélectionnant l'un des types de délai suivants :
JoursHeuresMinutesCron(pour les modèles de planification avancés, par exemple, "0 0 * * MON" pour s'exécuter chaque lundi à minuit)

La modal de configuration des Tâches Planifiées.
4.2. Événements de Minuterie
Les Événements de Minuterie peuvent être attachés aux activités pour gérer les délais d'attente. Si une tâche n'est pas complétée dans un délai spécifié, l'événement de minuterie déclenchera un chemin alternatif dans le processus. C'est crucial pour gérer les escalades ou pour s'assurer que les processus ne se bloquent pas.
- Commencer dans : Le délai avant le déclenchement du minuteur (en minutes).
- Action : Lorsque le minuteur se déclenche, il interrompt l'activité principale et suit le chemin alternatif défini dans le modèle de processus.

Un Événement de Minuterie attaché à une Tâche Utilisateur pour la gestion des délais d'attente.
5. Notifications par E-mail
Les notifications par e-mail sont une part clé pour tenir les utilisateurs et les parties prenantes informés. Elles peuvent être configurées via les Tâches d'Envoi pour les e-mails entièrement automatisés, ou dans le cadre des paramètres de notification d'une Tâche Utilisateur.
Fonctionnalités clés des e-mails :
- Intégration des Variables : Personnalisez vos e-mails en insérant dynamiquement les variables du processus dans le sujet et le corps.
- Éditeur de Modèles : Utilisez un éditeur visuel par glisser-déposer pour concevoir des modèles d'e-mail professionnels et réactifs.
- Multi-Fournisseur : Softyflow prend en charge divers fournisseurs de services d'e-mail, vous donnant la flexibilité d'utiliser votre service préféré.
- Support des Pièces Jointes : Attachez des fichiers provenant des ressources de votre projet à vos e-mails.
5.1. Stratégies de Notification
- Affectation de Tâche : Notifiez les utilisateurs dès qu'une nouvelle tâche leur est assignée.
- Mises à Jour de Statut : Tenez les parties prenantes informées de la progression d'un processus.
- Alertes d'Erreur : Envoyez automatiquement des notifications à votre équipe technique lorsqu'une erreur se produit.
- Escalade : Implémentez des règles d'escalade basées sur le temps pour envoyer des e-mails de rappel ou réassigner les tâches si elles ne sont pas complétées à temps.

L'éditeur de modèles d'e-mail pour concevoir des notifications personnalisées.
6. Mesures & KPIs
Les mesures du processus sont utilisées pour suivre les Indicateurs Clés de Performance (KPIs) en temps réel. Elles vous permettent d'effectuer des calculs lors de l'exécution du processus et de stocker les résultats, qui peuvent ensuite être utilisés pour créer des rapports perspicaces.
6.1. Configuration des Mesures
Chaque mesure que vous définissez nécessite ce qui suit :
- Étiquette : Un nom descriptif pour la mesure qui sera affiché dans les rapports.
- Type : Le type de données de la mesure (Chaîne, Nombre, Booléen, Date ou Tout).
- Champ : Une expression JavaScript utilisée pour calculer la valeur de la mesure.
6.2. Exemples de Calculs
](/img/02_developpement_guide/02-process-design/measures.png)
Le panneau de configuration des Mesures pour le suivi des KPIs.
6.3. Mesures Système
Softyflow fournit automatiquement un ensemble de mesures système pour chaque instance de processus :
SF_last_activity_name: Le nom de l'activité actuelle.SF_involved_users: Une liste de tous les utilisateurs qui ont participé au processus.SF_status: Le statut actuel du processus (par exemple, en cours, complété, avorté).SF_createdAt: L'horodatage du moment où l'instance de processus a été démarrée.
Pour plus de détails, consultez la documentation Mesures.
7. Gestion des Erreurs
Une gestion robuste des erreurs est cruciale pour construire des applications fiables. Softyflow fournit des mécanismes pour capturer et gérer les erreurs qui peuvent survenir lors de l'exécution du processus.
7.1. Événements de Limite d'Erreur
Les Événements de Limite d'Erreur peuvent être attachés aux activités pour capturer les erreurs qui se produisent en leur sein. Lorsqu'une erreur est capturée, le flux normal est interrompu et le processus suit un chemin alternatif, ce qui vous permet d'implémenter une logique de récupération.
Configuration :
- Attachement aux Activités : Vous pouvez attacher des événements d'erreur aux Tâches Utilisateur, aux Tâches Normales et aux Sous-Processus.
- Types d'Erreur : Vous pouvez les configurer pour capturer des types d'erreurs spécifiques ou agir comme un capteur universel pour toute erreur.
- Actions de Récupération : Définissez un chemin d'exécution alternatif pour gérer l'erreur, comme notifier un administrateur, réessayer la tâche ou terminer gracieusement le processus.
7.2. Stratégies de Gestion des Erreurs

Un Événement de Limite d'Erreur capturant une erreur et redirigeant vers un sous-processus de gestion.
Meilleures Pratiques pour la Gestion des Erreurs :
- Fournissez toujours des chemins de secours pour les processus critiques afin de s'assurer qu'ils ne se bloquent pas.
- Enregistrez toutes les erreurs avec des informations détaillées pour un débogage et un suivi plus faciles.
- Implémentez des mécanismes de retry pour les défaillances transitoires, telles que les problèmes de réseau temporaires.
- Utilisez les événements de minuterie en conjonction avec la gestion des erreurs pour les opérations de longue durée.
8. Sécurité & Contrôle d'Accès
La sécurité est une priorité absolue, et Softyflow fournit un contrôle granulaire sur qui peut faire quoi au sein de vos processus.
8.1. Sécurité au Niveau des Tâches
- Affectation des Utilisateurs : Affectez les tâches directement à un utilisateur ou à un rôle.
- Observateurs : Accordez un accès en lecture seule aux utilisateurs qui ont besoin de surveiller la progression d'une tâche.
- reCAPTCHA : Protégez les tâches accessibles au public contre le spam et les abus.
- Affectation Dynamique : Utilisez les variables du processus pour implémenter des règles de sécurité complexes et basées sur les données.
8.2. Sécurité au Niveau du Processus
- Restrictions de Rôles : Utilisez la gestion des rôles pour contrôler qui peut démarrer, visualiser ou gérer les processus.
- Permissions de Visualisation : Séparez les permissions de visualisation des instances de processus des droits d'exécution des tâches.
- Sécurité des Variables : Protégez les données sensibles stockées dans les variables du processus en contrôlant qui peut les voir ou les modifier.
8.3. Meilleures Pratiques de Sécurité
- Principe du Moindre Privilège : Accordez aux utilisateurs uniquement les permissions dont ils ont absolument besoin pour effectuer leurs devoirs.
- Hiérarchies de Rôles : Implémentez une hiérarchie de rôles claire et logique qui reflète la structure de votre organisation.
- Audit : Auditez régulièrement l'accès au processus et les modifications pour détecter toute activité non autorisée.
- Gestion Sécurisée des Identifiants : Gérez en toute sécurité tous les identifiants sensibles et les variables de l'API.
- Validation des Entrées : Validez toujours tous les entrées utilisateur dans vos scripts et expressions pour prévenir les attaques par injection.
9. Meilleures Pratiques
9.1. Conception de Processus
- Modularité : Divisez les processus grands et complexes en sous-processus plus petits et réutilisables. Cela rend vos modèles plus faciles à lire, à maintenir et à tester.
- Gestion des Erreurs : Concevez toujours en pensant à la possibilité d'échec. Fournissez des chemins d'erreur clairs et des délais d'attente pour toute tâche qui pourrait potentiellement échouer.
- Performance : Soyez conscient de la performance. Évitez d'exécuter des calculs ou des requêtes complexes dans le chemin critique de votre processus s'ils peuvent être faits de manière asynchrone.
- Documentation : Utilisez des noms descriptifs pour vos activités et variables, et ajoutez des commentaires à votre modèle pour expliquer la logique complexe.
9.2. Gestion des Variables
- Conventions de Nommage : Adoptez une convention de nommage cohérente et descriptive pour vos variables (par exemple, camelCase).
- Sécurité des Types : Assurez-vous que vos expressions et scripts gèrent correctement les différents types de données pour éviter les erreurs d'exécution.
- Vérification de Nullité : Vérifiez toujours si une variable existe avant de l'utiliser, surtout si elle provient d'un système externe.
- Sécurité : Soyez prudent pour ne pas exposer les données sensibles dans les journaux ou aux utilisateurs qui ne devraient pas y avoir accès.
9.3. Tests & Validation
- Tests Unitaires : Testez chaque composant de votre processus, comme les scripts individuels ou les sous-processus, de manière isolée.
- Tests End-to-End : Validez l'ensemble du flux du processus du début à la fin pour vous assurer que toutes les intégrations fonctionnent comme prévu.
- Tests de Performance : Surveillez les temps d'exécution et l'utilisation des ressources de vos processus sous charge pour identifier les goulots d'étranglement.
- Tests d'Acceptation des Utilisateurs (UAT) : Impliquez vos utilisateurs métier dans le processus de test pour vous assurer que l'application finale répond à leurs besoins et attentes.
Prochaines Étapes
Maintenant que vous avez une bonne compréhension de la conception des processus, vous pouvez continuer à construire le reste de votre application :
- Conception de l'Interface Web - Créez les écrans UI qui se connecteront à vos processus.
- Intégration de Base de Données - Connectez vos processus à vos sources de données.
- Intégration - Connectez votre application avec les APIs externes et les services.
- Rapports - Créez des rapports perspicaces à partir de vos données de processus.
- Tests & Déploiement - Apprenez comment tester et déployer vos processus dans différents environnements.
- Surveillance & Exécution - Découvrez comment surveiller et gérer vos instances de processus en cours d'exécution.
Pour une expérience plus pratique, nous vous recommandons vivement d'essayer nos tutoriels étape par étape ou de regarder nos tutoriels vidéo sur les processus et les rapports.
Pour des sujets plus avancés, vous pouvez explorer notre documentation détaillée sur les Composants de Processus, les Paramètres d'Entrée/Sortie, les Mesures et les Sous-Processus.