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.

Advertisements

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 )

Google+ photo

You are commenting using your Google+ 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 )

w

Connecting to %s

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