このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
NocoBaseのワークフローエンジンにおけるコンテキストシステムは3つの階層に分かれており、それぞれ異なるスコープに対応しています。これを適切に活用することで、サービス、設定、データの柔軟な共有と分離を実現でき、ビジネスの保守性と拡張性が向上します。
mode: 'runtime' | 'settings' の2つのモードをサポートしており、それぞれ実行時モードと設定時モードに対応しています。これらすべての FlowEngineContext(グローバルコンテキスト)、FlowModelContext(モデルコンテキスト)、FlowRuntimeContext(フロー実行時コンテキスト)などは、FlowContext のサブクラスまたはインスタンスです。
FlowModelContext は、デリゲート(委譲)メカニズムを通じて FlowEngineContext のプロパティやメソッドにアクセスでき、グローバルな機能共有を実現します。FlowModelContext は、デリゲート(委譲)メカニズムを通じて親モデルのコンテキスト(同期関係)にアクセスでき、同名での上書きをサポートしています。FlowRuntimeContext は常に、デリゲート(委譲)メカニズムを通じて対応する FlowModelContext にアクセスしますが、上位に伝播することはありません。FlowRuntimeContext は2つのモードをサポートしており、mode パラメータで区別されます。
mode: 'runtime'(実行時モード):フローの実際の実行段階で使用されます。プロパティやメソッドは実際のデータを返します。例えば:
mode: 'settings'(設定時モード):フローの設計および設定段階で使用されます。プロパティにアクセスすると、変数テンプレート文字列が返されます。これにより、式や変数の選択が容易になります。例えば:
このデュアルモード設計は、実行時のデータ可用性を保証するだけでなく、設定時の変数参照や式生成も容易にします。これにより、ワークフローエンジンの柔軟性と使いやすさが向上します。