Dynamics 365 自定义 javascript 在设置字段级通知后不会执行保存

Dynamics 365 custom javascript won't execute save after setting field level notification

当字段中的数据无效时,我设置了字段级通知。然后我将数据更改为有效的数据,但因为我已经设置了通知 onSave 不会被触发。

function ValidateFields(executionContext) {

console.log("Init");

var formContext = executionContext.getFormContext();

var bfenummer_value =  formContext.getAttribute("kk_ejerlav").getValue();
var bfenummer_control = formContext.getControl("kk_ejerlav");
var bfenummer_uniqueid = "bfenummer";

if(!isNumeric(bfenummer_value))
{
    bfenummer_control.setNotification("Angiv et tal mellem -2147483648 og 2147483647", bfenummer_uniqueid);
    console.log("Set " + isNumeric(bfenummer_value));

    // setTimeout(function () {
    //     bfenummer_control.clearNotification(bfenummer_uniqueid);            
    //     console.log("Clear " + isNumeric(bfenummer_value));
    // }, 1000);
}
else {
    bfenummer_control.clearNotification(bfenummer_uniqueid);            
    console.log("Clear " + isNumeric(bfenummer_value));
}

}

function isNumeric(value) {
  return /^-?\d+$/.test(value);
}

您需要运行“kk_ejerlav”字段的 OnChange 事件函数。
像这样:

function ejerlavChanged(executionContext){
    var formContext = executionContext.getFormContext();

    var bfenummer_value =  formContext.getAttribute("kk_ejerlav").getValue();
    var bfenummer_control = formContext.getControl("kk_ejerlav");
    var bfenummer_uniqueid = "bfenummer";

    if(isNumeric(bfenummer_value)){
        bfenummer_control.clearNotification(bfenummer_uniqueid);            
        console.log("Clear " + isNumeric(bfenummer_value));
    }
}

function isNumeric(value) {
  return /^-?\d+$/.test(value);
}