Pro Tip: Better Rule Property Names

Rule properties are used mainly within business rules. They’re used within business rule conditions, and also in business rule messages.

We also use them as part of Dovetail Task Manager, and within Canned Responses.

Out of the box, Clarify defines properties for Object ID and for Database ID.


Object ID

Looking at the Object ID properties, we see:

Manage Rule Properties - Object ID

Looking at the path_name for each of these, notice that most of them map to the id_number field, but some map to the objid field. Confusing.

For Case and Subcase, Object ID means the id_number. But for Part Requests, it means the objid. Ugh.


Database ID

Looking at the Database ID properties, we see:

Manage Rule Properties - Database ID

Notice that they all map to the objid field.


So between Object ID and Database ID, what we have is a mix of objid and id_number being used.

I find this confusing.

For example, when I’m creating a business rule, and I want to include the Case ID number in the message, I always have to stop and think – should I use Object ID? Database ID? Something else?

If I want the objid field, I immediately think of Object ID – but that’s incorrect. It would be Database ID. Yuck.


An easy fix

There’s a simple way to eliminate this confusion – add your own rule properties with names that make sense.

For example, I like to add a rule property for Case ID, which maps to the id_number field, as shown here:

Rule Property - Case ID

Personally, when I see Case ID, there’s not any confusion. I know exactly what that is.


Similarly, I like to create one for objid:

Rule Property - objid

Again, no confusion.


Ubiquitous Language

In software development, we use the term “Ubiquitous Language”.

Martin Fowler has this definition:

Ubiquitous Language is the term Eric Evans uses in Domain Driven Design for the practice of building up a common, rigorous language between developers and users.

I would recommend using ubitiquous language when defining your rule properties.

I used Case ID, but you may use Case Number, Case ID Number, or something else entirely.

Regardless, if your rule property names follow the common language used within your organization, the property names will make much more sense to everyone.



An additional tip – don’t rename the baseline ones.

You could rename the Object ID rule property to Case ID – but this would break anything that references Object ID.

Instead, I would recommend keeping the baseline one, and adding your own.



There you go – a simple little tip to eliminate some confusion around rule properties. Hope you dig it.

Rock on.