Ten dokument został przetłumaczony przez AI. Aby uzyskać dokładne informacje, zapoznaj się z wersją angielską.
System kontekstowy silnika przepływów pracy NocoBase podzielony jest na trzy warstwy, z których każda odpowiada innemu zakresowi. Rozsądne użycie pozwala na elastyczne współdzielenie i izolację usług, konfiguracji i danych, poprawiając łatwość utrzymania i rozszerzalność biznesową.
mode: 'runtime' | 'settings', odpowiadające odpowiednio trybowi wykonania i trybowi konfiguracji.Wszystkie FlowEngineContext (kontekst globalny), FlowModelContext (kontekst modelu), FlowRuntimeContext (kontekst wykonania przepływu pracy) itp. są podklasami lub instancjami FlowContext.
FlowModelContext poprzez mechanizm delegowania (delegate) może uzyskiwać dostęp do właściwości i metod FlowEngineContext, realizując współdzielenie globalnych możliwości.FlowModelContext modelu podrzędnego poprzez mechanizm delegowania (delegate) może uzyskiwać dostęp do kontekstu modelu nadrzędnego (relacja synchroniczna), obsługując nadpisywanie nazw.FlowRuntimeContext zawsze uzyskuje dostęp do odpowiadającego mu FlowModelContext poprzez mechanizm delegowania (delegate), ale nie przekazuje zmian w górę.FlowRuntimeContext obsługuje dwa tryby, rozróżniane za pomocą parametru mode:
mode: 'runtime' (tryb wykonania): Używany w fazie faktycznego wykonania przepływu pracy, właściwości i metody zwracają rzeczywiste dane. Na przykład:
mode: 'settings' (tryb konfiguracji): Używany w fazie projektowania i konfiguracji przepływu pracy, dostęp do właściwości zwraca ciąg szablonu zmiennej, co ułatwia wybór wyrażeń i zmiennych. Na przykład:
Ta dwutrybowa konstrukcja zapewnia dostępność danych w czasie wykonania, a także ułatwia odwoływanie się do zmiennych i generowanie wyrażeń podczas konfiguracji, zwiększając elastyczność i łatwość użycia silnika przepływów pracy.
W niektórych scenariuszach (np. edycja kodu RunJS w JS*Model, AI coding), konieczne jest umożliwienie „stronie wywołującej” zrozumienie następujących kwestii bez wykonywania kodu:
ctx.await ctx.getApiInfos(options?) (Statyczne informacje API)await ctx.getVarInfos(options?) (Informacje o strukturze zmiennych)defineProperty(...).meta (w tym meta factory).path i kontrolę głębokości maxDepth.Często używane parametry:
maxDepth: Maksymalny poziom rozwinięcia (domyślnie 3).path: string | string[]: Przycinanie, wyprowadza tylko poddrzewo określonej ścieżki.await ctx.getEnvInfos() (Migawka środowiska wykonawczego)Struktura węzła (uproszczona):