次の方法で共有


短期間のファクトと長期間のファクト

ルール エンジンのワーキング メモリには、短期ファクトと長期ファクトという 2 種類のファクトがアサートされます。

Short-Term ファクト

短期間のファクトは、ルール エンジンを一度だけ実行するサイクルに特有です。 短期間のファクトは、ポリシーが実行された後に、ルール エンジンの作業メモリから自動的に取り消されます。 ポリシーのルール エンジンの実行サイクル間でデータが変更される場合は、データを短期間のファクトとしてルール エンジンに送信します。

短期間のファクトの例を以下に示します。

  • Policy.Execute メソッドにパラメーターとして送信するファクト。

  • [呼び出しルール] 図形にパラメーターとして送信するファクト。

  • Assert 関数を使用してルールのアクションから送信するファクト。

長期間のファクト

長期間のファクトは、ルール エンジンの作業メモリに読み込まれ、任意の数の実行サイクルに使用されます。 通常、長期間のファクトは、一般的にはポリシーの実行の合間には変更されない、変化の遅いファクトです。 たとえば、データベース接続を 1 回だけ作成し、同じデータベース接続を使用してポリシーを複数回実行する必要がある場合が考えられます。 短期間のファクトと長期間のファクトの唯一の大きな違いは、その実装にあります。

ファクトを長期間のファクトとして送信するには、次の手順を実行する必要があります。

  1. IFactRetriever インターフェイスを実装するファクト レトリバー コンポーネントを作成します。 UpdateFacts メソッドが初めて呼び出されたときにルール エンジンの作業メモリにファクトを作成してアサートし、UpdateFacts メソッドの後続の呼び出しで必要に応じてファクトを更新します。

  2. ビジネス ルール作成ツールを使用してファクトレトリバー コンポーネントを使用するようにポリシーを構成します。

    ファクト レトリーバーの作成とポリシーでの使用の詳細については、「 ファクト レトリーバーを作成する方法」を参照してください。

参照

ファクト