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

# Replace None

هذا الدالة البلوكية توفر آلية احتياطية بسيطة: عندما يكون الإدخال الأساسي مفقودًا (`None`)، يقوم بإخراج قيمة بديلة يحددها المستخدم حتى تظل البلوكات التالية تتلقى بيانات صالحة.

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

* `Input Data` (Generic) — البيانات الأساسية التي سيتم التحقق من وجودها.
* `New Data` (Generic) — بيانات الاستبدال التي تُستخدم عندما يكون الإدخال الأساسي `None`.

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

* `Replaced Data` (Generic) — النتيجة النهائية: إما `Input Data` الأصلية إذا كانت متوفرة، أو `New Data` عندما يكون الإدخال `None`.

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

لا يحتوي هذا البلوك على عناصر تحكم تفاعلية.

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

* حل احتياطي بسيط وموثوق للقيم المفقودة لمنع انقطاع سير العمل.
* داعم لأنواع بيانات عامة — يعمل مع الصور، الأرقام، النصوص، القوائم أو أنواع بيانات أخرى.
* سلوك خفيف وحتمي — يمرر دائمًا إما القيمة الأصلية أو قيمة الاستبدال.

## 📝 طريقة الاستخدام <a href="#usage" id="usage"></a>

1. وصل المصدر الذي تريد حمايته إلى `Input Data`.
2. قدم قيمة افتراضية أو بديلة في `New Data`. يمكن أن تكون هذه قيمة ثابتة، قيمة مخزنة مسبقًا، أو صورة/رقم/نص عنصر نائب.
3. اقرأ النتيجة من `Replaced Data` واستمر في خط المعالجة كالمعتاد.

أمثلة شائعة: تقديم صورة بديلة عندما يفشل تدفق الكاميرا لفترةٍ قصيرة، تزويد رقم افتراضي للعمليات الحسابية، أو إرسال نص احتياطي عندما تكون استجابة الشبكة مفقودة.

## ⚙️ كيفية العمل عند التشغيل <a href="#evaluation" id="evaluation"></a>

عند تشغيل التدفق، يتحقق هذا البلوك مما إذا كانت `Input Data` موجودة. إذا كانت موجودة، يتم تمرير تلك القيمة. إذا كانت `None`، يقوم البلوك بتمرير القيمة الموجودة في `New Data`. إذا كانت كلتاهما `None`، فسيكون الإخراج `None` (لذلك تأكد من توفير بديل مناسب عند الحاجة).

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

* اجمعه مع `Is None` لإنشاء منطق تفريعي (مثال: إطلاق تنبيه فقط عندما يكون الإدخال الأصلي مفقودًا).
* استخدمه مع `Data Memory` لحفظ وإعادة استخدام آخر قيمة صالحة كقيمة `New Data` احتياطية.
* عند التعامل مع تدفقات الصور (مثل من `Camera USB` أو `Stream Reader`)، زوّد `New Data` بصورة ثابتة ممثلة حتى تعرض bloacks مثل `Show Image` دائمًا شيئًا ذا معنى.
* اقترانه مع `Debug Input` أو `Data to JSON` لتسجيل حالات الاستخدام الاحتياطية، مما يساعدك على مراقبة جودة البيانات عبر الزمن.
* لحفظ أحداث الاحتياطي أو النتائج، اربط `Replaced Data` بـ `CSV Export` أو `Image Logger` حسب نوع البيانات.

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

* إذا كنت لا تزال ترى `None` في المخرج، فتأكد من توفير قيمة غير `None` إلى إحداها: `Input Data` أو `New Data`.
* لخطوط أنابيب الصور: إذا ظهر البديل ولكنه غير مناسب، افحص تنسيق `New Data` (قنوات الألوان، الأبعاد) لتتطابق مع متطلبات البلوكات اللاحقة.
