מסמך זה תורגם על ידי AI. למידע מדויק, אנא עיינו בגרסה באנגלית.
מערכת ההקשר (Context) של מנוע תהליכי העבודה (Flow engine) של NocoBase מחולקת לשלוש שכבות, המתאימות לטווחי פעולה (scopes) שונים. שימוש מושכל מאפשר שיתוף ובידוד גמישים של שירותים, הגדרות ונתונים, ומשפר את יכולת התחזוקה וההרחבה העסקית.
mode: 'runtime' | 'settings', המתאימים למצב ריצה ומצב הגדרות בהתאמה.כל ה-FlowEngineContext (הקשר גלובלי), FlowModelContext (הקשר מודל), FlowRuntimeContext (הקשר זמן ריצה של תהליך עבודה) וכו', הם תתי-מחלקות או מופעים של FlowContext.
FlowModelContext ניגש למאפיינים ומתודות של FlowEngineContext דרך מנגנון האצלה (delegate), למימוש שיתוף יכולות גלובליות.FlowModelContext של מודל משנה ניגש להקשר של מודל האב (קשר סינכרוני) דרך מנגנון האצלה (delegate), ותומך בדריסה של שמות זהים.FlowRuntimeContext תמיד ניגש ל-FlowModelContext המתאים לו דרך מנגנון האצלה (delegate), אך לא מעביר נתונים חזרה למעלה.FlowRuntimeContext תומך בשני מצבים, המובחנים באמצעות הפרמטר mode:
mode: 'runtime' (מצב ריצה): משמש בשלב הביצוע בפועל של תהליך העבודה, מאפיינים ומתודות מחזירים נתונים אמיתיים. לדוגמה:
mode: 'settings' (מצב הגדרות): משמש בשלב העיצוב וההגדרה של תהליך העבודה, גישה למאפיינים מחזירה מחרוזת תבנית של משתנה, מה שמקל על בחירת ביטויים ומשתנים. לדוגמה:
עיצוב דו-מצבי זה מבטיח זמינות נתונים בזמן ריצה ומקל על הפניית משתנים ויצירת ביטויים בזמן ההגדרה, ובכך משפר את הגמישות וקלות השימוש של מנוע תהליכי העבודה.
בתרחישים מסוימים (כגון עריכת קוד RunJS ב-JS*Model או AI coding), יש צורך לאפשר ל"צד הקורא" להבין מבלי להריץ את הקוד:
ctx הנוכחי (תיעוד API, פרמטרים, דוגמאות, קישורי תיעוד וכו')await ctx.getApiInfos(options?) (מידע API סטטי)await ctx.getVarInfos(options?) (מידע על מבנה משתנים)defineProperty(...).meta (כולל meta factory)path ובבקרת עומק maxDepthפרמטרים נפוצים:
maxDepth: רמת פתיחה מקסימלית (ברירת מחדל 3)path: string | string[]: חיתוך, פלט רק של תת-עץ בנתיב שצויןawait ctx.getEnvInfos() (צילום מצב של סביבת זמן הריצה)מבנה צומת (מפושט):