logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo
سير العمل
نظرة عامة
بدء سريع

المشغلات

نظرة عامة
أحداث جدول البيانات
المهام المجدولة
حدث ما قبل الإجراء
حدث ما بعد الإجراء
حدث الإجراء المخصص
الموافقة
Webhook

العقدة

نظرة عامة

AI

LLM

التحكم في التدفق

الشرط
تفرع متعدد الشروط
التكرار
المتغيرات
تفرع متوازي
استدعاء سير العمل
مخرجات التدفق
ربط متغيرات JSON
تأخير
إنهاء

حساب

حساب
حساب التاريخ
حساب JSON

عمليات البيانات

إضافة بيانات
تحديث البيانات
استعلام البيانات
حذف البيانات
عمليات SQL

معالجة يدوية

معالجة يدوية
الموافقة
نسخة كربونية

أنواع ممتدة

طلب HTTP
سكريبت JavaScript
إشعار
إرسال بريد إلكتروني
استجابة
رسالة الاستجابة
المتغيرات
سجل التنفيذ
إدارة الإصدارات
خيارات متقدمة

تطوير الإضافات

نظرة عامة
توسيع أنواع المشغلات
توسيع أنواع العقد
مرجع API
Previous Pageتفرع متعدد الشروط
Next Pageالمتغيرات
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#حلقة التكرار

This feature is provided by the plugin «سير العمل: عقدة التكرار»

#مقدمة

تُعادل حلقة التكرار في سير العمل البنى البرمجية مثل for وwhile وforEach في لغات البرمجة. يمكنك استخدام عقدة حلقة التكرار عندما تحتاج إلى تكرار عمليات معينة لعدد محدد من المرات، أو لتنفيذها على مجموعة بيانات (مصفوفة).

#التثبيت

هذه إضافة مدمجة، ولا تتطلب التثبيت.

#إنشاء عقدة

في واجهة إعدادات سير العمل، انقر على زر الإضافة ("+") في المسار لإضافة عقدة "حلقة التكرار":

إنشاء عقدة حلقة التكرار

بعد إنشاء عقدة حلقة التكرار، سيتم إنشاء فرع داخل الحلقة. يمكنك إضافة أي عدد من العقد داخل هذا الفرع. يمكن لهذه العقد استخدام المتغيرات من سياق سير العمل، بالإضافة إلى المتغيرات المحلية من سياق حلقة التكرار، مثل كائن البيانات الذي يتم تكراره في كل دورة، أو فهرس عدد التكرارات (يبدأ الفهرس من 0). يقتصر نطاق المتغيرات المحلية على داخل حلقة التكرار. إذا كانت هناك حلقات تكرار متداخلة، يمكنك استخدام المتغيرات المحلية للحلقة المحددة في كل مستوى.

#إعدادات العقدة

20241016135326

#كائن حلقة التكرار

تتعامل حلقة التكرار مع أنواع البيانات المختلفة لكائن حلقة التكرار بطرق مختلفة:

  1. مصفوفة: هذه هي الحالة الأكثر شيوعًا. يمكنك عادةً اختيار متغير من سياق سير العمل، مثل نتائج البيانات المتعددة من عقدة استعلام، أو بيانات العلاقة المتعددة التي تم تحميلها مسبقًا. إذا تم اختيار مصفوفة، فستقوم عقدة حلقة التكرار بالمرور عبر كل عنصر في المصفوفة، وفي كل دورة، سيتم تعيين العنصر الحالي لمتغير محلي في سياق حلقة التكرار.

  2. رقم: عندما يكون المتغير المحدد رقمًا، سيتم استخدامه كعدد للتكرارات. يجب أن تكون قيمة الرقم عددًا صحيحًا موجبًا؛ لن تدخل الأرقام السالبة الحلقة، وسيتم تجاهل الجزء العشري من الرقم. فهرس عدد التكرارات في المتغير المحلي هو أيضًا قيمة كائن حلقة التكرار. تبدأ هذه القيمة من 0. على سبيل المثال، إذا كان رقم كائن حلقة التكرار هو 5، فسيكون الكائن والفهرس في كل دورة على التوالي: 0، 1، 2، 3، 4.

  3. سلسلة نصية: عندما يكون المتغير المحدد سلسلة نصية، سيتم استخدام طولها كعدد للتكرارات، مع معالجة كل حرف في السلسلة النصية حسب الفهرس.

  4. أخرى: تُعامل الأنواع الأخرى من القيم (بما في ذلك أنواع الكائنات) ككائن حلقة تكرار ذي عنصر واحد، وستتكرر مرة واحدة فقط. عادةً لا تتطلب هذه الحالة استخدام حلقة تكرار.

بالإضافة إلى اختيار متغير، يمكنك أيضًا إدخال قيم ثابتة مباشرة لأنواع الأرقام والسلاسل النصية. على سبيل المثال، إدخال 5 (نوع رقمي) سيجعل عقدة حلقة التكرار تتكرر 5 مرات. إدخال abc (نوع سلسلة نصية) سيجعل عقدة حلقة التكرار تتكرر 3 مرات، مع معالجة الأحرف a وb وc على التوالي. في أداة اختيار المتغيرات، اختر النوع المطلوب للقيمة الثابتة.

