> 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-read-global.md).

# Data Read Global

Ce bloc de fonction lit une valeur stockée dans le stockage de données global de la scène du projet en cours. Utilisez-le lorsque vous devez récupérer des données enregistrées ailleurs et les partager entre différentes parties de votre scénario.

## 📥 Entrées

Ce bloc de fonction ne possède aucune prise d'entrée.

## 📤 Sorties

* `Generic` — À l'exécution, cette sortie fournit la valeur associée à la clé globale demandée. Si la clé est introuvable, un avertissement est émis et une valeur de remplacement peut être renvoyée (voir Résolution des problèmes).

## 🕹️ Contrôles

* `Data Key` — Saisissez le nom exact de la clé de données globale que vous souhaitez lire.

## 🎯 Fonctionnalités

* Lecture depuis un stockage global accessible par d'autres blocs et scènes.
* Complétion automatique (`autocomplete`) pour les clés globales existantes afin de réduire les erreurs de frappe.
* Émet une seule sortie `Generic` pouvant contenir n'importe quel type de donnée pris en charge.

## 📊 Évaluation

Lorsque le scénario s'exécute, le bloc recherche la `Data Key` fournie dans le stockage global et renvoie la valeur stockée sur la sortie `Generic`. Si la clé est absente, un avertissement est généré et une valeur substitutive est retournée.

## 📝 Instructions d'utilisation

1. Indiquez exactement le nom de la clé dans le contrôle `Data Key`.
2. Placez ce bloc à l'endroit du scénario où vous devez consommer la donnée globale.
3. Utilisez la sortie `Generic` comme entrée du bloc qui a besoin de la donnée.

## 💡 Conseils et astuces

* Pour enregistrer des valeurs à récupérer plus tard, utilisez le bloc `Data Write Global` en combinaison avec ce bloc.
* Si vous avez besoin d'un stockage temporaire ou local à une boucle, préférez `Data Read Local` et `Data Write Local` pour un flux de données plus isolé.
* Combinez avec `Is None` ou `Replace None` lorsque la clé peut être manquante, afin de fournir des valeurs par défaut.
* Utilisez `Data Memory` si vous souhaitez figer une valeur en mémoire jusqu'à mise à jour explicite.
* Pour déboguer, dirigez la sortie vers `Debug Input` pour inspecter les valeurs récupérées dans le journal.
* Pour exporter les valeurs récupérées de façon structurée, associez à `Data to JSON` ou `CSV Export`.

## 🛠️ Résolution des problèmes

* `No value returned` — Vérifiez que la `Data Key` correspond exactement à la clé utilisée lors de l'écriture des données. Les fautes de frappe sont la cause la plus fréquente.
* `Key not found` — Si un avertissement indique une clé manquante, assurez-vous que le bloc qui a écrit la donnée s'est exécuté plus tôt dans le scénario. Envisagez d'utiliser `Data Write Global` pour créer la clé avant la lecture.
* `Unexpected data type` — Si les blocs consommateurs attendent un type spécifique, validez la valeur récupérée avec `Data Type Converter` ou gérez les types manquants/incorrects avec `Replace None`.

## ✅ Bonnes pratiques

* Utilisez des noms de clés clairs et descriptifs pour éviter les collisions (par exemple, préfixez par le nom de la scène ou le sous-système).
* Dans les boucles ou flux parallèles, favorisez le stockage local lorsque c'est possible pour éviter les conditions de concurrence ; n'utilisez le stockage global que lorsque le partage inter-scope est volontaire.
* Protégez les lectures avec des vérifications comme `Is None` pour rendre vos flux robustes face aux données manquantes.
