Учитывая, что вы работаете с последней онлайн-версией Dynamics, я бы порекомендовал вам пользователя addnotification с контекстом выполнения.
Вот код, который вам нужен, необходимо настроить в соответствии с вашими потребностями, Пример показывает тип уведомления в соответствии с рекомендациями, но вы можете использовать Error, чтобы форма не сохраняла и отображала ошибку.
function addTickerSymbolRecommendation(executionContext) {
var formContext = executionContext.getFormContext();
var myControl = formContext.getControl('name');
var accountName = formContext.data.entity.attributes.get('name');
var tickerSymbol = formContext.data.entity.attributes.get('tickersymbol');
if (accountName.getValue() == 'Microsoft' && tickerSymbol.getValue() != 'MSFT') {
var actionCollection = {
message: 'Set the Ticker Symbol to MSFT?',
actions: null
};
actionCollection.actions = [function () {
tickerSymbol.setValue('MSFT');
myControl.clearNotification('my_unique_id');
}];
myControl.addNotification({
messages: ['Set Ticker Symbol'],
notificationLevel: 'RECOMMENDATION',
uniqueId: 'my_unique_id',
actions: [actionCollection]
});
}
else
console.log("Notification not set");
}