ERP Cloud Systems - مهام انتقال سير العمل
مهام انتقال سير العمل
ملاحظة: ستتم إضافتها في الإصدار 16
مقدمة
تمثل مهام انتقال سير العمل إجراءات يتم تنفيذها أثناء تغيّر الحالات داخل سير العمل. يمكن ربط كل انتقال في سير العمل بمجموعة من مهام الانتقال.

كل مهمة انتقال يمكن أن تحتوي على أنواع متعددة من المهام مثل:
- إجراءات محددة من التطبيق يتم تحديدها في ملف py لكل تطبيق Frappe.
- برمجيات خدمية (Server Scripts)
- نقاط ربط ويب (Webhooks)

أنواع تنفيذ المهام
كل مهمة انتقال يمكن أن تعمل بأحد الوضعين التاليين:
- تزامنية (Synchronous):
- الوضع الافتراضي.
- تُنفذ جميع المهام واحدة تلو الأخرى عند بدء الانتقال.
- في حال فشل أي مهمة، يتم التراجع عن الانتقال بالكامل.
- غير تزامنية (Asynchronous):
- يمكن تفعيلها عبر تحديد خيار “Asynchronous”.
- تُنفذ بعد اكتمال الانتقال، ولا تؤثر على نتيجة الحالة النهائية.
- تُشغّل كعملية مستقلة في الخلفية.
الإجراءات المعرفة من التطبيق
يتم تعريفها في كل تطبيق Frappe باستخدام الـ hook المسمى workflow_methods.
أي مسار دالة محدد عبر workflow_methods يجب أن يقبل المعامل التالي:
doc: Document
مثال على مهمة معرفة من التطبيق:
# hooks.py
workflow_methods = [{"name": "Create a customer", "method":
"myapp.shop.doctype.kirana.create_customer"}]
# myapp/shop/doctype/kirana.py
def create_customer(doc):
customer = frappe.new_doc("Customer")
customer.customer_name = "Customer " + doc.name
customer.customer_type = "Individual"
customer.save()
مهام انتقال سير العمل
تظهر هذه المهام في قائمة "المهام (Tasks)" المنسدلة في حال كانت أي من التطبيقات المثبتة قد أضافتها مسبقًا.

إذا كنت مستخدمًا نهائيًا، فلن تتمكن من إنشاء مهام معرفة من التطبيق بنفسك يمكنك بدلاً من ذلك استخدام البرمجيات الخدمية (Server Scripts) الموضحة أدناه.
البرمجيات الخدمية
تقبل هذه البرمجيات أيضًا الوسيطة doc: Document ويمكن إعدادها من خلال نوع السكربت "Workflow Task".

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

نقاط ربط الويب

يمكن إنشاء Webhook من خلال تعيين حقل Doc Event إلى القيمة workflow_transition.
بعد إنشائه، يجب أيضًا ربطه في مهمة الانتقال ليتم استدعاؤه عند تنفيذ عملية الانتقال.

