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

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

بشكل أكثر تحديدًا، يمكنك تكوين قواعد الشروط لكل حقل من حقول صف البيانات المشغل. لن يتم التشغيل إلا عندما تفي الحقول بالشروط المقابلة.

بعد تشغيل حدث المجموعة، سيتم حقن صف البيانات الذي أنشأ الحدث في خطة التنفيذ كبيانات سياق للمشغل، ليتم استخدامها كمتغيرات بواسطة العقد اللاحقة في سير العمل. ولكن عندما تحتاج العقد اللاحقة إلى استخدام حقول العلاقة لهذه البيانات، يجب عليك أولاً تكوين التحميل المسبق لبيانات العلاقة. سيتم حقن بيانات العلاقة المحددة في السياق مع المشغل ويمكن تحديدها واستخدامها بشكل هرمي.
لا تدعم أحداث المجموعة حاليًا التشغيل بواسطة عمليات البيانات المجمعة. على سبيل المثال، عند إنشاء مقال وإضافة عدة وسوم له في نفس الوقت (بيانات علاقة واحد إلى متعدد)، سيتم تشغيل سير العمل الخاص بإنشاء المقال فقط. أما الوسوم المتعددة التي تم إنشاؤها في نفس الوقت فلن تشغل سير العمل الخاص بإنشاء الوسوم. وعند ربط أو إضافة بيانات علاقة متعدد إلى متعدد، لن يتم تشغيل سير العمل الخاص بالمجموعة الوسيطة أيضًا.
يمكن لعمليات المجموعة التي تتم عبر استدعاءات واجهة برمجة التطبيقات (HTTP API) الخاصة بالتطبيق أن تشغل الأحداث المقابلة أيضًا. ولكن إذا تم إجراء تغييرات البيانات مباشرة من خلال عمليات قاعدة البيانات بدلاً من تطبيق NocoBase، فلا يمكن تشغيل الأحداث المقابلة. على سبيل المثال، لن ترتبط مشغلات قاعدة البيانات الأصلية بسير العمل في التطبيق.
بالإضافة إلى ذلك، يعد استخدام عقدة عملية SQL للتعامل مع قاعدة البيانات مكافئًا للتعامل المباشر مع قاعدة البيانات، ولن يشغل أحداث المجموعة.
تدعم سير العمل مصادر البيانات الخارجية منذ الإصدار 0.20. إذا كنت تستخدم إضافة مصدر بيانات خارجي وتم تكوين حدث المجموعة لمصدر بيانات خارجي، فطالما أن عمليات البيانات على مصدر البيانات هذا تتم داخل التطبيق (مثل إنشاء المستخدمين، التحديثات، وعمليات بيانات سير العمل، وما إلى ذلك)، يمكن تشغيل أحداث المجموعة المقابلة. ولكن إذا تم إجراء تغييرات البيانات من خلال أنظمة أخرى أو مباشرة في قاعدة البيانات الخارجية، فلا يمكن تشغيل أحداث المجموعة.
لنأخذ سيناريو حساب السعر الإجمالي وخصم المخزون بعد إنشاء طلب جديد كمثال.
أولاً، سنقوم بإنشاء مجموعة المنتجات ومجموعة الطلبات، ونموذج البيانات الخاص بهما كالتالي:
| اسم الحقل | نوع الحقل |
|---|---|
| اسم المنتج | نص سطر واحد |
| السعر | رقم |
| المخزون | عدد صحيح |
| اسم الحقل | نوع الحقل |
|---|---|
| رقم الطلب | تسلسل تلقائي |
| منتج الطلب | متعدد إلى واحد (المنتجات) |
| إجمالي الطلب | رقم |
ثم نضيف بعض بيانات المنتجات الأساسية:
| اسم المنتج | السعر | المخزون |
|---|---|---|
| iPhone 14 Pro | 7999 | 10 |
| iPhone 13 Pro | 5999 | 0 |
بعد ذلك، أنشئ سير عمل يعتمد على حدث مجموعة الطلبات:

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

سيتم شرح تكوين العقد بالتفصيل في وثائق أنواع العقد المحددة.
قم بتمكين سير العمل هذا واختبره عن طريق إنشاء طلب جديد عبر الواجهة. بعد تقديم طلب لـ "iPhone 14 Pro"، سيتم تخفيض مخزون المنتج المقابل إلى 9. وإذا تم تقديم طلب لـ "iPhone 13 Pro"، فسيتم حذف الطلب بسبب عدم كفاية المخزون.
