متى تستخدم المكرّر
| السيناريو | مثال |
|---|---|
| معالجة نتائج البحث | إرسال بريد إلكتروني إلى كل شخص تم العثور عليه |
| التعامل مع مصفوفات ربط الويب | إنشاء سجلات لكل عنصر بالتسلسل |
| التحديثات الدفعيّة | تحديث عدة سجلات بقيم محسوبة |
| إشعارات | تنبيه عدة أشخاص بخصوص حدثٍ ما |
فهم المكرّر
يتوقع المكرّر إدخالاً عبارة عن مصفوفة. ثم يقوم بما يلي:- يأخذ أول عنصر من المصفوفة
- يشغّل جميع الإجراءات داخل المكرّر باستخدام ذلك العنصر
- ينتقل إلى العنصر التالي
- يكرّر حتى تتم معالجة جميع العناصر
الإعداد الأساسي
مثال: إرسال بريد إلكتروني للجميع ضمن نتائج البحث
الهدف: العثور على جميع جهات الاتصال في شركة محددة وإرسال بريد إلكتروني مخصص لكلٍ منهم.الخطوة 1: البحث عن سجلات
- أضف إجراء Search Records
- الكائن: People
- عامل التصفية: Company يساوي “Acme Inc”
- يُرجِع هذا مصفوفة من الأشخاص
الخطوة 2: التحقق من وجود نتائج
- أضف إجراء Filter
- الشرط:
{{searchRecords.length}}أكبر من 0 - يمنع هذا أخطاء المكرّر عند كون النتائج فارغة
الخطوة 3: إضافة Iterator
- أضف إجراء Iterator
- مدخل المصفوفة: اختر
{{searchRecords}} - هذا ينشئ حلقة تكرار
الخطوة 4: إضافة إجراءات داخل المكرّر
الإجراءات الموضوعة بعد Iterator تُشغَّل لكل عنصر:- أضف إجراء Send Email (داخل المكرّر)
- إلى:
{{iterator.currentItem.email}} - الموضوع: مرحباً
{{iterator.currentItem.firstName}}! - المتن: رسالة مخصّصة باستخدام حقول العنصر الحالي
النتيجة
إذا أعاد Search Records 5 أشخاص، فسيقوم المكرّر بما يلي:- يرسل بريداً إلكترونياً إلى الشخص 1
- يرسل بريداً إلكترونياً إلى الشخص 2
- … يستمر لكل الأشخاص الخمسة
الوصول إلى بيانات العنصر الحالي
داخل المكرّر، استخدم{{iterator.currentItem}} للوصول إلى السجل الحالي:
| المتغيّر | الوصف |
|---|---|
{{iterator.currentItem}} | كائن السجل الحالي بالكامل |
{{iterator.currentItem.id}} | معرّف السجل |
{{iterator.currentItem.email}} | حقل البريد الإلكتروني |
{{iterator.currentItem.company.name}} | اسم الشركة المرتبطة |
{{iterator.index}} | الموضع الحالي في المصفوفة (بدءاً من 0) |
أنماط شائعة
تحديث عدة سجلات
الهدف: وضع علامة “متأخر” على جميع المهام المتأخرة عن موعدهاإنشاء سجلات من مصفوفة
الهدف: يتلقى الويبهوك طلباً يتضمن عدة عناصر، وإنشاء سجل لكل عنصرمعالجة مشروطة داخل الحلقة
الهدف: إرسال بريد إلكتروني فقط لجهات الاتصال ذات العناوين الصالحةاستكشاف الأخطاء وإصلاحها
”المكرّر يتوقع مصفوفة”
السبب: مرّرت سجلاً مفرداً بدلاً من مصفوفة. الإصلاح: تأكّد من أنك تمرّر ناتج Search Records أو حقلاً من نوع مصفوفة، وليس سجلاً مفرداً.المكرّر لا يعمل
السبب: المصفوفة فارغة. الإصلاح: أضف عامل تصفية قبل Iterator للتحقق من طول المصفوفة:الإجراءات تُشغَّل مرات كثيرة جداً
السبب: أعاد Search Records سجلات أكثر مما هو متوقّع. الإصلاح:- أضف عوامل تصفية أكثر تحديداً إلى Search Records
- عيّن حداً في Search Records (بحد أقصى 200)
- أضف عامل تصفية داخل المكرّر لشروط إضافية
اعتبارات الأداء
- استخدام الأرصدة: كل دورة تستهلك أرصدة لإجراءاتها
- الوقت: تستغرق المصفوفات الكبيرة وقتاً أطول للمعالجة
- القيود: فكّر في تنفيذ العمليات الكبيرة جداً على دفعات
- قيود المعدّل: قد تصل استدعاءات واجهات برمجة التطبيقات الخارجية إلى حدود المعدّل مع كثرة التكرارات
أفضل الممارسات
- تحقق دائماً من طول المصفوفة قبل Iterator لتجنّب الأخطاء
- أضف عوامل تصفية داخل الحلقات عندما لا تحتاج جميع العناصر إلى معالجة
- أعد تسمية خطوة Iterator لوصف ما تقوم بالتكرار عليه
- اختبر باستخدام مصفوفات صغيرة قبل معالجة مجموعات بيانات كبيرة
- راقب تشغيلات سير العمل لضمان اكتمال التكرارات كما هو متوقّع