1

我一直在以下帖子中使用该技术:

Xrm.Navigation.openForm 不尊重 formid

这在经典界面中一直运行良好。

我已将我的 JavaScript 更新为以下内容:

function OpenSpecificForm(primaryControl)
    {
        const FORMID = "A696976B-EA8A-42F3-B4DC-F35DC9204D58";                      

        var formContext       = primaryControl;
        var parameters        = { formid: FORMID };
        var entityFormOptions = {};
        entityFormOptions["entityName"] = "new_entity_name";

        var recordId = formContext.data.entity.getId();                    
        var recordName   = formContext.getAttribute("new_name").getValue();    

        if (recordId != null)   { parameters["new_targetentityfieldid"] = recordId; }
        if (recordName != null) { parameters["new_targetentityfieldname"] = recordName; }

        Xrm.Navigation.openForm(entityFormOptions, parameters);
    }

并设置功能区工作台如下:

客户关系管理参数

此代码在经典 UI 中继续按预期工作,但在新的统一接口中似乎不起作用。实体表单打开但打开 CRM 记住的最后一个,而不是我在 formId 中指定的那个。

有没有人设法在新 UI 中打开特定表单?

4

1 回答 1

0

我可以看到您的代码存在一些潜在问题。

第一个与如何生成表单上下文有关,因为它实际上需要使用 getFormContext 方法(文档似乎错误)从primaryControl对象中获取:

var formContext = primaryControl.getFormContext();

第二个是参数是formId参数名称,根据文档应该使用大写I编写。这可能没有问题,但请记住json规范声明如下:

客户端和服务器之间交换的所有成员名称被认为是任何类型的匹配都应该被认为是区分大小写的。可以假设术语功能、方法和过程是可以互换的。

于 2018-11-21T14:33:20.350 回答