イベントフロー

FlowEngineでは、インターフェースのすべてのコンポーネントがイベント駆動型(Event-driven)です。コンポーネントの動作、インタラクション、データ変更は、イベントによってトリガーされ、フローを通じて実行されます。

静的フローと動的フロー

FlowEngineでは、フローは2つのタイプに分けられます。

1. 静的フロー(Static Flow)

  • 開発者がコード内で定義します。
  • 特定のモデルクラスのすべてのインスタンスに作用します。
  • モデルクラスの一般的なロジックを処理するためによく使用されます。

2. 動的フロー(Dynamic Flow)

  • ユーザーがインターフェース上で設定します。
  • 特定のインスタンスにのみ適用されます。
  • 特定のシナリオにおけるパーソナライズされた動作によく使用されます。

要するに、静的フローはクラスに定義されたロジックテンプレートであり、動的フローはインスタンスに定義されたパーソナライズされたロジックです。

連携ルールと動的フロー

FlowEngineの設定システムには、イベントロジックを実装する方法が2つあります。

1. 連携ルール(Linkage Rules)

  • 組み込みのイベントフローステップの抽象化です。
  • 設定がより簡単で、セマンティックな意味合いがより強くなります。
  • 本質的には、イベントフロー(Flow)の簡略化された形式です。

2. 動的フロー(Dynamic Flow)

  • 完全なフロー設定機能を提供します。
  • カスタマイズ可能です:
    • トリガー(on):いつトリガーするかを定義します。
    • 実行ステップ(steps):実行するロジックを定義します。
  • より複雑で柔軟なビジネスロジックに適しています。

したがって、連携ルールは簡略化されたイベントフローであり、両者のコアメカニズムは一貫しています。

FlowActionの一貫性

連携ルールとイベントフローのどちらも、同じFlowActionのセットを使用する必要があります。つまり:

  • FlowActionは、フローによって呼び出し可能なアクションを定義します。
  • 両者は別々に2つのシステムを実装するのではなく、1つのアクションシステムを共有します。
  • これにより、ロジックの再利用と一貫した拡張が保証されます。

概念階層

概念的に、FlowModelのコアとなる抽象的な関係は以下の通りです。

FlowModel
 └── FlowDefinition
      ├── FlowEventDefinition
      │     ├── グローバルイベント(Global Events)
      │     └── ローカルイベント(Local Events)
      └── FlowActionDefinition
            ├── グローバルアクション(Global Actions)
            └── ローカルアクション(Local Actions)

階層の説明

  • FlowModel 設定可能で、フローロジックを実行できるモデルエンティティを表します。

  • FlowDefinition トリガー条件と実行ステップを含む、完全なフローロジックのセットを定義します。

  • FlowEventDefinition フローのトリガーソースを定義します。これには以下が含まれます:

    • グローバルイベント:アプリケーションの起動、データロードの完了など。
    • ローカルイベント:フィールドの変更、ボタンのクリックなど。
  • FlowActionDefinition フローが実行できるアクションを定義します。これには以下が含まれます:

    • グローバルアクション:ページの更新、グローバル通知など。
    • ローカルアクション:フィールド値の変更、コンポーネントの状態切り替えなど。

まとめ

概念目的適用範囲
静的フロー (Static Flow)コードで定義されるフローロジックすべてのXXModelインスタンス
動的フロー (Dynamic Flow)インターフェースで定義されるフローロジック単一のFlowModelインスタンス
FlowEventトリガー(いつトリガーするか)を定義グローバルまたはローカル
FlowAction実行ロジックを定義グローバルまたはローカル
連携ルール (Linkage Rule)イベントフローステップの簡略化された抽象化ブロック、アクションレベル