我正在尝试按照here找到的示例来解释如何使用Xrm.Navigation.openForm
方法为新实体打开CRM表单。
我的目标实体有多个表单,我正在尝试在entityFormOptions
对象中指定表单ID,如上面的链接所述。我在这里复制了相关的文字(相关的行以粗体显示):
entityFormOptions
用于打开表单的实体表单选项。该 object包含以下属性:
- cmdbar :(可选)布尔值。指示是否显示命令栏。如果未指定此参数,则默认显示命令栏。
- createFromEntity :(可选)查找。指定一个记录,该记录将根据映射的属性值提供默认值。查找对象具有以下String属性:entityType,id和name(可选)。
- entityId :(可选)字符串。要显示表单的实体记录的ID。
- entityName :(可选)字符串。显示表单的实体的逻辑名称。
- formId :(可选)字符串。要显示的表单实例的ID 。
- height :(可选)数字。要以像素显示的窗体窗口的高度。
- navBar :(可选)字符串。控制是否显示导航栏以及是否可以使用应用程序导航 站点地图中定义的区域和子区域。有效值为:“on”, “off”或“entity”。
然而,这对我来说似乎不起作用。
我的表单ID是375DE297-C0AF-4711-A811-5F1663FAE5DA
这是我的代码:
var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
entityFormOptions["formId"] = "375DE297-C0AF-4711-A811-5F1663FAE5DA";
Xrm.Navigation.openForm(entityFormOptions);
新实体表格打开;但是它使用的是默认格式,而不是指定的格式。
我作为系统管理员运行,并且我已确认我可以访问指定实体的所有表单,因此我认为这不是表单安全问题。
有没有人尝试过这种在Dynamics 365中打开表单的方法?
答案 0 :(得分:1)
这似乎是文档中的错误或Dynamics中的错误。
之前的实现(v8及之前版本)在参数对象中使用 formid :https://msdn.microsoft.com/en-us/library/jj602956.aspx#openEntityForm
尽管当前的文档声明必须在entityFormOptions中设置formId,但它实际上并未受到尊重。但是当你把它放到好的旧形式参数时,它会很荣幸。
这就是诀窍:
var entityFormOptions = {};
entityFormOptions["entityName"] = "contact";
var formParameters = {};
formParameters ["formid"] = "375DE297-C0AF-4711-A811-5F1663FAE5DA";
Xrm.Navigation.openForm(entityFormOptions, formParameters);
P.S。请注意小写“formid”。
答案 1 :(得分:1)
我们还可以使用以下代码打开特定的实体表单:
var entityFormOptions = {};
entityFormOptions["entityName"] = "nrw_contact";//Logical name of the entity
entityFormOptions["entityId"] = "nrw_contact_ID"; //ID of the entity record
entityFormOptions["formId"] = "CF8D885B-256D-43E6-8776-CBBB7AA88EF5"; //FormId
Xrm.Navigation.openForm(entityFormOptions);
请参考此链接以获取更多详细信息:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-navigation/openform
答案 2 :(得分:1)