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.
Out of the box, Clarify defines properties for Object ID and for Database ID.
Looking at the Object ID properties, we see:
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.
Looking at the Database ID properties, we see:
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:
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:
Again, no confusion.
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.