ODM Repository Analysis Result

Run by rtsAdmin on Sunday, August 30, 2020 at 4:55 PM, against http://localhost:9090/teamserver (datasource default).

Findings Summary

A total of 25 notable items have been found and are detailed below.

Group using fine-grained permissions 🔃 

Some user groups are associated with fine-grained permissions on repository artifacts (for instance, the custom group UserGroup defines 1 such permissions). These fine-grained permissions are deprecated in ODM 8.10.0. The migration path is to rely on the assigned authors, testers and approvers in the release and activities from the Governance Framework.

1 occurence found


Decision tree defined 🔃 

Some rule projects are using Decision Trees (for example, sample decision tree in project ota-test-governed-rules). Decision Trees have been deprecated since ODM version 8.8.1. You can convert them into sparse Decision Tables or a collection of Action Rules, one per leaf in the Decision Tree.

1 occurence found


Business rule template defined 🔃 

Templates for Action Rules and or Decision Tables, such as template sample template in project ota-test-governed-rules, are deprecated since ODM version 8.8.1. Templates cannot be used in the Business Console of Decision Center. It is thus important to avoid using them.

1 occurence found


B2X code using CRE API classes 🔃 

The B2X code for some BOM members seems to be using deprecated CRE API classes which are not usable with the Decision Engine (e.g. IlrContext). One example is com.sample.Person.printInContext1 in project ota-test-cre-rules.

2 occurences found


Project using CRE 🔃 

The use of the Classic Rule Engine (CRE) was detected in some of the rule projects (see your project loanvalidation-rules, for example). The CRE is deprecated since ODM version 8.9.0. Migration to the more efficient Decision Engine is recommended.

2 occurence found


Classic rule projects 🔃 

Some rule projects are organized using Classic Rule Projects (see your project loanvalidation-rules, for example). Classic Rule Projects are deprecated since ODM version 8.8.0. It is recommended that you migrate to projects organized as Decision Services. ODM provides an automated migration tool that will help you perform that project migration.

1 occurence found


BOM with external domain provider 

Dynamic domains associated with external data sources (reference to a database or web service) such as derbyDataBaseDomainProvider used in a BOM entry from project bomdomainpopulate-rules, cannot be used with ODM on Cloud.

1 occurence found


BOM with valueEditor 

A BOM entry for project Value Editor Service defines a valueEditor property that points to the class sample.myeditor.editor. This entails the repackaging of the Decision Center EAR, which is not supported for ODM on Cloud.

1 occurence found


BOM with valueInfo 

A BOM entry for project bomdomainpopulate-rules defines a valueInfo property that points to the class ilog.rules.studio.samples.bomdomainpopulate.Stock. This entails the repackaging of the Decision Center EAR, which is not supported for ODM on Cloud.

1 occurence found


Smart Folder defined 🔃

Some rule projects are using Smart Folders (for example, Deployable Rules in project Miniloan Service). Decision Trees have been deprecated since ODM version 8.10.0.

1 occurence found


Business rule using priority 💁

Some rules found in rule projects such as Loan Validation Determination, are using rule priorities. While there is no issue with using rule priorities, they can make rule maintenance more difficult, especially for business users, as they can be easily overlooked, and make the understanding of the rules execution more complex. Relying on a rule flow for orchestration can sometime be a better option.

12 occurences found


Verbalization in Java format 💁

BOM member verbalizations should be in natural language to make rules readable and maintainable. BOM member com.sample.Person.askAbout(java.lang.String) in project ota-test-governed-rules for example, uses a Java-like verbalization, which should be avoided.

1 occurence found


B2X code too long 💁

The B2X code for some BOM members is too long. B2X code should ideally be one or two simple statements. If longer code is needed, it is better to define and maintain it as a XOM member. One example is com.sample.Person.printInContext2 in project ota-test-cre-rules.

1 occurence found


Project defines BOM and rules 💁

It is a good practice to define the BOM and the rules in separate rule projects (see project Miniloan Service which defines both a BOM entry miniloan and rules).

7 occurences found


Project with large number of branches 💁

The number of project branches and baselines in the Decision Center repository can quickly build up, reducing Decision Center's performances and taking up significant disk space. For example, we have detected that your project Loan Validation Service has 6 branches in the repository. You can use the ODM archive tool available in ODM version 8.9.2 to easily archive old project branches.

2 occurences found


Rule using 'else' statement 💁

Some Action Rules are using the 'else' statement, which can sometimes make rules difficult to debug and to maintain by Business Users. One example is rule checkName in project Loan Validation Check.

8 occurences found


Rule under root package 💁

It is a good practice to define rules under a rule package, instead of directly under the root rule folder. See rule rule under root in project ota-test-governed-rules which is defined directly under the root folder.

1 occurence found


Flow using different algorithms 💁

All the rule tasks in a given rule flow should use the same algorithm whenever possible. For example, tasks in miniloan from project Miniloan Service are using different algorithms: check whether this is needed.

3 occurences found


Task using Rete algorithm 💁

Rete algorithm should be selected when inference is required in rule execution. Check its use is appropriate, for example in rule flow computationFlow from project Loan Validation Scoring.

5 occurences found


Spelling error in verbalization 💁

Possible spelling errors were detected in the verbalization of some BOM members, for example in project Value Editor Service.

2 occurences found


Multiple rules with same name 💁

