تمت ترجمة هذا المستند بواسطة الذكاء الاصطناعي. للحصول على معلومات دقيقة، يرجى الرجوع إلى النسخة الإنجليزية.
ينقسم نظام السياق لمحرك سير العمل (FlowEngine) في NocoBase إلى ثلاث طبقات، تتوافق كل منها مع نطاق مختلف، حيث يحقق الاستخدام المعقول مشاركة وعزل مرنين للخدمات والتكوينات والبيانات، مما يعزز قابلية صيانة الأعمال وتوسيعها.
mode: 'runtime' | 'settings'، واللذان يتوافقان مع حالة التشغيل وحالة الإعدادات على التوالي.جميع FlowEngineContext (السياق العالمي)، وFlowModelContext (سياق النموذج)، وFlowRuntimeContext (سياق وقت تشغيل سير العمل) وما إلى ذلك، هي فئات فرعية أو مثيلات لـ FlowContext.
FlowModelContext الوصول إلى خصائص وأساليب FlowEngineContext من خلال آلية التفويض (delegate)، مما يحقق مشاركة القدرات العالمية.FlowModelContext الخاص بالنموذج الفرعي الوصول إلى سياق النموذج الأب (علاقة متزامنة) من خلال آلية التفويض (delegate)، مع دعم التجاوز بنفس الاسم.FlowRuntimeContext دائمًا إلى FlowModelContext المقابل له من خلال آلية التفويض (delegate)، ولكنه لا يقوم بالإرسال العكسي للأعلى.يدعم FlowRuntimeContext وضعين، يتم التمييز بينهما عبر المعلمة mode:
mode: 'runtime' (حالة التشغيل): تُستخدم في مرحلة التنفيذ الفعلي لسير العمل، حيث تُرجع الخصائص والأساليب بيانات حقيقية. مثال:
mode: 'settings' (حالة الإعدادات): تُستخدم في مرحلة تصميم وتكوين سير العمل، حيث يُرجع الوصول إلى الخصائص سلسلة قالب متغير، مما يسهل اختيار التعبيرات والمتغيرات. مثال:
يضمن هذا التصميم ثنائي الوضع توفر البيانات في وقت التشغيل، كما يسهل مرجع المتغيرات وتوليد التعبيرات أثناء التكوين، مما يعزز مرونة وسهولة استخدام محرك سير العمل.
في بعض السيناريوهات (مثل تحرير كود RunJS في JS*Model، أو البرمجة بالذكاء الاصطناعي)، يحتاج "الطرف المستدعي" إلى فهم ما يلي دون تنفيذ الكود:
ctx الحالي (وثائق واجهة برمجة التطبيقات API، المعلمات، الأمثلة، روابط الوثائق، إلخ).await ctx.getApiInfos(options?) (معلومات API الثابتة)await ctx.getVarInfos(options?) (معلومات هيكل المتغيرات)defineProperty(...).meta (بما في ذلك مصنع meta) لبناء هيكل المتغيرات.path والتحكم في العمق maxDepth.المعلمات الشائعة:
maxDepth: أقصى مستوى للتوسع (الافتراضي 3).path: string | string[]: القص، يخرج فقط الشجرة الفرعية للمسار المحدد.await ctx.getEnvInfos() (لقطة لبيئة وقت التشغيل)هيكل العقدة (مبسط):