Migrating from classic rule engine to decision engine

The classic rule engine is deprecated, so you must migrate your rule projects to use the decision engine. New rule projects in a decision service automatically use the decision engine.

About this task

The decision engine works in a similar way to the classic rule engine, although it has differences in the compilation and how it loads rules. You must adjust the rule project content to work with the decision engine.

The decision engine does not rely on ILOG Rule Language (IRL). In Rule Designer, the IRL tab for BAL rules and ruleflows in projects that use the decision engine is not available in the rule editor. In the BOM editor, you can work directly with ARL to define the BOM-to-XOM mapping for rule projects that use the decision engine.

The classic rule engine uses a configuration file (engine.conf) to configure its resource settings. The decision engine does not use any of these properties, and they are ignored at run time.

Procedure

  1. Compare the two engines and study the incompatibility of content in your projects with the decision engine. Further reading can be found in the following topics:
  2. Change the Rule Engine property of the rule project to Decision engine instead of Classic rule engine. If some of the methods in the generated .b2xa file have no body, you might need to add these methods manually. For convenience, the old code is kept but commented out. You must code these missing lines in ARL. If the project used the classic rule engine API in the XOM, you must also update the XOM to replace or remove these methods. See Accessing decision engine and related artifacts from ARL mapping code.
  3. If a ruleflow in a rule package contains IRL code that references variables of the default package, verify that these variables are imported in the Import tab of the ruleflow properties with the use <variable> declaration.
  4. Convert your Java client projects to use the decision engine API. Use the Java Project for Rules and the template that is provided to instantiate a decision engine. For more information, see Mapping between classic rule engine and decision engine API.