#شرط حلقة التكرار

اعتبارًا من الإصدار v1.4.0-beta، تمت إضافة خيارات متعلقة بشروط حلقة التكرار. يمكنك تمكين شروط حلقة التكرار في إعدادات العقدة.

الشرط

على غرار إعدادات الشرط في عقدة الشرط، يمكنك دمج الإعدادات واستخدام المتغيرات من حلقة التكرار الحالية، مثل كائن حلقة التكرار، وفهرس حلقة التكرار، وما إلى ذلك.

توقيت التحقق

على غرار بنيتي while وdo/while في لغات البرمجة، يمكنك اختيار تقييم الشرط المُعد إما قبل بدء كل دورة من الحلقة أو بعد انتهائها. يسمح تقييم الشرط اللاحق بتنفيذ العقد الأخرى داخل جسم الحلقة لدورة واحدة قبل التحقق من الشرط.

عند عدم استيفاء الشرط

على غرار عبارتي break وcontinue في لغات البرمجة، يمكنك اختيار الخروج من الحلقة، أو المتابعة إلى الدورة التالية.

#معالجة الأخطاء في العقد الداخلية لحلقة التكرار

اعتبارًا من الإصدار v1.4.0-beta، عند فشل تنفيذ عقدة داخل حلقة التكرار (بسبب عدم استيفاء الشروط، أو حدوث أخطاء، وما إلى ذلك)، يمكنك تحديد المسار اللاحق من خلال الإعدادات. يتم دعم ثلاث طرق للمعالجة:

  • الخروج من سير العمل (مثل throw في البرمجة)
  • الخروج من حلقة التكرار ومتابعة سير العمل (مثل break في البرمجة)
  • المتابعة إلى كائن حلقة التكرار التالي (مثل continue في البرمجة)

الخيار الافتراضي هو "الخروج من سير العمل"، ويمكن تغييره حسب الحاجة.

#مثال

على سبيل المثال، عند تقديم طلب شراء، تحتاج إلى التحقق من المخزون لكل منتج في الطلب. إذا كان المخزون كافيًا، يتم خصم المخزون؛ وإلا، يتم تحديث المنتج في تفاصيل الطلب على أنه غير صالح.

  1. أنشئ ثلاث مجموعات: المنتجات <-(1:m)-- تفاصيل الطلب --(m:1)-> الطلبات. نموذج البيانات كالتالي:

    مجموعة الطلبات

    اسم الحقلنوع الحقل
    تفاصيل الطلبعلاقة واحد لمتعدد (تفاصيل الطلب)
    إجمالي سعر الطلبرقم

    مجموعة تفاصيل الطلب

    اسم الحقلنوع الحقل
    المنتجعلاقة متعدد لواحد (المنتج)
    الكميةرقم

    مجموعة المنتجات

    اسم الحقلنوع الحقل
    اسم المنتجنص سطر واحد
    السعررقم
    المخزونعدد صحيح
  2. أنشئ سير عمل. بالنسبة للمشغل، اختر "حدث مجموعة البيانات"، واختر مجموعة "الطلبات" ليتم تشغيله "عند إضافة سجل جديد". تحتاج أيضًا إلى تهيئة تحميل مسبق لبيانات العلاقة لمجموعة "تفاصيل الطلب" ومجموعة "المنتجات" ضمن التفاصيل:

    عقدة حلقة التكرار_مثال_تهيئة المشغل

  3. أنشئ عقدة حلقة تكرار واختر كائن حلقة التكرار ليكون "بيانات المشغل / تفاصيل الطلب"، مما يعني أنها ستعالج كل سجل في مجموعة تفاصيل الطلب:

    عقدة حلقة التكرار_مثال_تهيئة عقدة حلقة التكرار

  4. داخل عقدة حلقة التكرار، أنشئ عقدة "شرط" للتحقق مما إذا كان مخزون المنتج كافيًا:

    عقدة حلقة التكرار_مثال_تهيئة عقدة الشرط

  5. إذا كان كافيًا، ففي فرع "نعم"، أنشئ "عقدة حساب" وعقدة "تحديث سجل" لتحديث سجل المنتج المقابل بالمخزون المخصوم المحسوب:

    عقدة حلقة التكرار_مثال_تهيئة عقدة الحساب

    عقدة حلقة التكرار_مثال_تهيئة عقدة تحديث المخزون

  6. وإلا، ففي فرع "لا"، أنشئ عقدة "تحديث سجل" لتحديث حالة تفاصيل الطلب إلى "غير صالح":

    عقدة حلقة التكرار_مثال_تهيئة عقدة تحديث تفاصيل الطلب

الهيكل العام لسير العمل هو كما يلي:

عقدة حلقة التكرار_مثال_هيكل سير العمل

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