ابنِ الـ Workflows
التكرار (Looping) في n8n
يفيد التكرار عندما تريد معالجة عدة عناصر أو تنفيذ إجراء بشكل متكرر، مثل إرسال رسالة إلى كل جهة اتصال في دفتر العناوين. تتولى n8n هذه المعالجة المتكررة تلقائيًا، أي أنك لا تحتاج إلى بناء حلقات تكرار (loops) صراحةً في سير العمل. لكن هناك بعض النودات لا ينطبق عليها ذلك.
التكرار جزء من منطق التدفق في n8n، إلى جانب تقسيم تدفقات البيانات ودمجها، والانتظار بين التنفيذات.
استخدام التكرار في n8n
تستقبل نودات n8n أي عدد من العناصر كمدخلات، وتعالج هذه العناصر، وتُخرج النتائج. يمكنك اعتبار كل عنصر نقطة بيانات واحدة، أو صفًا واحدًا في جدول المخرجات الخاص بالنود.

تعمل النودات عادةً مرة واحدة لكل عنصر. على سبيل المثال، إذا أردت إرسال اسم العملاء وملاحظاتهم من نود Customer Datastore كرسالة على Slack، فستتبع الخطوات الآتية:
- اربط نود Slack بنود Customer Datastore.
- اضبط المعاملات (parameters).
- نفّذ النود.
ستتلقى خمس رسائل: واحدة لكل عنصر.
بهذه الطريقة يمكنك معالجة عدة عناصر دون الحاجة إلى ربط النودات صراحةً في حلقة تكرار.
تنفيذ النودات مرة واحدة
في الحالات التي لا تريد فيها أن يعالج النود كل العناصر المستلَمة، مثل إرسال رسالة Slack إلى أول عميل فقط، يمكنك ذلك بتفعيل المعامل Execute Once في تبويب Settings الخاص بالنود. يفيد هذا الإعداد عندما تحتوي البيانات الواردة على عدة عناصر وتريد معالجة العنصر الأول فقط.
إنشاء حلقات التكرار
تتولى n8n عادةً التكرار على جميع العناصر الواردة. لكن هناك سيناريوهات معينة يجب فيها إنشاء حلقة تكرار للمرور على كل العناصر. راجع استثناءات النودات للاطلاع على قائمة النودات التي لا تكرّر تلقائيًا على كل العناصر الواردة.
التكرار حتى يتحقق شرط
لإنشاء حلقة تكرار في سير عمل n8n، اربط مخرج نود بمدخل نود سابق. وأضف نود IF لفحص وقت إيقاف الحلقة.
إليك مثالًا لسير عمل ينفّذ حلقة تكرار باستخدام نود IF:

التكرار حتى تُعالَج جميع العناصر
استخدم نود Loop Over Items عندما تريد التكرار حتى تُعالَج جميع العناصر. ولمعالجة كل عنصر على حدة، اضبط Batch Size على 1.
يمكنك تقسيم البيانات إلى مجموعات (batches) ومعالجة هذه المجموعات. ويفيد هذا الأسلوب في تجنّب حدود معدل الطلبات في الـ APIs (rate limits) عند معالجة بيانات واردة كبيرة، أو عندما تريد معالجة مجموعة محددة من العناصر المُرجعة. اجمع بين تقسيم المجموعات ونود Wait بين كل مجموعة وأخرى لإبطاء المعالجة أكثر.
يتوقف نود Loop Over Items عن العمل بعد تقسيم جميع العناصر الواردة إلى مجموعات وتمريرها إلى النود التالي في سير العمل، لذلك لا حاجة إلى إضافة نود IF لإيقاف الحلقة.
استثناءات النودات
النودات والعمليات التي تحتاج فيها إلى تصميم حلقة تكرار داخل سير العمل:
- CrateDB يعمل مرة واحدة في عمليتي
insertوupdate. - نود Code في وضع Run Once for All Items: يعالج جميع العناصر بناءً على مقطع الكود المُدخَل.
- نود Execute Workflow في وضع Run Once for All Items.
- HTTP Request: عليك التعامل مع تقسيم النتائج على صفحات (pagination) بنفسك. فإذا كان استدعاء الـ API يُرجع نتائج مقسّمة على صفحات، فعليك إنشاء حلقة تكرار لجلب صفحة واحدة في كل مرة.
- Microsoft SQL يعمل مرة واحدة في عمليات
insertوupdateوdelete. - MongoDB يعمل مرة واحدة في عمليتي
insertوupdate. - QuestDB يعمل مرة واحدة في عملية
insert. - Redis:
- معلومة: تعمل هذه العملية مرة واحدة فقط، بغض النظر عن عدد العناصر في البيانات الواردة.
- RSS Read يعمل مرة واحدة للرابط (URL) المطلوب.
- TimescaleDB يعمل مرة واحدة في عمليتي
insertوupdate.
مصادر ذات صلة
حقوق الطبع والنشر © n8n. جميع الحقوق محفوظة لـ n8n. مترجم عن المحتوى الأصلي.