Detta dokument har översatts av AI. För korrekt information, se den engelska versionen.
NocoBase flödesmotors kontextsystem är uppdelat i tre lager, som motsvarar olika omfång. Genom att använda dem på ett rimligt sätt kan ni uppnå flexibel delning och isolering av tjänster, konfigurationer och data, vilket förbättrar verksamhetens underhållbarhet och skalbarhet.
mode: 'runtime' | 'settings', som motsvarar körningsläge respektive inställningsläge.Alla FlowEngineContext (global kontext), FlowModelContext (modellkontext), FlowRuntimeContext (flödeskörningskontext) etc. är underklasser eller instanser av FlowContext.
FlowModelContext kan via en delegeringsmekanism (delegate) komma åt egenskaper och metoder i FlowEngineContext för att uppnå delning av global förmåga.FlowModelContext kan via en delegeringsmekanism (delegate) komma åt föräldramodellens kontext (synkront förhållande), vilket stöder överskrivning med samma namn.FlowRuntimeContext använder alltid en delegeringsmekanism (delegate) för att komma åt sin motsvarande FlowModelContext, men skickar inte tillbaka information uppåt.FlowRuntimeContext stöder två lägen, som skiljs åt via parametern mode:
mode: 'runtime' (körningsläge): Används under flödets faktiska exekveringsfas, där egenskaper och metoder returnerar verkliga data. Till exempel:
mode: 'settings' (inställningsläge): Används under flödets design- och konfigurationsfas, där åtkomst till egenskaper returnerar variabelmallsträngar, vilket underlättar val av uttryck och variabler. Till exempel:
Denna dubbellägesdesign säkerställer både datatillgänglighet vid körning och underlättar variabelreferenser och uttrycksgenerering vid konfiguration, vilket förbättrar flödesmotorns flexibilitet och användarvänlighet.
I vissa scenarier (till exempel RunJS-kodredigering i JS*Model, AI-kodning) behöver "anroparen" förstå följande utan att köra koden:
ctx (API-dokumentation, parametrar, exempel, dokumentationslänkar etc.)await ctx.getApiInfos(options?) (Statisk API-information)await ctx.getVarInfos(options?) (Information om variabelstruktur)defineProperty(...).meta (inklusive meta factory)path och djupkontroll med maxDepthVanliga parametrar:
maxDepth: Maximal expansionsnivå (standard 3)path: string | string[]: Beskärning, matar endast ut underträd för angiven sökvägawait ctx.getEnvInfos() (Ögonblicksbild av körningsmiljö)Nodstruktur (förenklad):