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

مقدمة

ما هو FlowEngine؟
العلاقة بين FlowEngine والإضافات
بدء سريع
خارطة طريق التعلم

دليل

تسجيل FlowModel
إنشاء FlowModel
عرض FlowModel
تدفق أحداث FlowModel والإعداد
استمرارية FlowModel
دورة حياة FlowModel
نظام سياق FlowModel
آلية التفاعل: Observable
FlowModel مقابل React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous Pageدورة حياة FlowModel
Next Pageآلية التفاعل: Observable

#نظرة عامة على نظام السياق

ينقسم نظام السياق في محرك سير العمل (FlowEngine) الخاص بـ NocoBase إلى ثلاث طبقات، تتوافق كل منها مع نطاق مختلف. يُمكن استخدامها بشكل صحيح لتحقيق مشاركة وعزل مرنين للخدمات والإعدادات والبيانات، مما يعزز قابلية صيانة الأعمال وتوسيعها.

  • FlowEngineContext (السياق العام): فريد عالميًا، يمكن الوصول إليه من جميع النماذج وسير العمل، ومناسب لتسجيل الخدمات والإعدادات العامة وما إلى ذلك.
  • FlowModelContext (سياق النموذج): يُستخدم لمشاركة السياق داخل شجرة النموذج. تُفوّض النماذج الفرعية تلقائيًا إلى سياق النموذج الأب، مع دعم تجاوز الأسماء المتشابهة. مناسب لعزل المنطق والبيانات على مستوى النموذج.
  • FlowRuntimeContext (سياق وقت تشغيل سير العمل): يُنشأ في كل مرة يتم فيها تنفيذ سير عمل، ويستمر طوال دورة تنفيذ سير العمل بأكملها. مناسب لتمرير البيانات، وتخزين المتغيرات، وتسجيل حالة التشغيل ضمن سير العمل. يدعم وضعين: mode: 'runtime' | 'settings'، يتوافقان مع وضع التشغيل ووضع الإعدادات على التوالي.

جميع FlowEngineContext (السياق العام)، وFlowModelContext (سياق النموذج)، وFlowRuntimeContext (سياق وقت تشغيل سير العمل)، وما إلى ذلك، هي فئات فرعية أو نُسخ من FlowContext.


#🗂️ مخطط الهيكل الهرمي

FlowEngineContext (السياق العام)
│
├── FlowModelContext (سياق النموذج)
│     ├── Sub FlowModelContext (نموذج فرعي)
│     │     ├── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
│     │     └── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
│     └── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
│
├── FlowModelContext (سياق النموذج)
│     └── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
│
└── FlowModelContext (سياق النموذج)
      ├── Sub FlowModelContext (نموذج فرعي)
      │     └── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
      └── FlowRuntimeContext (سياق وقت تشغيل سير العمل)
  • يمكن لـ FlowModelContext الوصول إلى خصائص ومهام FlowEngineContext عبر آلية التفويض (delegate)، مما يتيح مشاركة الإمكانيات العامة.
  • يمكن لـ FlowModelContext الخاص بالنموذج الفرعي الوصول إلى سياق النموذج الأب (علاقة متزامنة) عبر آلية التفويض، مع دعم تجاوز الأسماء المتشابهة.
  • لا تُنشئ النماذج الأب والابن غير المتزامنة علاقة تفويض لتجنب تلوث الحالة.
  • يصل FlowRuntimeContext دائمًا إلى FlowModelContext المقابل له عبر آلية التفويض، ولكنه لا ينشر التغييرات صعودًا.

إشعار الترجمة بالذكاء الاصطناعي

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

#🧭 وضع التشغيل ووضع الإعدادات (mode)

يدعم FlowRuntimeContext وضعين، يتم التمييز بينهما بواسطة المعامل mode:

  • mode: 'runtime' (وضع التشغيل): يُستخدم خلال مرحلة التنفيذ الفعلي لسير العمل. تُرجع الخصائص والمهام بيانات حقيقية. على سبيل المثال:

    console.log(runtimeCtx.steps.step1.result); // 42
  • mode: 'settings' (وضع الإعدادات): يُستخدم خلال مرحلة تصميم سير العمل وتكوينه. يُرجع الوصول إلى الخاصية سلسلة قالب متغير، مما يسهل اختيار التعبيرات والمتغيرات. على سبيل المثال:

    console.log(settingsCtx.steps.step1.result); // '{{ ctx.steps.step1.result }}'

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