javascript - CRM 2011 保存后打开新窗口

标签 javascript dynamics-crm-2011 dynamics-crm

本质上我需要的是在保存记录后运行一些 JavaScript。这将从已由插件填充的字段中获取一个 guid。我的代码看起来像;

    Xrm.Page.data.entity.save();

    var newguid = Xrm.Page.getAttribute("new_copyguid").getValue();
    Xrm.Utility.openEntityForm("new_myentity", newguid);

问题是代码运行超过了对 save() 的调用,并在插件填充“new_copyguid”字段之前继续执行。有没有办法等待插件完成后再继续 javascript?我尝试过 AddOnSave() 但没有成功。任何 JavaScript 回调似乎都会在插件完成之前执行。该插件设置为同步运行。

我正在通过表单上的按钮执行此 JavaScript。该按钮设置字段值,然后保存记录,触发插件。该按钮是一个“复制实体”按钮,用于创建克隆。我需要在浏览器中打开这条新记录。

我读到这也不起作用,因为它发生在保存之前;

    Xrm.Page.data.refresh(save).then(successCallback, errorCallback);

任何指针都会很棒!

最佳答案

我认为您必须在 OnLoad 部分运行您的逻辑。保存应该强制刷新,并且您的加载逻辑将再次运行。您需要进行一些检查以查看修改日期是否在特定时间范围内。

其他选项是您通过休息调用或 Soap 调用手动执行更新,然后您可以在另一个调用中从插件读取值。

关于javascript - CRM 2011 保存后打开新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29824269/

相关文章:

css - 来自功能区的 Dynamics CRM 2011 模式 Web 资源按钮大小不正确(仅限 IE)

javascript - 使用扩展的 REST 函数,例如 Dynamics CRM 中的 contains

c# - 是否可以在一个 CRM 调用中查询多个单独的实体?

php - 使用 confirm() 后,在 'ok' 上运行 PHP 代码

javascript - 使用 useState() Hook 更新后 JSX 元素消失

javascript - 在 MS CRM 2013 中的何处使用业务规则

dynamics-crm-2011 - 我可以限制我的 CRM 工作流程由某些用户执行吗

dynamics-crm-2011 - "Plug-in assembly fullnames must be unique"关于更新插件注册

javascript - 追加文本 Javascript

JavaScript 对象创建模式