> 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/arabic/alblwkat-alwzyfyh/blocks-reference/data-logic/referencing/data-read-global.md).

# Data Read Global

هذه الدالة تقرأ قيمة مخزنة في التخزين العالمي (global data storage) لمشهد المشروع الحالي. استخدمها عندما تحتاج لاسترجاع بيانات تم حفظها في مكان آخر ومشاركتها عبر أجزاء مختلفة من السيناريو الخاص بك.

## 📥 المدخلات <a href="#inputs" id="inputs"></a>

لا يحتوي هذا Function Block على مقابس إدخال.

## 📤 المخرجات <a href="#outputs" id="outputs"></a>

`Generic` عند التقييم، يوفر هذا المخرج القيمة المرتبطة بالمفتاح العالمي المطلوب. إذا لم يتم العثور على المفتاح، سيُنتج تحذيرًا أو قيمة افتراضية (انظر قسم استكشاف الأخطاء وإصلاحها).

## 🕹️ عناصر التحكم <a href="#controls" id="controls"></a>

`Data Key` أدخل اسم مفتاح البيانات العالمي الذي تريد قراءته.

## 🎯 الميزات <a href="#features" id="features"></a>

* القراءة من التخزين العالمي الذي يمكن الوصول إليه من كتل ومشاهد أخرى.
* دعم الإكمال التلقائي للمفاتيح العالمية الموجودة لتقليل أخطاء الكتابة.
* يصدر مخرجًا واحدًا `Generic` يمكن أن يحتوي أي نوع بيانات مدعوم.

## 📊 التقييم <a href="#evaluation" id="evaluation"></a>

عند تشغيل السيناريو، يبحث البلوك عن اسم الـ `Data Key` المقدم في التخزين العالمي ويعيد القيمة المخزنة عبر مخرج `Generic`. إذا كان المفتاح مفقودًا فسيتم إصدار تحذير وإرجاع قيمة نائب (placeholder).

## 📝 تعليمات الاستخدام <a href="#usage" id="usage"></a>

1. أدخل اسم المفتاح بدقة في عنصر التحكم `Data Key`.
2. ضع هذا البلوك في المكان الذي تحتاج فيه لاستهلاك البيانات المخزنة عالميًا.
3. استخدم مخرج `Generic` كمدخل للبلوك الذي يحتاج إلى هذه البيانات.

## 💡 نصائح وحيل <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* لتخزين القيم لاسترجاعها لاحقًا، استخدم البلوك `Data Write Global` مع هذا البلوك.
* إذا احتجت تخزينًا مؤقتًا أو محليًا داخل حلقة، ففكر باستخدام `Data Read Local` و`Data Write Local` لتدفق بيانات أكثر عزلة.
* ادمج مع `Is None` أو `Replace None` عندما قد يكون المفتاح مفقودًا، حتى يوفر السيناريو قيمًا افتراضية.
* استخدم `Data Memory` عندما تريد تجميد قيمة في الذاكرة حتى يتم تحديثها صراحةً.
* لأغراض التصحيح، قم بتوجيه المخرج إلى `Debug Input` لفحص القيم المسترجعة في السجل.
* للتصدير المنظم للقيم المسترجعة، اجمعها مع `Data to JSON` أو `CSV Export`.

## 🛠️ استكشاف الأخطاء وإصلاحها <a href="#troubleshooting" id="troubleshooting"></a>

* `No value returned` تأكد من أن `Data Key` يطابق تمامًا المفتاح المستخدم عند كتابة البيانات. الأخطاء المطبعية هي سبب شائع.
* `Key not found` إذا رأيت تحذيرًا بشأن مفتاح مفقود، تحقق من أن البلوك الذي كتب البيانات قد تم تشغيله سابقًا في السيناريو، وفكر في استخدام `Data Write Global` لإنشاء المفتاح قبل القراءة.
* `Unexpected data type` إذا كانت الكتل المستهلكة تتوقع نوع بيانات محدد، فقم بالتحقق من القيمة المسترجعة باستخدام `Data Type Converter` أو تعامل مع الأنواع المفقودة/الخاطئة باستخدام `Replace None`.

## ✅ ممارسات موصى بها <a href="#best-practices" id="best-practices"></a>

* استخدم أسماء مفاتيح واضحة وواصفة لتجنب التعارضات (مثلاً أضف بادئات للمشهد أو للنظام الفرعي).
* عند تصميم حلقات أو تدفقات متوازية، فضل التخزين المحلي حيثما أمكن لتجنب حالات السباق؛ استخدم التخزين العالمي فقط عندما تحتاج مقصودًا للمشاركة عبر نطاقات متعددة.
* احمِ عمليات القراءة بالتحقق مثل `Is None` لجعل التدفقات أكثر متانة ضد البيانات المفقودة.
