Aviso de traducción IA
Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
Información general del sistema de contexto
El sistema de contexto del motor de flujo de NocoBase se divide en tres capas, que corresponden a diferentes ámbitos. El uso adecuado permite lograr un intercambio y aislamiento flexible de servicios, configuraciones y datos, mejorando la mantenibilidad y escalabilidad del negocio.
- FlowEngineContext (Contexto global): Único a nivel global, accesible por todos los modelos y flujos, adecuado para registrar servicios globales, configuraciones, etc.
- FlowModelContext (Contexto del modelo): Se utiliza para compartir el contexto dentro del árbol de modelos. Los submodelos delegan automáticamente en el contexto del modelo padre, admitiendo la sobrescritura por nombre; adecuado para el aislamiento de lógica y datos a nivel de modelo.
- FlowRuntimeContext (Contexto de ejecución del flujo): Se crea en cada ejecución del flujo y abarca todo el ciclo de ejecución. Adecuado para la transferencia de datos, almacenamiento de variables y registro del estado de ejecución dentro del flujo. Admite dos modos:
mode: 'runtime' | 'settings', que corresponden al estado de ejecución y al estado de configuración respectivamente.
Todos los FlowEngineContext (contexto global), FlowModelContext (contexto del modelo), FlowRuntimeContext (contexto de ejecución del flujo), etc., son subclases o instancias de FlowContext.
🗂️ Diagrama de jerarquía
FlowModelContextpuede acceder a las propiedades y métodos deFlowEngineContexta través del mecanismo de delegación (delegate), logrando el intercambio de capacidades globales.- El
FlowModelContextde los submodelos puede acceder al contexto del modelo padre (relación síncrona) a través del mecanismo de delegación (delegate), admitiendo la sobrescritura por nombre. - Los modelos padre-hijo asíncronos no establecen una relación de delegación (delegate) para evitar la contaminación del estado.
FlowRuntimeContextsiempre accede a suFlowModelContextcorrespondiente a través del mecanismo de delegación (delegate), pero no se transmite hacia arriba.

