Tento dokument byl přeložen pomocí AI. Pro přesné informace se podívejte na anglickou verzi.
Systém kontextů enginu pracovních postupů NocoBase je rozdělen do tří vrstev, které odpovídají různým rozsahům působnosti. Rozumné použití umožňuje flexibilní sdílení a izolaci služeb, konfigurací a dat, čímž se zvyšuje udržovatelnost a rozšiřitelnost byznysu.
mode: 'runtime' | 'settings', které odpovídají stavu běhu a stavu konfigurace.Všechny FlowEngineContext (globální kontext), FlowModelContext (kontext modelu), FlowRuntimeContext (kontext běhu pracovního postupu) atd. jsou podtřídami nebo instancemi FlowContext.
FlowModelContext může přistupovat k vlastnostem a metodám FlowEngineContext prostřednictvím mechanismu delegování (delegate), čímž realizuje sdílení globálních schopností.FlowModelContext podřízeného modelu může přistupovat ke kontextu rodičovského modelu (synchronní vztah) prostřednictvím mechanismu delegování (delegate), podporuje přepsání se stejným názvem.FlowRuntimeContext vždy přistupuje ke svému odpovídajícímu FlowModelContext prostřednictvím mechanismu delegování (delegate), ale nevrací se směrem nahoru.FlowRuntimeContext podporuje dva režimy, rozlišené parametrem mode:
mode: 'runtime' (stav běhu): Používá se ve fázi skutečného provádění pracovního postupu, vlastnosti a metody vracejí skutečná data. Například:
mode: 'settings' (stav konfigurace): Používá se ve fázi návrhu a konfigurace pracovního postupu, přístup k vlastnostem vrací řetězec šablony proměnné, což usnadňuje výběr výrazů a proměnných. Například:
Tento dvourežimový design zajišťuje dostupnost dat za běhu a zároveň usnadňuje odkazování na proměnné a generování výrazů při konfiguraci, čímž zvyšuje flexibilitu a použitelnost enginu pracovních postupů.
V určitých scénářích (například úprava kódu RunJS v JS*Model, AI kódování) je nutné, aby „volající strana“ bez spuštění kódu porozuměla:
ctx k dispozici (API dokumentace, parametry, příklady, odkazy na dokumentaci atd.)await ctx.getApiInfos(options?) (Statické API informace)await ctx.getVarInfos(options?) (Informace o struktuře proměnných)defineProperty(...).meta (včetně meta factory)path a řízení hloubky maxDepthČasté parametry:
maxDepth: Maximální úroveň rozbalení (výchozí 3)path: string | string[]: Ořezání, výstup pouze podstromu zadané cestyawait ctx.getEnvInfos() (Snímek běhového prostředí)Struktura uzlu (zjednodušená):