Operational Decision Manager 8.12.0 以降のバージョンでは、クラシック・ルール・エンジンはサポートされません。
そのため、必ず意思決定エンジンを使用することになります。
ここではクラッシックエンジンと意思決定エンジンの違いと、意思決定エンジンへの移行時の注意事項を説明します。
ルールエンジンの比較
クラシック・ルール・エンジンと意思決定エンジン API の間のマッピング
クラシック・ルール・エンジンの API と意思決定エンジンの API の間のマッピングは、1 対 1 のマッピングではありません。 意思決定エンジンの API はモジュラーであり、複数のインターフェースから構成されています。
数値の 10 進数の精度
意思決定エンジンは、ルールで使用するすべてのリテラル数値を倍精度浮動小数点数として解釈します。
詳細に関しては以下のサイドを参照してください。
https://www.ibm.com/docs/ja/odm/8.11.1?topic=rulesets-rule-engine-comparison
コンパイルおよび実行の違い
意思決定エンジンは、ルール成果物をコンパイルして、Java バイトコードに変換されたときに実行可能になるコンパイル済みの最適化されたコードを含むアーカイブにします。
一方、クラシック・ルール・エンジンでビルドされたルール・セットには、コンパイルと最適化の前に構文解析が必要なテキスト・ファイルが含まれています。 ルール・セットのロード時に、コードの構文解析、コンパイル、および最適化を行います。
したがって、意思決定エンジンでのルール・セットのロードがより速くなります。 すべてのコードは既に (中間コードまたは Java バイトコードに) コンパイルされ、ルール実行用に完全に最適化されています。
以下の図は、クラシック・ルール・エンジンと意思決定エンジンのコンパイルと実行のプロセスを示しています。

クラッシックエンジンと意思決定エンジンの違い

意思決定エンジンの制約事項

意思決定エンジンの制限のなかで注意すべき項目は意思決定表です。
クラッシックエンジンの意思決定表は1行で1ルールとみなされますが、意思決定エンジンの意思決定表は表全体で1つのルールとみなされます。また全てのオブジェクトが存在している必要があります。
※同じシナリオデータでも、クラッシックエンジンではエラーとならないケースでも、意思決定エンジンではエラーになるケースもあります。
クラッシックエンジンから意思決定エンジンへ移行する場合は、十分なシナリオテストなどでの検証作業が重要です。
以下の点に注意をしながら安全な移行を実施してください。
・同一パッケージないで実行されてるケースでは実行の順番が変わる可能性があります。
・テクニカルルールを使用している場合にはIRLとARLの違いを十分に確認してください。
・パラメータの初期値を確認してください。BOMの項目だけではなく、変数セットやルールフローの初期アクション/終了アクションで使用されている項目に関しても確認が必要です。