Aller au contenu

Start

Résumé

  • Nom interne : Start
  • Catégorie : Contrôle de Workflow
  • Objectif : Marquer le début de l'exécution d'un workflow, initialiser le contexte d'exécution (variables, timeout, politique d'exécution).
  • Type de tâche : Contrôle de Workflow

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 Start est le point d'entrée obligatoire de tout workflow. Il y a toujours exactement un nœud Start par workflow, et la traversée du graphe commence à partir de lui.

Elle est utilisée pour :

  • Définir les variables initiales disponibles tout au long du workflow
  • Configurer le timeout global de l'exécution du workflow
  • Définir la politique d'exécution — si le workflow s'arrête ou continue lorsqu'une tâche lève une exception

La tâche Start elle-même n'effectue aucune action pendant l'exécution (elle retourne immédiatement). Son rôle est purement déclaratif : elle configure le contexte d'exécution (AndroMateContext) que toutes les tâches suivantes vont partager.


Paramètres d'entrée

Paramètre Type Obligatoire Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
Time_out Long Non Durée en millisecondes, 0 = pas de timeout Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 0
exec_policy Integer Non 1 = Continuer sur erreur, 2 = Arrêter sur erreur Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 1 (Continuer)
variables Array Non Liste d'objets variable (voir ci-dessous) Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 []

Structure d'un objet variable

Chaque entrée du tableau variables définit une variable de workflow :

Champ Type Obligatoire Description
variableName String Oui Nom de la variable — doit commencer par $ (ex. $ma_variable)
variableValue String Non Valeur initiale de la variable
is_kpi Boolean Non Si true, cette variable est suivie comme KPI et incluse dans le résultat du job

Paramètres de sortie

La tâche Start ne produit aucune sortie. Elle retourne immédiatement sans valeur de résultat.


Exceptions

La tâche Start ne lève aucune exception.


Diagramme d'exécution

flowchart TD
    A([▶ Début du parsing]) --> B[📋 Lire Time_out\ndéfaut : 0]
    B --> C[📋 Lire exec_policy\n1=CONTINUER / 2=ARRÊTER]
    C --> D[📋 Lire le tableau variables]
    D --> E[🔧 Initialiser AndroMateContext\nvariables · timeout · politique]
    E --> F[📌 Définir le point d'entrée\nstartId = id du nœud]
    F --> G([✅ Contexte prêt\nLe workflow commence])

    style A fill:#e3f2fd
    style G fill:#c8e6c9
    style E fill:#fff9c4
    style F fill:#f3e5f5

Comment ça fonctionne :

  1. Lire Time_out : Charge le timeout global du workflow en millisecondes (0 = sans limite)
  2. Lire exec_policy : Charge la politique d'exécution — CONTINUE_ON_ERROR (défaut) ou STOP_ON_ERROR
  3. Lire variables : Charge la liste des variables avec leurs valeurs initiales et leurs indicateurs KPI
  4. Initialiser le contexte : Crée l'AndroMateContext partagé par toutes les tâches du workflow
  5. Définir le point d'entrée : Enregistre l'id de ce nœud comme point de départ de la traversée du graphe
  6. Le workflow commence : Le moteur démarre l'exécution de la prochaine tâche connectée

Détails des paramètres

1. Paramètre : Time_out

Définit la durée maximale d'exécution autorisée pour l'ensemble du workflow, en millisecondes.

Exemple

"Time_out": 60000

Détails

  • Une valeur de 0 signifie pas de timeout — le workflow s'exécute jusqu'à atteindre un nœud END ou une erreur irrécupérable.
  • Si le workflow dépasse cette durée, l'exécution est interrompue.
  • Recommandé pour les workflows de longue durée afin d'éviter les boucles infinies ou les tâches bloquantes.

2. Paramètre : exec_policy

Définit le comportement du moteur lorsqu'une tâche lève une exception.

Valeur Constante Comportement
1 CONTINUE_ON_ERROR Le workflow continue vers la tâche suivante même si la tâche courante a échoué. L'exception est stockée dans le contexte et peut être inspectée avec la tâche Exception ?.
2 STOP_ON_ERROR Le workflow s'arrête immédiatement lorsqu'une tâche lève une exception.

Exemple

"exec_policy": 2

Détails

  • La valeur par défaut est 1 (CONTINUE_ON_ERROR) lorsque le champ est absent ou défini avec une valeur inconnue.
  • Avec CONTINUE_ON_ERROR, vous pouvez utiliser des nœuds Exception ? après les tâches critiques pour gérer explicitement les erreurs.
  • Avec STOP_ON_ERROR, tout échec de tâche termine immédiatement le workflow — aucun branchement n'est nécessaire.

3. Paramètre : variables

Déclare la liste des variables disponibles pour l'ensemble du workflow. Chaque variable peut être lue ou écrite par n'importe quelle tâche.

Champs d'une variable

Champ Description
variableName Nom unique commençant par $. Utilisé comme placeholder dans les paramètres des tâches (ex. $url, $resultat).
variableValue Valeur initiale sous forme de chaîne. Peut être vide "".
is_kpi Si true, la valeur finale de cette variable est exportée dans le rapport du job comme indicateur de performance (KPI).

Exemple

"variables": [
  {
    "variableName": "$server_url",
    "variableValue": "https://example.com",
    "is_kpi": false
  },
  {
    "variableName": "$ping_result",
    "variableValue": "",
    "is_kpi": true
  }
]

Détails

  • Les variables sont résolues à l'exécution — tout paramètre de tâche contenant $nom_variable est automatiquement remplacé par la valeur courante.
  • Une variable non déclarée dans le nœud Start ne peut pas être utilisée dans les autres tâches.
  • Les variables KPI (is_kpi: true) sont collectées à la fin du job et envoyées au backend comme indicateurs de performance.

Exemple JSON complet

{
  "Start": [
    {
      "id": "0",
      "title": "Initialiser le Workflow",
      "Time_out": 120000,
      "exec_policy": 1,
      "variables": [
        {
          "variableName": "$server_url",
          "variableValue": "https://example.com/api",
          "is_kpi": false
        },
        {
          "variableName": "$http_status",
          "variableValue": "",
          "is_kpi": true
        },
        {
          "variableName": "$code_erreur",
          "variableValue": "",
          "is_kpi": false
        }
      ]
    }
  ]
}