Documentation ERPNext

ERPNext

Tâches de transition de workflow

Une tâche de transition s'exécute pendant le changement d'état. En synchrone, un échec annule la transition. En asynchrone, elle part après.

2 min de lectureMis à jour le Source : docs.frappe.io

Annonce de version

La page d'origine indique en tête que la fonction est à ajouter en version 16, puis décrit son fonctionnement.

À quoi sert une tâche

Les tâches de transition de workflow (Workflow Transition Tasks) sont des actions lancées pendant un changement d'état. Chaque transition peut être liée à un ensemble de tâches.

Chaque tâche est d'un de ces types :

  1. Actions définies par l'application, déclarées par chaque application Frappe dans hooks.py.
  2. Scripts serveur. La page renvoie à la documentation framework : Server Script.
  3. Webhooks. La page renvoie à Webhooks.

Deux modes :

  1. Synchrone, le mode par défaut. Les tâches s'enchaînent quand la transition démarre. Si l'une échoue, la transition est annulée.
  2. Asynchrone, via la case Asynchronous. Chaque tâche part après la fin de la transition. Elle n'influence pas la réussite de l'état, et tourne dans son propre travail d'arrière-plan.

Actions définies par l'application

Chaque application les déclare avec le hook workflow_methods. La page renvoie aux hooks.

La méthode, en chemin pointé, doit accepter doc: Document, le document sur lequel la transition s'applique. Exemple de la source :

python
# hooks.py
workflow_methods = [{"name": "Create a customer", "method":
                     "myapp.shop.doctype.kirana.create_customer"}]

# myapp/shop/doctype/kirana.py
def create_customer(doc):
    customer = frappe.new_doc("Customer")
    customer.customer_name = "Customer " + doc.name
    customer.customer_type = "Individual"
    customer.save()

Ces actions apparaissent dans la liste Tâches si une application les fournit. Un utilisateur final ne peut pas les créer lui-même. Il passe par un script serveur.

Scripts serveur

Ils prennent aussi le paramètre doc: Document. On les définit avec le type de script Workflow Task, puis on les lie à la tâche de transition.

Webhooks

On les crée en mettant le champ événement du document (Doc Event) du webhook à workflow_transition, puis on les lie à la tâche.

Pages liées