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 והקשר ל-Plugin
התחלה מהירה
מפת דרכים ללמידה

מדריך

רישום FlowModel
יצירת FlowModel
רינדור FlowModel
FlowModel: זרימת אירועים וקונפיגורציה
FlowModel Persistence
FlowModel Lifecycle
מערכת הקונטקסט של FlowModel
מנגנון ריאקטיבי: Observable
FlowModel vs React.Component

Definitions

ModelDefinition
FlowDefinition
EventDefinition
ActionDefinition
StepDefinition
Previous PageFlowModel Lifecycle
Next Pageמנגנון ריאקטיבי: Observable
TIP

מסמך זה תורגם על ידי בינה מלאכותית. לכל אי דיוק, אנא עיין בגרסה האנגלית

#מבט כללי על מערכת ההקשר

מערכת ההקשר של מנוע ה-Flow של NocoBase מחולקת לשלוש שכבות, שכל אחת מהן מתאימה לתחום פעולה (scope) שונה. שימוש נכון מאפשר שיתוף ובידוד גמישים של שירותים, תצורות ונתונים, ומשפר את יכולת התחזוקה וההרחבה של המערכת העסקית.

  • 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 של מודל משנה יכול לגשת להקשר של מודל ההורה (יחס סינכרוני) באמצעות מנגנון האצלה (delegate), ותומך בדריסה של שמות זהים.
  • מודלי הורה-בן אסינכרוניים אינם יוצרים יחס האצלה (delegate) כדי למנוע זיהום מצב.
  • FlowRuntimeContext תמיד ניגש ל-FlowModelContext המתאים לו באמצעות מנגנון האצלה (delegate), אך אינו מעביר שינויים כלפי מעלה.

#🧭 מצב ריצה ומצב תצורה (mode)

FlowRuntimeContext תומך בשני מצבים, הנבדלים באמצעות הפרמטר mode:

  • mode: 'runtime' (מצב ריצה): משמש בשלב הביצוע בפועל של תהליך העבודה. מאפיינים ומתודות מחזירים נתונים אמיתיים. לדוגמה:

    console.log(runtimeCtx.steps.step1.result); // 42
  • mode: 'settings' (מצב תצורה): משמש בשלב התכנון והתצורה של תהליך העבודה. גישה למאפיינים מחזירה מחרוזת תבנית משתנה, ומקלה על בחירת ביטויים ומשתנים. לדוגמה:

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

עיצוב דו-מצבי זה מבטיח זמינות נתונים בזמן ריצה ומקל על הפניית משתנים ויצירת ביטויים במהלך התצורה, ובכך משפר את הגמישות וקלות השימוש של מנוע ה-Flow.