我有一个在创建时触发的联系人实体插件。然后它调用 WCF 服务并在后台 (MSSQL) 中创建一个新记录。同一实体有另一个插件,该插件在记录更新时触发。
我遇到的问题是,如果我创建一个新记录并在一分钟内更改详细信息并尝试保存它,更新插件就会失败。这是因为 Create 插件仍在运行。 (而且我正在尝试更新的记录在后台数据库中仍然不存在)
当创建插件的状态不是完成或失败时,有没有办法禁用功能区中的“保存”或“保存并关闭”按钮?或者至少禁用它 120 秒,这样它就不会立即被点击?
内部部署的 CRM 2011 RU18。 (所有最终用户都被限制使用IE所以我可以使用JS)
提前谢谢你,
最佳答案
我的解决方案是让一些 JavaScript 在表单上等待并且在您的插件传递“完成”消息之前不允许它保存,在这种情况下可以保存表单。在您的插件代码接近尾声时,我会让它更新 JavaScript 会查看的表单上的值,如果未填充此字段,则不允许保存表单。
JavaScript 是简单的部分,使用 onSave 方法并确保将执行对象作为第一个参数传递,并假设您为插件创建字段 a bool
function preventSave(exobj)
{
var pluginFinished = Xrm.Page.getAttribute("pluginFinished");
if (pluginFinished.getValue() == false || pluginFinished.getValue() == null)
{
exobj.getEventArgs().preventDefault();
}
}
如果没有值或为空,JavaScript 将不允许保存表单。您可能希望在 preventDefault(阻止保存)之后提供一条消息,以提醒用户未发生保存。
希望对你有帮助
关于javascript - 在设定时间禁用/启用色带,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29630192/