Aller au contenu

Set Variable

Résumé

  • Nom interne : SetAndromateVariable
  • Catégorie : Workflow Runtime
  • Objectif : Assigner une nouvelle valeur à une variable de workflow existante à l'exécution.
  • Type de tâche : Normale

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 Set Variable met à jour la valeur d'une variable de workflow pendant l'exécution. Elle permet la modification dynamique de toute variable déclarée dans le nœud Start.

Elle est utilisée pour :

  • Réinitialiser une variable à une valeur fixe ou calculée
  • Copier la valeur d'une variable dans une autre
  • Mettre à jour un compteur ou accumulateur entre des itérations
  • Remplacer une valeur initiale selon le résultat d'une condition

La tâche gère :

  • la validation que la cible est une variable correctement déclarée,
  • la résolution de la nouvelle valeur dans le contexte d'exécution courant (les références $variable sont remplacées par leurs valeurs actuelles),
  • la mise à jour de la variable dans l'AndroMateContext partagé.

Paramètres d'entrée

Paramètre Type Obligatoire Valeurs possibles Compatibilité Android Compatibilité AndroMate Défaut
variable_input String Oui Nom d'une variable déclarée commençant par $ Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0
variable_value String Oui Toute chaîne de caractères, peut contenir des références $variable Android 13 (API 33) → Android 16 (API 36) 1.1.0 → 1.1.0 ""

Paramètres de sortie

La tâche Set Variable ne produit aucune sortie. Elle modifie directement le contexte d'exécution et retourne immédiatement.


Exceptions

Code Nom de l'exception Description
WORKFLOW-RUNTIME-001 Variable d'entrée vide variable_input est vide ou null. Un nom de variable valide commençant par $ est requis.
WORKFLOW-RUNTIME-002 Entrée non-variable variable_input ne commence pas par $. Seules les variables déclarées peuvent être ciblées.
WORKFLOW-RUNTIME-002 Variable non déclarée dans le runtime La variable référencée dans variable_input n'a pas été déclarée dans le nœud Start. Déclarez-la d'abord.

Diagramme d'exécution

flowchart TD
    Start([Démarrer SetVariableTask]) --> ReadInput[📋 Lire variable_input\nsans résolution de variable]

    ReadInput --> CheckEmpty{variable_input\nvide ou null ?}

    CheckEmpty -->|Oui| E1[❌ WORKFLOW-RUNTIME-001\nSET_EMPTY_VARIABLE]
    CheckEmpty -->|Non| CheckIsVar{variable_input\ncommence par $ ?}

    CheckIsVar -->|Non| E2[❌ WORKFLOW-RUNTIME-002\nSET_NON_VARIABLE]
    CheckIsVar -->|Oui| CheckDeclared{variable déclarée\ndans le contexte runtime ?}

    CheckDeclared -->|Non| E3[❌ WORKFLOW-RUNTIME-002\nNO_VARIABLE_DEFINED_IN_RUNTIME]
    CheckDeclared -->|Oui| ResolveValue[🔄 Résoudre variable_value\nremplacer les $refs par leurs valeurs]

    ResolveValue --> SetValue[💾 androMateContext.setVariableValue\nvariable_input ← valeur résolue]

    SetValue --> Success([✅ VoidResult\nVariable mise à jour])

    E1 --> Error([❌ Exception])
    E2 --> Error
    E3 --> Error

    style Start fill:#e3f2fd
    style Success fill:#c8e6c9
    style Error fill:#ffcdd2
    style ResolveValue fill:#fff9c4
    style SetValue fill:#c8e6c9
    style E1 fill:#ffcdd2
    style E2 fill:#ffcdd2
    style E3 fill:#ffcdd2

Comment ça fonctionne :

  1. Lire variable_input : Charge le nom de la variable cible comme chaîne littérale — aucune résolution de variable n'est appliquée à ce stade
  2. Vérification vide : Lève WORKFLOW-RUNTIME-001 si l'entrée est vide ou null
  3. Vérification du format variable : Lève WORKFLOW-RUNTIME-002 si l'entrée ne commence pas par $
  4. Vérification de déclaration : Lève WORKFLOW-RUNTIME-002 si la variable n'a pas été déclarée dans le nœud Start
  5. Résoudre variable_value : Évalue la nouvelle valeur — toute référence $variable à l'intérieur est remplacée par sa valeur runtime courante
  6. Mise à jour du contexte : Écrit la valeur résolue dans l'AndroMateContext pour la variable cible
  7. Résultat : Retourne VoidResult — la variable est désormais mise à jour pour toutes les tâches suivantes

Légende : - 🔵 Bleu : Début - 🟢 Vert : Succès - 🔴 Rouge : Exceptions - 🟡 Jaune : Résolution - 💾 Vert : Mise à jour du contexte


Détails des paramètres d'entrée

1. Paramètre d'entrée : variable_input

Le nom de la variable à mettre à jour. Doit être une variable déclarée dans le nœud Start.

Exemple

"variable_input": "$mon_compteur"

Détails

  • Doit commencer par $.
  • La valeur est lue telle quelle — aucune résolution de variable n'est appliquée à ce champ. Vous devez écrire le nom de variable littéral (ex. $resultat), pas une référence à une autre variable qui contiendrait un nom.
  • La variable doit avoir été déclarée dans le tableau variables du nœud Start.

2. Paramètre d'entrée : variable_value

La nouvelle valeur à assigner à la variable. Peut être une chaîne statique ou contenir des références à d'autres $variables.

Exemple — valeur statique

"variable_value": "bonjour monde"

Exemple — copie depuis une autre variable

"variable_value": "$cmd_output"

Exemple — mixte

"variable_value": "statut: $http_status sur $server_url"

Détails

  • Les références de variables ($nom) dans ce champ sont résolues à l'exécution avant l'assignation.
  • La valeur résolue est toujours stockée sous forme de chaîne dans le contexte.

Exemple JSON complet

{
  "SetAndromateVariable": [
    {
      "id": "3",
      "title": "Set Variable",
      "variable_input": "$mon_resultat",
      "variable_value": "$cmd_output"
    }
  ]
}