> 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/data-operations/data-memory.md).

# Data Memory

Ce bloc de fonction conserve une valeur en mémoire et la met à jour optionnellement lorsqu'une mise à jour est demandée. Il est utile pour préserver la dernière donnée connue entre les exécutions ou pour geler une valeur jusqu'à ce qu'une mise à jour explicite soit fournie.

## 📥 Inputs <a href="#inputs" id="inputs"></a>

`Generic` Données d'entrée générales à stocker en mémoire. Peut être de n'importe quel type (nombres, texte, image, listes, dictionnaires, etc.).\
`Update Data` Entrée booléenne qui contrôle si les données entrantes doivent remplacer la valeur stockée.

## 📤 Outputs <a href="#outputs" id="outputs"></a>

`Generic` La valeur actuellement stockée. Si elle n'a jamais été mise à jour, cette valeur peut être vide/None.

## 🕹️ Controls <a href="#controls" id="controls"></a>

Ce bloc n'a pas de widgets d'interface supplémentaires. Le comportement est contrôlé par les deux sockets listés ci-dessus.

## 🎯 Features <a href="#features" id="features"></a>

* Mémoire persistante dans le flux : conserve une valeur entre les évaluations et ne change que lorsque `Update Data` est vrai.
* Accepte n'importe quel type de données sur la prise `Generic`.
* Mécanique simple de gel/dégel : régler `Update Data` sur False pour geler la valeur stockée, sur True pour autoriser les mises à jour.

## 📝 Usage Instructions <a href="#usage" id="usage"></a>

1. Alimentez la valeur que vous souhaitez conserver dans l'entrée `Generic`.
2. Basculez `Update Data` sur True lorsque vous voulez que la mémoire accepte la nouvelle entrée.
3. Réglez `Update Data` sur False pour geler la valeur stockée ; le bloc continuera à renvoyer cette valeur jusqu'à ce qu'une mise à jour soit autorisée.

## 📊 Evaluation <a href="#evaluation" id="evaluation"></a>

À chaque évaluation, le bloc vérifie l'entrée `Update Data`. Si elle est True, il stocke l'entrée courante `Generic` et la renvoie en sortie. Si elle est False, il renvoie la valeur précédemment stockée inchangée.

## 💡 Tips and Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Utilisez avec `Is None` pour détecter les entrées manquantes avant d'écrire en mémoire, afin d'éviter les écrasements accidentels par None.
* Associez avec `Replace None` pour fournir des données de secours lorsque l'entrée est vide, puis contrôlez les écritures avec `Update Data`.
* Combinez avec `Data Read Local` / `Data Write Local` ou `Data Read Global` / `Data Write Global` pour un partage plus persistant entre différentes parties de votre flux.
* Utilisez conjointement avec `Debug Input` pour journaliser les valeurs stockées pendant le développement et vérifier quand la mémoire est mise à jour.
* Lors du traitement par lots, coordonnez avec `Batch Processing`, `Get Batch Size` ou `Batch Concatenation` pour déterminer si la mémoire doit stocker des lots entiers ou des éléments individuels.
* Pour des scénarios de journalisation ou d'export, alimentez la sortie du bloc dans `CSV Export`, `Image Logger` ou d'autres blocs d'export afin d'enregistrer les données préservées uniquement lorsqu'une mise à jour confirmée se produit.

## 🛠️ Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

* Si la sortie ne change jamais, assurez-vous que l'entrée `Update Data` est définie sur True lorsque vous attendez une mise à jour.
* Si la valeur stockée devient None de manière inattendue, vérifiez les blocs en amont pour des sorties None et envisagez d'utiliser `Replace None` avant d'écrire en mémoire.
* Si plusieurs zones de votre flux nécessitent la même valeur, préférez les blocs de lecture/écriture local/global pour éviter la duplication et assurer des mises à jour cohérentes.
