مقدمة
اعداد
باستخدام OOERP
أتمتة
حسابات
أصل
شراء
إدارة علاقات العملاء
الموارد البشرية
التجارة الإلكترونية
إدارة القروض
المشاريع
إدارة الجودة
يبيع
مخزون
يدعم
موقع إلكتروني
زراعة
تعليم
الرعاىة الصحية
ضيافة
تصنيع
غير ربحية
التخصيص
اندماج
إقليمي
OneOffice Logo

#بث الأحداث

مقدمة

يتيح تدفق الأحداث إمكانية إجراء اتصالات بين المواقع بين موقعين أو أكثر. يمكنك الاشتراك في أنواع المستندات وبث المستندات بين المواقع المختلفة.

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

للوصول إلى بث الأحداث، انتقل إلى:

الصفحة الرئيسية > التنفيذ التلقائي > تدفق الأحداث

1. المتطلبات الأساسية

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

2. كيفية إعداد بث الأحداث

لنأخذ موقعين لشرح العملية. http://test_site:8000 (موقع المستهلك) وhttp://test_site_producer:8000 (موقع المنتج)

2.1 احصل على مفاتيح المشترك في الحدث من موقع المنتج

  1. على http://test_site_producer:8000 (موقع المنتج)، انتقل إلى قائمة المستخدمين.
  2. افتح مستند المستخدم الذي ستستخدمه كمشترك في الحدث. قم بالتمرير لأسفل إلى القسم المسمى "الوصول إلى واجهة برمجة التطبيقات". في هذا القسم، قم بإنشاء مفاتيح للمستخدم من خلال النقر على زر إنشاء مفاتيح. ستصلك رسالة تحتوي على سر المستخدم، قم بنسخ سر المستخدم واحفظه معك. سيتم أيضًا إنشاء مفتاح API.

2.2 إنشاء مفاتيح لمشترك الحدث على موقع المستهلك

على http://test_site:8000 (موقع المستهلك)، انتقل إلى قائمة المستخدمين واتبع نفس العملية المحددة في الخطوة السابقة.

