Цей документ було перекладено за допомогою ШІ. Для точної інформації зверніться до англійської версії.
Система контекстів рушія робочих процесів NocoBase поділяється на три рівні, що відповідають різним областям видимості. Раціональне використання дозволяє реалізувати гнучке спільне використання та ізоляцію сервісів, конфігурацій і даних, підвищуючи зручність обслуговування та масштабованість бізнесу.
mode: 'runtime' | 'settings', що відповідають стану виконання та стану налаштування відповідно.Усі FlowEngineContext (глобальний контекст), FlowModelContext (контекст моделі), FlowRuntimeContext (контекст виконання робочого процесу) тощо є підкласами або екземплярами FlowContext.
FlowModelContext через механізм делегування (delegate) може отримувати доступ до властивостей та методів FlowEngineContext, реалізуючи спільне використання глобальних можливостей.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() (Знімок середовища виконання)Структура вузла (спрощена):