> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/data-logic/referencing/data-write-local.md).

# Data Write Local

Ce bloc de fonction enregistre les données entrantes dans un stockage local du scénario afin que d'autres blocs puissent les lire plus tard. Utilisez-le lorsque vous devez conserver une valeur (image, nombre, texte, liste, etc.) à travers différentes parties de votre scénario ou pour créer de simples boucles de rétroaction. Remarque : ce bloc permet la création de boucles mais ne garantit pas l'ordre d'exécution ni l'intégrité du flux de données — utilisez-le avec précaution.

## 📥 Entrées

`Generic`\
Cette prise accepte n'importe quel type de donnée à stocker.

## 📤 Sorties

Ce bloc de fonction ne produit pas de sorties.

## 🕹️ Contrôles

`Data Key`\
Saisissez une clé (chaîne) pour identifier la valeur que vous stockez. Utilisez des noms clairs et uniques afin que les autres blocs puissent lire la bonne donnée.

* L'autocomplétion aide à choisir des clés locales existantes quand elles sont disponibles.
* Les clés sont des libellés en texte simple ; la correspondance doit être exacte lors de la lecture.

## ⚙️ Fonctionnement

* Lorsque le bloc s'exécute, toute valeur présente sur l'entrée `Generic` est sauvegardée sous la clé choisie `Data Key` dans le stockage local du scénario.
* Si aucune donnée n'est fournie, rien n'est écrit.
* La valeur sauvegardée reste disponible pour d'autres blocs qui lisent la même clé jusqu'à ce qu'elle soit écrasée ou que le scénario se termine.

## 🎯 Fonctionnalités

* Stocke n'importe quel type de donnée (images, nombres, listes, texte).
* Stockage persistant simple à l'intérieur du scénario en cours d'exécution.
* Autocomplétion pour les clés locales existantes afin de réduire les fautes de frappe.
* Conçu pour partager rapidement des résultats intermédiaires et permettre des boucles locales.

## 📝 Utilisation

1. Tapez un nom descriptif dans `Data Key` (par exemple `last_detection` ou `calibration_matrix`).
2. Connectez un bloc producteur à l'entrée `Generic` afin qu'une valeur soit fournie à l'exécution.
3. Utilisez un bloc de lecture correspondant (par exemple `Data Read Local`) ailleurs dans le scénario pour récupérer la valeur avec la même clé.

## 💡 Conseils et astuces

* Utilisez des noms de clés explicites (par exemple inclure le type ou la source : `camera1_frame`, `threshold_value`) pour éviter les écrasements accidentels.
* Pour relire la valeur stockée dans le même scénario, utilisez `Data Read Local`. Pour partager des données entre scénarios, utilisez `Data Write Global` et `Data Read Global`.
* Combinez avec `Data Memory` si vous souhaitez qu'une valeur reste inchangée jusqu'à sa mise à jour explicite.
* Si vous voulez exporter des données structurées plus tard, convertissez-les en un format lisible avec `Data to JSON` puis sauvegardez avec `CSV Export` ou d'autres blocs d'export.
* Utilisez `Debug Input` pour inspecter rapidement ce qui est écrit sous une clé donnée pendant la construction du flux.
* Utilisez `Replace None` avant l'écriture si vous voulez garantir une valeur de secours lorsque l'entrée est vide.

## ✅ Bonnes pratiques

* Évitez de réutiliser la même clé pour des types de données non liés (par ex. image vs nombre) — préférez des clés distinctes.
* Gardez les clés lisibles par l'humain pour faciliter le débogage et la maintenance.
* Lorsque vous construisez des boucles de rétroaction, soyez explicite sur les blocs qui lisent et écrivent la même clé pour réduire l'ambiguïté.

## 🛠️ Dépannage

* Aucune valeur trouvée lors de la lecture : vérifiez l'orthographe exacte de la clé `Data Key` dans les blocs d'écriture et de lecture.
* Type de valeur inattendu : vérifiez quel bloc a écrit en dernier sur la même clé et assurez-vous d'une cohérence des types de données.
* Difficultés pour tracer les données : ajoutez `Debug Input` ou un `Data Read Local` temporaire connecté à une sortie visible pour inspecter les valeurs stockées.
* Conditions de concurrence / problèmes d'ordre : souvenez-vous que ce stockage local ne garantit pas l'ordre d'exécution — concevez le flux en conséquence ou réorganisez-le en utilisant des blocs de contrôle/flux plus explicites.