Multiple rules, under different packages, have the same name. For example, in project ota-test-governed-rules, there are multiple rules with the same name vague name.

2 occurences found


Task using Exit Criteria 💁

The use of Exit Criteria other than the default in rule tasks (see flow test flow in project ota-test-governed-rules for example) may make rule maintenance more delicate. Review its use with care.

1 occurence found


Task using Sequential algorithm 💁

FastPath is now the default algorithm: you may want to validate the need for the Sequential algorithm (e.g. in rule flow test flow from project ota-test-governed-rules).


Business rule defined from template 💁

Some Action Rule or Decision Tables (for example, sample using template in project ota-test-governed-rules) are defined based on templates, which are deprecated since ODM version 8.8.1. Note that these rules are not bound to follow their template when edited in the Business Console.

1 occurence found


Technical rule defined 💁

Technical Rules, such as initialize flow in project ota-test-governed-rules are not visible in the Business Console by default, and can usually be rewritten as Action Rules, making them more readable and maintainable, even for technical users.

1 occurence found


Findings Details

You can copy the information below and paste it in a spreadsheet to sort and filter.

What Type Where Found Which Branch Which Artifact N/A for SaaS Recommendation Deprecation
Rule Using Else Loan Validation Check [current] checkName Y
Rule Using Else Loan Validation Check [current] checkAge Y
Rule Using Else Loan Validation Check [current] checkSSNdigits Y
Rule Using Else Loan Validation Check [current] checkZipcode Y
Rule Using Else Loan Validation Check [current] checkSSNareanumber Y
Rule Using Else Loan Validation Determination [current] approval Y
Rule Priorities Loan Validation Determination [current] grade Y
Rule Priorities Loan Validation Determination [current] approval Y
Rule Priorities Loan Validation Determination [current] defaultInsurance Y
Using Rete Loan Validation Scoring [current] computationFlow Y
Rule Priorities Loan Validation Scoring [current] repayment Y
Rule Priorities Loan Validation Scoring [current] initialCorporateScore Y
Using Rete Loan Validation Service [current] loanvalidation Y
BOM with Rules Miniloan Service [current] miniloan Y
Smart Folders Miniloan Service [current] Deployable Rules Y
Using Different Algorithms Miniloan Service [current] miniloan Y
Using Rete Miniloan Service [current] miniloan Y
BOM with Rules Value Editor Service [current] purchase Y
Rule Using Else Value Editor Service [current] effective offers Y
Rule Priorities Value Editor Service [current] welcome Y
Rule Priorities Value Editor Service [current] effective offers Y
BOM with Rules bomdomainpopulate-rules [current] domains Y
BOM with Rules bomdomainpopulate-rules [current] model Y
BOM with Rules ota-test-cre-rules [current] model Y
BOM with Rules ota-test-governed-rules Spring Release model for governed project Y
Exit Criteria ota-test-governed-rules Spring Release test flow Y
Using Different Algorithms ota-test-governed-rules Spring Release test flow Y
Using Rete ota-test-governed-rules Spring Release test flow Y
Using Sequential ota-test-governed-rules Spring Release test flow Y
Decision Trees ota-test-governed-rules Spring Release sample decision tree Y Y
Rule Templates ota-test-governed-rules Spring Release sample template Y Y
Technical Rules ota-test-governed-rules Spring Release initialize flow Y
Rule Under Root ota-test-governed-rules Spring Release rule under root Y
Same Rule Name ota-test-governed-rules Spring Release vague name Y
Same Rule Name ota-test-governed-rules Spring Release vague name Y
Rules from Template ota-test-governed-rules Spring Release sample using template Y
BOM with Rules loanvalidation-rules [current] model Y
Using Different Algorithms loanvalidation-rules [current] loanvalidation Y
Using Rete loanvalidation-rules [current] loanvalidation Y
Rule Using Else loanvalidation-rules [current] approval Y
Rule Priorities loanvalidation-rules [current] grade Y
Rule Priorities loanvalidation-rules [current] repayment Y
Rule Priorities loanvalidation-rules [current] initialCorporateScore Y
Rule Priorities loanvalidation-rules [current] approval Y
Rule Priorities loanvalidation-rules [current] defaultInsurance Y
Branch Archiving Loan Validation Service 6 Y
Classic Rule Engine loanvalidation-rules Y Y
Classic Rule Projects loanvalidation-rules Y Y
Branch Archiving ota-test-governed-rules 4 Y
Classic Rule Engine ota-test-cre-rules Y Y
Fine Grained Permissions UserGroup 1 Y Y
Using Value Editor Value Editor Service [current] sample.myeditor.editor Y
Verbalizations Spelling Value Editor Service [current] impl Y
External Domain Provider bomdomainpopulate-rules [current] derbyDataBaseDomainProvider Y
Using Value Info bomdomainpopulate-rules [current] ilog.rules.studio.samples.bomdomainpopulate.Stock Y
B2X Using CRE API ota-test-cre-rules [current] com.sample.Person.printInContext1 Y Y
B2X Using CRE API ota-test-cre-rules [current] com.sample.Person.printInContext2 Y Y
B2X Code Size ota-test-cre-rules [current] com.sample.Person.printInContext2 Y
Verbalizations Spelling ota-test-cre-rules [current] printincontext Y
Java Verbalization ota-test-governed-rules Spring Release com.sample.Person.askAbout(java.lang.String) Y