> 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/german/funktionsblocke/blocks-reference/data-logic/referencing/data-read-global.md).

# Data Read Global

Dieser Funktionsblock liest einen Wert aus dem globalen Datenspeicher der aktuellen Projektszene. Verwenden Sie ihn, wenn Sie Daten abrufen möchten, die woanders gespeichert wurden, und diese in verschiedenen Teilen Ihres Szenarios geteilt werden sollen.

## 📥 Eingänge

Dieser Funktionsblock hat keine Eingangsanschlüsse.

## 📤 Ausgänge

`Generic`\
Beim Ausführen liefert diese Ausgabe den Wert, der dem angeforderten globalen Schlüssel zugeordnet ist. Wenn der Schlüssel nicht gefunden wird, erscheint eine Warnung oder ein Fallback-Wert (siehe Fehlersuche).

## 🕹️ Steuerungen

`Data Key`\
Geben Sie den Namen des globalen Datenschlüssels ein, den Sie lesen möchten.

## 🎯 Funktionen

* Liest aus dem globalen Speicher, der von anderen Blöcken und Szenen zugänglich ist.
* Autocomplete-Unterstützung für bestehende globale Schlüssel zur Reduzierung von Tippfehlern.
* Gibt eine einzelne `Generic`-Ausgabe aus, die jeden unterstützten Datentyp enthalten kann.

## 📊 Bewertung

Wenn das Szenario ausgeführt wird, sucht der Block den angegebenen `Data Key` im globalen Speicher und gibt den gespeicherten Wert über die `Generic`-Ausgabe zurück. Ist der Schlüssel nicht vorhanden, wird eine Warnung ausgegeben und ein Platzhalterwert zurückgegeben.

## 📝 Nutzungshinweise

1. Geben Sie den exakten Schlüsselnamen im Steuerfeld `Data Key` an.
2. Platzieren Sie diesen Block dort, wo Sie global gespeicherte Daten benötigen.
3. Verwenden Sie die `Generic`-Ausgabe als Eingabe für den Block, der die Daten benötigt.

## 💡 Tipps und Tricks

* Um Werte für spätere Abrufe zu speichern, verwenden Sie zusammen mit diesem Block den `Data Write Global`-Block.
* Wenn Sie temporären oder loop-lokalen Speicher benötigen, verwenden Sie stattdessen `Data Read Local` und `Data Write Local` für eine isoliertere Datenflusssteuerung.
* Kombinieren Sie mit `Is None` oder `Replace None`, wenn der Schlüssel fehlen könnte, damit Ihr Szenario Standardwerte bereitstellen kann.
* Verwenden Sie `Data Memory`, wenn Sie einen Wert im Speicher einfrieren möchten, bis er explizit aktualisiert wird.
* Zum Debuggen leiten Sie die Ausgabe in `Debug Input`, um die abgerufenen Werte im Log zu prüfen.
* Für den Export strukturierter Daten kombinieren Sie mit `Data to JSON` oder `CSV Export`.

## 🛠️ Fehlersuche

* `No value returned`\
  Prüfen Sie, ob der `Data Key` exakt mit dem Schlüssel übereinstimmt, der beim Schreiben der Daten verwendet wurde. Tippfehler sind die häufigste Ursache.
* `Key not found`\
  Wenn eine Warnung über einen fehlenden Schlüssel angezeigt wird, stellen Sie sicher, dass der Block, der die Daten geschrieben hat, vorher im Szenario ausgeführt wurde, und erwägen Sie, `Data Write Global` zu verwenden, um den Schlüssel vor dem Lesen zu erstellen.
* `Unexpected data type`\
  Falls die konsumierenden Blöcke einen bestimmten Datentyp erwarten, validieren Sie den abgerufenen Wert mit `Data Type Converter` oder behandeln Sie fehlende/falsche Typen mit `Replace None`.

## ✅ Best Practices

* Verwenden Sie klare, beschreibende Schlüsselnamen, um Kollisionen zu vermeiden (z. B. mit Szenen- oder Subsystem-Präfixen).
* Bei Schleifen oder parallelen Abläufen bevorzugen Sie lokalen Speicher, wo möglich, um Race Conditions zu vermeiden; nutzen Sie globalen Speicher nur, wenn absichtliches bereichsübergreifendes Teilen erforderlich ist.
* Schützen Sie Lesevorgänge mit Prüfungen wie `Is None`, um Ihre Abläufe robust gegen fehlende Daten zu machen.
