【问题标题】:Not able to get the record GUID in JavaScript code on save of Quick Create form保存快速创建表单时无法在 JavaScript 代码中获取记录 GUID
【发布时间】:2023-03-04 08:26:01
【问题描述】:

我在案例实体的快速创建表单的保存事件中遇到问题。在保存事件中,我无法在 JavaScript 代码中获取记录 GUID。 我们的要求是当用户点击案例的快速创建表单上的保存按钮时,我们希望将用户重定向到新创建的案例记录。

我们在快速创建表单的保存事件中附加了下面的 Javascript 函数。此代码在 30 天试用实例之一上运行良好,但在客户端开发 CRM 实例上运行不佳。

setTimeout(function () {
    var formContext = executionContext.getFormContext();
    var caseId = formContext.data.entity.getId();
    caseId = caseId.replace("{", "").replace("}", "");

    var entityFormOptions = {};
    entityFormOptions["entityName"] = "incident";
    entityFormOptions["entityId"] = caseId;

    Xrm.Navigation.openForm(entityFormOptions).then(
        function (success) {
          console.log(success);
        },
        function (error) {
          console.log(error);
        });
  }, 1000);

【问题讨论】:

  • 客户端实例上的 CRM 版本是多少?顺便说一句,快速创建表单在保存时会自行关闭。因此,如果它会在一秒钟之前自行关闭,那么您的脚本将不会运行。
  • @KhadimAli 我同意,我昨天尝试自己在保存快速创建时添加 Js,但由于快速创建会自行关闭,因此上下文会在一段时间内丢失。我正在使用 UCI。
  • 你最后得到了什么?

标签: javascript dynamics-crm


【解决方案1】:

快速创建表单的目的是在不脱离当前表单/记录的情况下弹出数据输入。从仪表板、子网格、主导航栏、查找等不同的地方打开相同的 QC 表单,并允许用户继续正在进行的工作。在所有这些地方 - 仅从主导航,保存后 - 系统将提示您导航到该记录或创建另一条记录的选项。 This is by design.

如果您想导航到该记录而不考虑来源,您可以尝试一些类似您的脚本,但您会破坏 OOB 管道流程。您可能会做一些不受支持的事情,但不建议这样做。我从未尝试过,但您可以从onSave 事件添加一个函数,使用eventArgs.preventDefault 我们可以停止OOB 保存,然后通过将值从QC 预填充到主窗体打开完整主窗体,然后在窗体加载时将其保存。

你为什么不打开主窗体本身,而不是所有这些痛苦。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多