Flux de travail
La création d'un flux de travail permet de définir et de personnaliser les étapes nécessaires à l'approbation ou au rejet d'un document. Ce flux de travail remplace le flux par défaut de Dokos.
Dans l'interface de Dokos, les flux de travail s'appellent Circuits de validation.
Pour ouvrir la liste des circuits de validation, recherchez « Circuit de validation » dans la barre de recherche (Ctrl+K), ou allez sur /desk/workflow.
Les notes de frais et les demandes de congés ont un approbateur et un circuit d'approbation par défaut. Un flux de travail personnalisé remplace ce circuit par défaut. Vous pouvez créer un flux de travail pour n'importe quel type de document.
Exemples fictifs :
- Un devis supérieur à une certaine somme doit être approuvé par le responsable.
- Une commande fournisseur dépasse un certain nombre d'articles.
Vous pouvez utiliser l'Éditeur de circuit de validation pour créer des flux de travail de manière visuelle. Cet outil permet de glisser-déposer des états et de les relier entre eux pour établir des transitions. Vous pouvez également modifier leurs propriétés à partir de la barre latérale.
Lorsque vous enregistrez votre schéma, les champs du formulaire en tableau se remplissent automatiquement.
1. Créer un flux de travail
Voici un exemple pour la validation des notes de frais avec l'éditeur visuel. Dans le formulaire, renseignez le Nom du circuit de validation et le Type de document, puis cochez Est Active. Si cette case est cochée, les autres flux de travail du même type de document deviennent inactifs. Cliquez sur Éditeur de circuit de validation pour ouvrir l'éditeur visuel.


1.1. État
Vous pouvez créer des états selon vos besoins.
Exemple :
- Brouillon : État initial de la dépense.
- Soumis à la validation : La dépense est soumise pour approbation.
- Approuvé : La dépense est approuvée.
- Rejeté : La dépense est rejetée.
- Annulé : La dépense est annulée.
1.2. Statut du document
Le champ Statut du Document de chaque état prend une des valeurs suivantes :
- 0 (Brouillon) : à utiliser jusqu'à l'approbation finale.
- 1 (Validé) : le document est validé et n'est plus modifiable.
- 2 (Annulé) : le document est annulé.
Un document validé ne peut pas revenir à l'état brouillon. Un document brouillon ne peut pas passer directement à l'état annulé.

1.3. Autoriser la modification uniquement pour :
Vous devez sélectionner le rôle autorisé à modifier l'état. Il est nécessaire de mener une réflexion sur les différents rôles de votre organisation.

1.4. Mettre à jour le champ / mettre à jour la valeur
Dans certains documents, lorsque aucun flux de travail n'est défini, l'approbateur doit modifier manuellement le statut du document. Avec un flux de travail, renseignez Mettre à jour le Champ et Mettre à Jour la valeur sur l'état. Dokos donne cette valeur au champ quand le document arrive dans l'état.
Approved. Pour calculer la valeur avec une formule, par exemple doc.amount * 2, cochez Évaluer comme expression. Pour obtenir le nom exact d'un champ, maintenez la touche Alt et survolez le champ dans le formulaire.Le champ Champ de l'état du circuit de validation (par défaut workflow_state) enregistre l'état du flux de travail. Si ce champ n'existe pas dans le type de document, Dokos crée un champ personnalisé masqué de ce nom.
1.5. Propriétés de la transition
- Les règles de transition déterminent comment les états changent d'un état à un autre.

Exemple fictif : De Brouillon à Soumis à la validation : action (bouton) « Soumettre à la validation » par l'employé.
Chaque transition indique l'État, l'Action, l'État Suivant et le rôle Autorisé. La case Autoriser l'auto-approbation permet au créateur du document de faire lui-même la transition.
- Vous avez la possibilité de définir des conditions, ce qui peut être utile pour orienter une demande selon son montant.
Exemple fictif : si le montant de la dépense est supérieur à 50 €, l'approbation doit être faite par l'approbateur des notes de frais, alors que si cette dépense est inférieure ou égale à 50 €, l'employé peut lui-même valider sa dépense.
Exemple fictif : pour une demande de congés, la condition doc.total_leave_days <= 5 oriente les demandes de 5 jours ou moins vers un approbateur donné.
Voici un exemple finalisé de flux de travail, avec la visualisation graphique et sous forme de tableau.


