使用JavaScript还原Dynamics CRM表单更改(按用户)

使用JavaScript还原Dynamics CRM表单更改(按用户),javascript,dynamics-crm-2011,dynamics-crm,Javascript,Dynamics Crm 2011,Dynamics Crm,只是想知道如何还原用户使用Javascript在Dynamics CRM中所做的更改。例如,如果用户尝试为实体a创建新记录,并将实体a表单上的属性a的值设置为X,然后单击“保存”,我需要JavaScript显示一条消息,说明用户无法创建X类型,并阻止用户保存表单。更新时的情况与此相同当用户尝试将属性A设置为X并单击保存时,JavaScript应显示一条消息,防止发生保存,并在用户更改之前回滚到所有属性的先前值。您需要在OnSave事件中调用以下方法 在PreventOnSave方法中,确保定义了

只是想知道如何还原用户使用Javascript在Dynamics CRM中所做的更改。例如,如果用户尝试为实体a创建新记录,并将实体a表单上的属性a的值设置为X,然后单击“保存”,我需要JavaScript显示一条消息,说明用户无法创建X类型,并阻止用户保存表单。更新时的情况与此相同当用户尝试将属性A设置为X并单击保存时,JavaScript应显示一条消息,防止发生保存,并在用户更改之前回滚到所有属性的先前值。

您需要在OnSave事件中调用以下方法

在PreventOnSave方法中,确保定义了用于接收执行对象的参数

function PreventOnSave(ExecutionObj){
        // The getEventArgs() method returns an object with methods to manage the Save event.
        // The preventDefault() method cancels the save operation
        ExecutionObj.getEventArgs().preventDefault();
    }

Microsoft reference

我不想在保存时捕捉错误,而是在加载时通过javascript禁用该字段。这样,您的用户就不会尝试更新他们无法更新的内容。

正如Daryl所说,如果用户根本不应该更改字段,请将该字段设置为表单的只读OnLoad()

正如Shanks所指出的,您还可以捕获OnSave()中的所有更改,在这里您可以通知用户表单中所有不允许的更改并采取措施


第三个选项是为每个字段附加一个受支持的OnChange(),并处理每个不允许的字段编辑

另一个选项是捕获字段OnChange()中的异常,通知用户异常,并将字段恢复到以前的值感谢大家。用户将更改字段,但仅更改为某些值。