Archive
D 365 – Set Recommendation on a field using JScript/Business Rule
In this article I am going to detail the steps to set a notification (i.e., Recommendation/Error) to a particular control on the form.
Notifications can be of 2 types; Error or Recommendation.
- If an ‘Error’ notification set, a red “X” icon appears next to the control. Setting an error notification on a control blocks saving the form.
- If a ‘Recommendation’ notification set, an “i” icon appears next to the control. A recommendation notification does not block saving the form.
To explain this better, I am taking below scenario
- If ‘Account Name’ is ‘Microsoft’ recommend to set ‘Ticker Symbol’ to ‘MSFT’
- From the recommendation, if I click on ‘Apply’, set ‘Ticker Symbol’ to ‘MSFT’
Setting Recommendation using ‘Business Rule’:
Create a new ‘Business Rule’ with below components
- Add a “Condition” flow with condition (If ‘Account Name’ = ‘Microsoft’ AND ‘Ticker Symbol’ <> MSFT)
- If condition met, add ‘Recommendation’ action
- Under ‘Recommendation’ action, add sub Action, set ‘Ticker Symbol’ field to ‘MSFT’
Setting Recommendation from JScript:
Register this function on form ‘onload’ and ‘onchange’ of ‘Account Name’ field.
function setRecommendationOnAccountName() {
var ctrlAccountName = Xrm.Page.getControl(‘name’);
var accountName = Xrm.Page.data.entity.attributes.get(‘name’);
var tickerSymbol = Xrm.Page.data.entity.attributes.get(‘tickersymbol’);// Check condition (If ‘Account Name’ = ‘Microsoft’ AND ‘Ticker Symbol’ <> MSFT)
if (accountName.getValue(‘Microsoft’) && tickerSymbol.getValue() != ‘MSFT’) {
var actionCollection = {
message: ‘Set the Ticker Symbol to MSFT?’,
actions: null
};// Add sub Action, set ‘Ticker Symbol’ field to ‘MSFT’ and clear Recommendation
actionCollection.actions = [function () {
tickerSymbol.setValue(‘MSFT’);
ctrlAccountName.clearNotification(‘notify_account_name’);
}];// Set the Notification to ‘Account Name’ control
ctrlAccountName.addNotification({
messages: [‘Set Ticker Symbol’],
notificationLevel: ‘RECOMMENDATION’,
uniqueId: ‘notify_account_name’,
actions: [actionCollection]
});
}
}
Notes:
- notificationLevel : Valid values are either ERROR or RECOMMENDATION. If nothing specified in object definition, it is set to ERROR by default.
🙂