短期間のファクトと長期間のファクト
ルール エンジンのワーキング メモリには、短期ファクトと長期ファクトという 2 種類のファクトがアサートされます。
Short-Term ファクト
短期間のファクトは、ルール エンジンを一度だけ実行するサイクルに特有です。 短期間のファクトは、ポリシーが実行された後に、ルール エンジンの作業メモリから自動的に取り消されます。 ポリシーのルール エンジンの実行サイクル間でデータが変更される場合は、データを短期間のファクトとしてルール エンジンに送信します。
短期間のファクトの例を以下に示します。
Policy.Execute メソッドにパラメーターとして送信するファクト。
[呼び出しルール] 図形にパラメーターとして送信するファクト。
Assert 関数を使用してルールのアクションから送信するファクト。
長期間のファクト
長期間のファクトは、ルール エンジンの作業メモリに読み込まれ、任意の数の実行サイクルに使用されます。 通常、長期間のファクトは、一般的にはポリシーの実行の合間には変更されない、変化の遅いファクトです。 たとえば、データベース接続を 1 回だけ作成し、同じデータベース接続を使用してポリシーを複数回実行する必要がある場合が考えられます。 短期間のファクトと長期間のファクトの唯一の大きな違いは、その実装にあります。
ファクトを長期間のファクトとして送信するには、次の手順を実行する必要があります。
IFactRetriever インターフェイスを実装するファクト レトリバー コンポーネントを作成します。 UpdateFacts メソッドが初めて呼び出されたときにルール エンジンの作業メモリにファクトを作成してアサートし、UpdateFacts メソッドの後続の呼び出しで必要に応じてファクトを更新します。
ビジネス ルール作成ツールを使用してファクトレトリバー コンポーネントを使用するようにポリシーを構成します。
ファクト レトリーバーの作成とポリシーでの使用の詳細については、「 ファクト レトリーバーを作成する方法」を参照してください。