A Little Story From OpenRules Trenches

I’d like to share a little story from our recent consulting experience. Being in the midst of helping our client to deliver a large OpenRules-based banking system, we received an urgent request. The problem should be familiar to many businesses who deal with NAICS (the North American Industry Classification System). In our case, a client maintained one large Excel table that maps NAICS codes to different business activities. It looked as below:

NAICS1

The actual table had more than 1,000 rows with codes and 30+ columns  with different business categories. The request was relatively simple:

having a Java object “Customer” with a known NAICS code, we need to use the above table to define all business categories for this customer.

However, it came late in the evening and they needed a working solution in the morning!

Under time pressure, we considered two choices:

  1. Convert this table into a similar OpenRules Data table (also in Excel), read it into a Java collection using an existing instance of the OpenRulesEngine, and then write a simple Java method that will iterate through this collection by adding matched customer’s categories.
  2. Convert this table into a similar Rules table without writing new Java classes and methods.

We selected a more elegant second solution. We simply added the following 4 lines on the top of the existing table:

NAICS2

It effectively converted our initial table into an executable single-hit Rules table. Here is how it works. The condition C1

code.equals(customer.getNaicsCode())

simply compares a customer’s code with NAICS codes from the table, and when the first match is found, it executes all actions (marked as “x”) from the same row. The actions A2, A3, A4, … are written as below:

customer.addCategory($COLUMN_TITLE)

This Java snippet simply adds categories whose names are defined in the column titles – here we took an advantage of the predefined OpenRules macro $COLUMN_TITLE.

That was it! No further coding were required. No other changes in the initial NAICS table.

Conclusion. Of course, I could share examples of mush more complex problems addressed by OpenRules. But for me personally, a little story like this one is an another proof of the OpenRules maturity: over the years our product became a practical foundation for finding simple and elegant solutions for complex real-world decision management problems. Such solutions are usually governed by business analysts and are naturally integrated with the existing software.

One comment on “A Little Story From OpenRules Trenches

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.