Writing rulebases requires not just an awareness of the source material, it requires an awareness in many cases of the context of the delivery. For example, if a rulebase is intended to be used for an interview that will be undertaken by a human being, then there are several things the rulewriter needs to think about.
Substitution and Identifying Attributes
Would the customer like to receive further information?
In the above example of a boolean Attribute, clearly the phrase is simple to understand. magine you are interviewing someone and you are asking them the question. It would make more sense to ask (probably)
Would Richard like to receive further information?
The use of the name of the interviewee is both friendly and advantageous. It can be implemented by using Substitution on the Attribute that we are referring to. In the example below it might be the “the customer” Attribute.
Policy Automation will automatically substitute the actual value of the Attribute if it is defined using the above option and it is defined as the identifying Attribute for an Entity as shown in the next image.
This means that in the Debug window for instance you get to see the Identifying Attribute instead of “the customer 1”, like in the example below
Rule writers who are building Screens for their interview can also use substitution for other Attributes by referencing the public name, such as
Thank you, %firstname%, here is your receipt: %receiptnumber% .
This can also be used in Translation files as well.
Now however imagine you are the customer. Wouldn’t it make more sense to see
Do you require a receipt?
But suppose you have gone to the trouble of writing your rules already, with the syntax above using “the customer”. There is absolutely no need to rewrite the rules, you just need to take advantage of the feature in the Project Properties as shown below. In order for this to work, normal substitution needs to be activated first, then you can select the Attribute to be generated in the 2nd person as well.
As a result, whether it is in the debugger or elsewhere, you will see the relevant Attribute as in the example below. For clarity, the two images first show the Attribute Text as it was written, and then the generated second person text.
Until next time!