2. État du circuit de validation
Vous avez la possibilité d'ajouter une couleur pour représenter l'état du flux de travail. Dans le document État du circuit de validation, sélectionnez un Style : Réussite (vert), Danger (rouge), Inverse (noir), Primaire (bleu), Info (bleu clair) ou Avertissement (orange).


3. Option : Ne pas Remplacer le Statut
- Si cette case est cochée, l'état du circuit de validation ne remplace pas le statut du document. La même case existe sur chaque ligne d'état, pour un seul état.

Dans l'exemple ci-dessous, nous avons coché l'option. C'est le statut par défaut du document qui est affiché.

Dans l'exemple ci-dessous, nous n'avons pas coché l'option. C'est donc le statut créé lors de la mise en place du flux de travail qui est visible dans la vue liste de notre dépense.

3.1. Dans le formulaire
Le formulaire suit la même règle que la vue liste. Si la case n'est pas cochée, l'indicateur du formulaire affiche l'état du circuit de validation, avec la couleur de son style. Si la case est cochée, il affiche le statut par défaut du document.

3.2. Personnalisation : obtenir les deux statuts dans la vue liste
Ci-dessous le pas à pas pour obtenir une vue liste avec les deux statuts du document. Dans la vue liste des notes de frais, ouvrez le menu ··· et cliquez sur Paramètres de la liste. Dans la fenêtre Paramètres de vue en liste Note de frais, cliquez sur + Ajouter / Supprimer un champ en haut à droite du tableau Champs pour ajouter le champ de statut.





4. À savoir
Lorsque vous créez un flux de travail pour les notes de frais ou les demandes de congé, vous devez accéder aux Paramètres RH pour supprimer l'obligation de renseigner un approbateur dans les documents :
- onglet Congés, section Paramètres des congés : case L'approbateur de congés obligatoire dans une demande de congé ;
- onglet Dépenses, section Paramètres des notes de frais : case Approbateur obligatoire pour les notes de frais.
Avant de retirer cette obligation, le champ Approbateur de notes de frais est obligatoire (voir la capture d'écran ci-dessous). Après avoir décoché cette option, le champ apparaît toujours dans les formulaires mais n'est plus obligatoire.


Vous avez la possibilité de masquer ce champ en personnalisant le formulaire : dans Personnaliser un formulaire pour Note de frais, sélectionnez le champ Approbateur de notes de frais (expense_approver) et cochez la propriété Masqué.

5. Exemples
5.1. Demande de congés


5.2. Devis supérieur à 100€


6. Actions du circuit de validation
Action du circuit de validation est un espace centralisé où vous pouvez suivre et gérer toutes les actions en attente dans vos flux de travail.
Les actions du flux de travail envoient des notifications par e-mail uniquement si la case Envoyer une alerte email est cochée dans le flux de travail.
Sur chaque état, le champ Modèle d'email pour l'action suivante définit le modèle d'e-mail des actions. Le modèle peut inviter les utilisateurs à faire l'action suivante. Aucune action n'est créée pour un état marqué Est un état optionnel.
Fonctions autorisées dans une condition de transition :
- frappe.db.get_value
- frappe.db.get_list
- frappe.session
- frappe.utils.now_datetime
- frappe.utils.get_datetime
- frappe.utils.add_to_date
- frappe.utils.now
Exemple : la condition ci-dessous est vraie pour un document créé il y a moins de 5 jours. Vous pouvez utiliser n'importe quelle propriété du document.
doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True)