2.3 قم بإنشاء منتج حدث على موقع المستهلك

  1. يُطلق على الموقع الذي تريد الاشتراك فيه اسم "منتج الأحداث". قم بإنشاء مستند منتج الحدث للموقع الذي ترغب في الحصول على التحديثات منه.
  2. على http://test_site:8000 (موقع المستهلك)، انتقل إلى الصفحة الرئيسية > التنفيذ التلقائي > تدفق الأحداث > منتج الأحداث.
  3. أدخل عنوان URL الخاص بالموقع الذي تريد الاشتراك فيه (في هذه الحالة http://test_site_producer:8000)، في حقل عنوان URL للمنتج.
  4. قم بإضافة كافة أنواع المستندات التي تريد الاشتراك فيها، في جدول أنواع المستندات الخاصة بمنتج الحدث.
  5. إذا كنت تريد الحصول على المستندات التي تم إنشاؤها بنفس الاسم الموجود على موقع Event Producer البعيد، فحدد مربع الاختيار "استخدام نفس الاسم" في الجدول مقابل نوع المستند المطلوب.
  6. قم بتعيين حقل "المشترك في الحدث" للمستخدم الذي سيتم استخدامه لإنشاء المستندات التي تم جلبها من منتج الحدث. يتعين عليك إنشاء نفس المستخدم في كلا الاتجاهين، أي على مستهلك الحدث بالإضافة إلى موقع منتج الحدث قبل إنشاء منتج الحدث.
  7. الصق مفتاح API وسر API الذي قمت بإنشائه في الخطوة الأولى (2.1) في حقلي مفتاح API وسر API على التوالي.
  8. احفظ.
  9. بعد الحفظ، يتم إنشاء مستهلك الحدث على موقع المنتج (http://test_site_producer:8000). يتم نسخ مفاتيح المستخدم الموجودة على موقع المستهلك تلقائيًا إلى مستند Event Consumer على موقع المنتج في هذه العملية.

منتج الحدث

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

2.4 الموافقة على مستهلك الحدث على موقع منتج الحدث

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

مستهلك الحدث

ملاحظة: لن تتم مزامنة تحديثات المستندات لأنواع المستندات المشتركة إلا إذا تمت الموافقة عليها.

2.5 الوصول دون اتصال بالإنترنت من خلال موقع واحد

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

  1. قم بإعداد مثيل OneOfficeERP المحلي.
  2. قم الآن بإنشاء Event Producer على الحساب المستضاف وقم بتعيين عنوان URL الخاص بالمنتج على عنوان URL الخاص بحسابك المحلي.
  3. قم بإضافة أنواع المستندات التي تريد مزامنتها في الجدول الفرعي لأنواع مستندات منتج الأحداث.
  4. الموافقة على أنواع المستندات.

3. الميزات

3.1 إلغاء الاشتراك في التحديثات

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

إلغاء الاشتراك

3.2 سجل تحديث الأحداث

يقوم "سجل تحديث الأحداث" بتسجيل كل إجراء إنشاء وتحديث وحذف للمستندات التي لديها عملاء على موقع "منتج الأحداث". لعرض سجل تحديث الأحداث:

انتقل إلى: الصفحة الرئيسية > التنفيذ التلقائي > تدفق الأحداث > سجل تحديث الأحداث.

  • بالنسبة إلى "إنشاء"، اكتب نوع التحديث ونوع المستند واسم المستند والمستند بأكمله (مثل JSON).
  • بالنسبة إلى "التحديث"، اكتب نوع التحديث ونوع المستند واسم المستند والبيانات المحدثة (الفرق بين الحالة السابقة والحالة الحالية للمستند).
  • بالنسبة للنوع "حذف"، يتم تسجيل نوع التحديث ونوع المستند واسم المستند فقط.

سجل تحديث الأحداث

3.3 سجل مزامنة الأحداث

مثل سجل التحديث، يقوم سجل مزامنة الأحداث بتسجيل كل مستند تمت مزامنته من منتج الأحداث على موقع مستهلك الأحداث. لعرض سجل مزامنة الأحداث:

انتقل إلى: الصفحة الرئيسية > التنفيذ التلقائي > تدفق الأحداث > سجل مزامنة الأحداث.

سجل مزامنة الأحداث

يؤدي الحدث الذي تمت مزامنته بنجاح إلى إنشاء مستند سجل يحتوي على:

  • نوع التحديث: إنشاء أو تحديث أو حذف
  • الحالة: حالة المزامنة
  • نوع الوثيقة
  • منتج الحدث: عنوان URL للموقع الذي تم إنشاء المستند منه
  • اسم الملف
  • اسم المستند البعيد: إذا تم إلغاء تحديد خيار "استخدام نفس الاسم".
  • استخدم نفس الاسم
  • البيانات: بيانات المستند بتنسيق JSON

سجل مزامنة الأحداث

يؤدي الحدث الفاشل إلى إنشاء مستند سجل يحتوي على الحقول المذكورة أعلاه بالإضافة إلى:

  • خطأ: الخطأ الذي أدى إلى عدم مزامنة المستند.

تمت مزامنة الحدث

  • زر إعادة المزامنة: يوفر أيضًا زر "إعادة المزامنة" لإعادة مزامنة الحدث الفاشل.

فشل الحدث

3.4 مزامنة التبعية

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

على سبيل المثال: مزامنة فاتورة المبيعات مع تبعية العنصر: تبعية الحدث

3.5 تكوين التسمية

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

استخدم نفس تهيئة الاسم

ملاحظة: بالنسبة لأنواع المستندات التي تحتوي على سلسلة تسمية، يُنصح بإبقاء مربع الاختيار "استخدام نفس الاسم" بدون تحديد، لمنع تعارض الأسماء. إذا لم يتم تحديد هذا الخيار، فسيتم إنشاء المستندات باتباع اصطلاحات التسمية على الموقع الحالي ويتم تعيين الحقول المخصصة "اسم الموقع البعيد" و"اسم المستند البعيد" في المستند الذي تمت مزامنته لتخزين عنوان URL لموقع منتج الأحداث واسم المستند على الموقع البعيد على التوالي.

المستند الذي تم الاشتراك فيه

3.6 تكوين الخرائط

إذا كنت تريد دفق المستندات بين مثيلي OneOfficeERP لنوع مستند معين بنفس الهياكل أو بنيات مختلفة، أو إذا كانت أسماء الحقول مختلفة في كلا الموقعين، فيمكنك استخدام دفق الأحداث مع تكوين التعيين.

لهذا تحتاج أولاً إلى إعداد تعيين نوع المستند.

للوصول إلى تعيين نوع المستند، انتقل إلى:

الصفحة الرئيسية > التنفيذ التلقائي > تدفق الأحداث > تعيين نوع المستند.

1. تعيين أنواع DocTypes ذات البنية المشابهة

  • اسم التعيين: أعط اسمًا فريدًا للرسم
  • نوع المستند المحلي: نوع المستند في موقعك الحالي
  • نوع المستند البعيد: نوع المستند الموجود على موقع منتج الأحداث الذي تريد مزامنته

في الجدول الفرعي لتعيين الحقول:

  • اسم الحقل المحلي: اسم الحقل الموجود في نوع المستند المحلي لموقعك الحالي.
  • اسم الحقل البعيد: اسم الحقل الموجود في نوع المستند البعيد لموقع منتج الأحداث الذي تريد تعيينه إلى اسم الحقل المحلي. أثناء المزامنة، يتم نسخ قيمة اسم الحقل البعيد إلى اسم الحقل المحلي.

تعيين نوع المستند

2. القيمة الافتراضية لبعض الحقول

إذا لم يتم تعيين الحقل الخاص بك إلى أي اسم حقل بعيد آخر وكنت تريد دائمًا أن يكون للحقل نفس القيمة، فقم بتعيين المجموعة نفسها في حقل القيمة الافتراضية. حدث إذا قمت بتعيين اسم الحقل البعيد، في حالة عدم العثور على قيمة الحقل البعيد أثناء المزامنة، وإذا تم تحديد "القيمة الافتراضية"، فسيتم تعيينها.

رابط تعيين الجدول الفرعي

3. تعيين أنواع DocTypes التي تحتوي على جداول فرعية

إذا كان الحقل الذي تحاول تعيينه عبارة عن جدول فرعي، فستحتاج إلى إنشاء تعيين نوع مستند آخر لحقول الجدول الفرعي.

رابط تعيين الجدول الفرعي

  • نوع التعيين: حدد نوع التعيين كجدول فرعي.
  • ** التعيين **: حدد مستند تعيين نوع المستند الذي قمت بإنشائه للجدول الفرعي.

رابط تعيين الجدول الفرعي

4. تعيين أنواع DocTypes التي لها تبعيات (حقول الارتباط، الارتباط الديناميكي)

إذا كانت أنواع DocTypes التي تحاول تعيينها تحتوي على أي نوع من التبعيات مثل حقول الارتباط أو الارتباط الديناميكي، فستحتاج إلى إعداد تعيين نوع مستند آخر لمزامنة التبعيات.

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

إنشاء تبعية العميل المحتمل

  • نوع التعيين: في هذه الحالة، نوع التعيين هو المستند.
  • رسم الخرائط: حدد التعيين الذي قمت بإنشائه للتو.
  • مرشحات القيمة البعيدة: تحتاج إلى تحديد عوامل التصفية التي ستجلب المستند البعيد الدقيق المراد تعيينه. كما هو الحال في هذه الحالة، فإن DocType البعيد هو OneOfficeERP Opportunity والذي يمكن جلبه بشكل فريد باستخدام الاسم ورقم الهاتف والبلد.

التنسيق هو:

{ "اسم الحقل البعيد": "الحقل أو التعبير الذي سنحصل منه على قيمة اسم الحقل هذا"}

إذا كنت تريد جلب القيمة من مكان ما، فابدأ التعبير بـ eval:

كما هو الحال في هذه الحالة: eval:frappe.db.get_value('Global Defaults', None, 'country')

نوع تعيين المستند

وأخيرًا، قم بتمكين خيار "Has Mapping" في الجدول الفرعي لتكوين الحدث في Event Producer مقابل نوع المستند المطلوب وحدد تعيين نوع المستند الذي قمت بإنشائه للتو.

تكوين التعيين

3.7 تكوين الأحداث الشرطية

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

على سبيل المثال، إذا كنت ترغب في إرسال مستندات "الملاحظة" العامة فقط، فيمكنك تحديدها ضمن مستند المنتج/المستهلك.

رابط تعيين الجدول الفرعي

إذا استوفى المستند شرطًا ما طوال مدة بقائه، فستتم مزامنة جميع "سجلات تحديث الأحداث" القديمة مع المستهلك

دعونا نفكر في مثال آخر. تريد مزامنة فواتير المبيعات التي تم إرسالها فقط. يمكنك تحديد doc.docstatus == 1 كشرط. لن تتم مزامنة الفواتير حتى يتم إرسالها.

بالنسبة لكل سجل تحديث، يمكنك رؤية المستهلكين الخاصين به ضمن مستند سجل التحديث.

إذا كنت بحاجة إلى مزيد من التحكم الدقيق في الظروف، فيمكنك ربط وظيفة مخصصة. سيتم تنفيذ وظيفتك باستخدام المعلمات consumer وdoc وupdate_log. على سبيل المثال، تريد مزامنة الملاحظات "الفردية" فقط

def is_odd_note(consumer, doc, update_log):
    إرجاع frappe.db.sql("""
        يختار
            عدد(*)
        من "tabNote".
        أين الإنشاء <= %(الإنشاء)s
    """, { "إنشاء": doc.creation })[0][0] % 2 != 0

وبعد ذلك يمكنك تحديد الشرط:

كمد: my_custom_app.note.is_odd_note