> 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/flow-control/debatch.md).

# Debatch

هذا البلوك يقوم بإيقاف معالجة الدُفعات (batch) للمتغير الحالي ويفكك (demultiplex / demux) مدخلًا من نوع قائمة/دفعة إلى مخارج منفصلة، بحيث تستقبل البلوكات التالية عناصر فردية بدلًا من مجموعة.

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

`Batch`\
تقبل هذه المقبس قائمة أو دفعة من القيم (مثل: قائمة صور، أرقام، أشكال أو عناصر عامة). يتوقع البلوك أن يتم توصيل الدفعة هنا.

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

`Output 1`\
`Output 2`

توفر هذه المخارج العناصر الفردية المستخرجة من الدفعة الواردة بترتيبها التسلسلي. إذا كانت الدفعة تحتوي عناصر أقل من عدد المخرجات المتاح، فستبقى المخرجات المتبقية بالقيم الافتراضية/الفارغة. وإذا كانت الدفعة أكبر من عدد المخرجات، فسيتم إرسال العناصر الأولى إلى المخرجات بحسب الترتيب.

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

هذا البلوك لا يحتوي على عناصر تحكم تفاعلية أو أدوات واجهة للمستخدم.

## ⚙️ آلية التشغيل <a href="#running-mechanism" id="running-mechanism"></a>

* عندما يتم توصيل دفعة صالحة (قائمة) إلى مدخل `Batch`، يقوم البلوك بتقسيم الدفعة وإخراج العناصر عبر مآخذ الخرج بالترتيب.
* إذا كان المدخل مفقودًا أو غير صالح، سيعرض البلوك حالة خطأ/غير صالحة في واجهة المستخدم ويوفر مخارج افتراضية للدلالة على عدم وجود بيانات صالحة.
* استخدم هذا البلوك عندما تحتاج إلى تحويل مجموعة من العناصر المجمعة إلى تدفقات فردية حتى تتمكن البلوكات الأخرى من معالجة كل عنصر بشكل مستقل.

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

* فصل بسيط لبيانات الدُفعة/القائمة إلى مخرجات منفصلة.
* يعمل مع أي نوع بيانات عام (صور، أرقام، أشكال، إلخ).
* سلوك آمن للرجوع إلى قيمة افتراضية عندما لا يكون المدخل متصلاً أو غير صالح.

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

1. قدّم دفعة أو قائمة عناصر إلى مدخل `Batch`.
2. وصل البلوكات التالية إلى `Output 1` و/أو `Output 2` لتستقبل العناصر الفردية.
3. إذا كنت تتوقع أحجام دفعات متغيرة، أضف بلوكات منطقية أو فحوصات لاحقة للتعامل بسلاسة مع العناصر المفقودة أو الزائدة.

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

* اجمعه مع `Batch Processing` للتبديل بين المعالجة على شكل دفعات والمعالجة عنصرًا عنصرًا: أنتج دفعة باستخدام `Batch Processing` ثم استخدم هذا البلوك لمعالجة العناصر فرديًا.
* استخدم `Get Batch Size` أو `Get Element` قبل أو بعد هذا البلوك لفحص طول الدفعة أو للوصول إلى عنصر محدد.
* أعد تجميع العناصر المعالجة باستخدام `Batch Concatenation` أو `Mux` عندما تحتاج إلى إنشاء دفعة/قائمة مرة أخرى.
* اقترانه ببلوكات مخصصة للصور: أدخل دفعة صور إلى هذا البلوك، ثم وصل كل مخرج إلى بلوكات مثل `Show Image`, `Image Logger`, `Find Object`, `Object Detection`, أو `Mask Detection` لتحليل أو حفظ كل صورة على حدة.
* عند العمل بقيم اختيارية، استخدم `Exclude Nones` بعد هذا البلوك لإزالة العناصر الفارغة قبل المتابعة.
* إذا احتجت لتقييد أو تحويل تدفق العناصر، استخدمه مع `Get Element` وبلوكات منطقية (مثل: تصفية، عدادات) للتحكم في العناصر التي يتم تمريرها.

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

* لا تتحدث المخرجات: تحقق من أن مدخل `Batch` متصل ويحتوي على قائمة من العناصر.
* مخرجات فارغة غير متوقعة: افحص حجم الدفعة؛ إذا كانت تحتوي على عناصر أقل من عدد المخرجات فبعض المخرجات ستكون فارغة حسب التصميم. استخدم `Get Batch Size` للتأكد من طول الدفعة الواردة.
* أخطاء في البلوكات اللاحقة: تأكد من أن البلوكات التالية تقبل نوع العنصر المحدد (صورة، رقم، شكل، إلخ) الذي ينتجه هذا البلوك. استخدم بلوكات تحويل النوع أو التحقق إذا لزم الأمر.
