Ce document a été traduit par IA. Pour des informations précises, veuillez consulter la version anglaise.
Le système de contexte du moteur de flux de travail de NocoBase est divisé en trois couches, correspondant à des portées différentes. Une utilisation raisonnable permet de réaliser un partage et une isolation flexibles des services, des configurations et des données, améliorant ainsi la maintenabilité et l'extensibilité de vos activités.
mode: 'runtime' | 'settings', correspondant respectivement à l'état d'exécution et à l'état de configuration.Tous les FlowEngineContext (contexte global), FlowModelContext (contexte de modèle), FlowRuntimeContext (contexte d'exécution de flux de travail), etc., sont des sous-classes ou des instances de FlowContext.
FlowModelContext peut accéder aux propriétés et méthodes de FlowEngineContext via un mécanisme de délégation (delegate), réalisant le partage des capacités globales.FlowModelContext d'un sous-modèle peut accéder au contexte du modèle parent (relation synchrone) via un mécanisme de délégation (delegate), prenant en charge la surcharge par le même nom.FlowRuntimeContext accède toujours à son FlowModelContext correspondant via un mécanisme de délégation (delegate), mais ne remonte pas les informations vers le haut.FlowRuntimeContext prend en charge deux modes, distingués par le paramètre mode :
mode: 'runtime' (état d'exécution) : Utilisé pour la phase d'exécution réelle du flux de travail, les propriétés et méthodes renvoient des données réelles. Par exemple :
mode: 'settings' (état de configuration) : Utilisé pour la phase de conception et de configuration du flux de travail, l'accès aux propriétés renvoie une chaîne de modèle de variable, facilitant les expressions et la sélection de variables. Par exemple :
Cette conception à double mode garantit à la fois la disponibilité des données au moment de l'exécution et facilite la référence aux variables et la génération d'expressions lors de la configuration, améliorant la flexibilité et la facilité d'utilisation du moteur de flux de travail.
Dans certains scénarios (par exemple, l'édition de code RunJS de JS*Model, le codage IA), il est nécessaire de permettre à l'« appelant » de comprendre, sans exécuter le code :
ctx actuel (documentation API, paramètres, exemples, liens de documentation, etc.)await ctx.getApiInfos(options?) (Informations API statiques)await ctx.getVarInfos(options?) (Informations sur la structure des variables)defineProperty(...).meta (incluant la factory meta)path et le contrôle de la profondeur par maxDepthParamètres courants :
maxDepth : Niveau d'expansion maximal (par défaut 3)path: string | string[] : Découpage, ne produit que la sous-arborescence du chemin spécifiéawait ctx.getEnvInfos() (Instantané de l'environnement d'exécution)Structure du nœud (simplifiée) :