Aller au contenu

Exception ?

Résumé

  • Nom interne : AndromateException
  • Catégorie : Workflow Runtime
  • Objectif : Vérifier si la dernière tâche exécutée a levé une exception, et capturer optionnellement ses détails d'erreur dans des variables.
  • Type de tâche : Conditionnelle

Compatibilité

  • Version minimale AndroMate : 1.1.0

  • Version maximale AndroMate : 1.1.0

  • Android minimum : Android 13 (API 33)

  • Android maximum testé : Android 16 (API 36)

  • Constructeurs supportés :

    • ✅ Tous les constructeurs
  • Permissions requises :

    • Aucune

Description détaillée

La tâche Exception ? inspecte le contexte d'exécution pour déterminer si la dernière tâche exécutée a produit une exception. C'est une tâche conditionnelle : elle s'évalue à true ou false et dirige le workflow vers l'une de deux branches en conséquence.

Elle est utilisée pour :

  • Détecter les échecs de la tâche précédente sans arrêter le workflow
  • Bifurquer vers un chemin de gestion d'erreur ou un chemin de succès
  • Capturer le code d'erreur, la description et l'ID de la tâche en échec pour les rapports
  • Construire des workflows résilients qui se remettent des erreurs

La tâche gère :

  • la lecture du dernier état d'exception depuis l'AndroMateContext partagé,
  • l'évaluation du résultat booléen (true = erreur, false = pas d'erreur),
  • l'écriture optionnelle des détails de l'exception dans des variables de workflow déclarées.

Paramètres d'entrée

Cette tâche n'a pas de paramètres d'entrée. Elle lit l'état d'exception directement depuis le contexte d'exécution.


Paramètres de sortie

Les variables de sortie sont optionnelles. Si un nom de variable est fourni et que la variable a été déclarée dans le nœud Start, sa valeur est mise à jour après l'exécution.

Champ Type Condition Compatibilité Android Compatibilité AndroMate Défaut
code_output String Lorsque la tâche précédente a échoué Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 <ANDROMATE_NULL_VALUE>
description_output String Lorsque la tâche précédente a échoué Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 <ANDROMATE_NULL_VALUE>
task_id_output String Lorsque la tâche précédente a échoué Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 <ANDROMATE_NULL_VALUE>

Exceptions

La tâche Exception ? ne lève aucune exception.


Diagramme d'exécution

flowchart TD
    Start([Démarrer CheckExceptionTask]) --> ReadCtx[📋 Lire AndroMateContext\ngetLastExceptionDto]

    ReadCtx --> Evaluate{lastTaskHasError ?}

    Evaluate -->|true| SetTrue[conditionResult = true\nException détectée]
    Evaluate -->|false| SetFalse[conditionResult = false\nAucune exception]

    SetTrue --> UpdateVars[💾 Mise à jour des variables de sortie\nsi déclarées dans le contexte :\ncode_output\ndescription_output\ntask_id_output]
    SetFalse --> ReturnFalse([↪ Branche FALSE\nLe workflow continue normalement])

    UpdateVars --> ReturnTrue([↪ Branche TRUE\nLe workflow va vers le gestionnaire d'erreur])

    style Start fill:#e3f2fd
    style ReturnTrue fill:#ffcdd2
    style ReturnFalse fill:#c8e6c9
    style Evaluate fill:#fff9c4
    style UpdateVars fill:#fff9c4

Comment ça fonctionne :

  1. Lire le contexte : Récupère le dernier DTO d'exception depuis l'AndroMateContext
  2. Évaluer : Appelle lastTaskHasError() — retourne true si la tâche précédente a échoué, false sinon
  3. Mettre à jour les variables (uniquement si true) : Si des noms de variables de sortie sont fournis et déclarés dans Start, écrit le code d'erreur, la description et l'ID de la tâche en échec
  4. Router : Le moteur de graphe lit le résultat booléen et suit le lien "true" ou "false"

Détails des paramètres de sortie

1. Variable de sortie : code_output

Stocke le code d'erreur de l'exception levée par la tâche précédente.

Exemple

"code_output": "$code_erreur"

Détails

  • Renseignée uniquement quand le résultat de la condition est true (la tâche précédente a échoué).
  • La variable doit avoir été déclarée dans le nœud Start.

2. Variable de sortie : description_output

Stocke la description lisible de l'exception.

Exemple

"description_output": "$desc_erreur"

3. Variable de sortie : task_id_output

Stocke l'ID de la tâche qui a levé l'exception.

Exemple

"task_id_output": "$id_tache_echouee"

Détails

  • Utile pour identifier quelle tâche a échoué lorsque plusieurs tâches précèdent cette vérification.

Exemple JSON complet

{
  "AndromateException": [
    {
      "id": "2",
      "title": "Exception ?",
      "code_output": "$code_erreur",
      "description_output": "$desc_erreur",
      "task_id_output": "$id_tache_echouee"
    }
  ]
}