Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
Система контекстов движка рабочих процессов 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-кодинг) необходимо, чтобы «вызывающая сторона» понимала следующее без выполнения кода:
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() (снимок среды выполнения)Структура узла (упрощенная):