我在以下帖子中一直在使用该技术:
Xrm.Navigation.openForm not honouring 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中指定的那个。
有人能在新用户界面中打开特定表单吗?
答案 0 :(得分:0)
我可以看到您的代码有一些潜在的问题。
第一个与表单上下文的生成有关,因为实际上需要使用primaryControl
对象的getFormContext方法(documentation似乎是错误的)获取表单上下文:
var formContext = primaryControl.getFormContext();
第二个参数是 formId 参数名,根据documenation应该使用大写字母I编写。这可能没问题,但是请记住{{ 3}}指出以下内容:
在客户端和服务器之间交换的所有成员名称是 考虑用于任何种类的匹配应视为 区分大小写。术语功能,方法和过程可以是 假定是可互换的。