在Dynamics CRM统一界面中,OnSave事件不起作用

时间:2019-12-17 11:55:38

标签: dynamics-crm dynamics-crm-365 dynamics-crm-uci

我有以下OnSave表单事件的事件处理程序:

function saveEntityForm(executionContext) {
   executionContext.getFormContext().data.save().then();
}

当我单击表单上的“保存”按钮时,弹出带有以下文本的信息:

  

保存中

     

请等待保存完成,错误代码:0x83215603

我正在使用统一接口。

发生此问题的原因可能是什么?如何解决?

2 个答案:

答案 0 :(得分:0)

我自己为自定义代码添加了setTimeout,而不是使用如下的显式保存方法解决了该问题:

$cast

答案 1 :(得分:0)

仅当您在表单已保存的情况下尝试保存时,才会出现“请稍等,请保存”-表单不允许同时进行两次保存。这就是调用setTimeout起作用的原因-它将延迟调用save,并且到那时,原始保存将完成。

但是,请注意,这会影响性能,并且如果在网络速度较慢的情况下,甚至可能无法正常工作,因为在XXX秒后可能无法保存表格!

如果此代码是在onsave事件处理程序中执行的,则应先调用preventDefault()来阻止默认保存的发生,然后再调用executionContext.getFormContext()。data.save()将按预期工作(请参见{ {3}})

如果此代码在特定控件的onchange处理程序中执行,则可以尝试调用isDefaultPrevented或getSaveMode以确定是否保存表单,如果是,则调用save() https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/save-event-arguments/preventdefault