Xrm.Navigation.openForm 不尊重强大
Xrm.Navigation.openForm not honouring formid
我正在尝试按照找到的示例 here 解释如何使用 Xrm.Navigation.openForm
方法为新实体打开 CRM 表单。
我的目标实体有多个表单,我正尝试在 entityFormOptions
对象中指定表单 ID,如上文 link 中所述。我在这里复制了相关文本(相关行以粗体显示):
entityFormOptions
Entity form options for opening the form. The
object contains the following attributes:
- cmdbar: (Optional) Boolean. Indicates whether to display the command bar. If you do not specify this parameter, the command bar is displayed by default.
- createFromEntity: (Optional) Lookup. Designates a record that will provide default values based on mapped attribute values. The lookup object has the following String properties: entityType, id, and name (optional).
- entityId: (Optional) String. ID of the entity record to display the form for.
- entityName: (Optional) String. Logical name of the entity to display the form for.
- formId: (Optional) String. ID of the form instance to be displayed.
- height: (Optional) Number. Height of the form window to be displayed in pixels.
- navBar: (Optional) String. Controls whether the navigation bar is displayed and whether application navigation is available using the
areas and subareas defined in the sitemap. Valid values are: "on",
"off", or "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中打开表单的方法吗?
这看起来像是文档中的错误或 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".
我们也可以使用下面的代码打开一个特定的实体表单:
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);
请参阅此 link 了解更多详情:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-navigation/openform
这可能有点晚,但希望对其他人有所帮助。
文档是正确的。您可以提供 formId,如图所示。您只需要确保该表单已添加到 App Designer 中的模型驱动应用程序(您通过在右侧面板上选中它来添加表单)
var pageInput = {
pageType: "entityrecord",
entityName:"icon_case",
entityId: recordId,
formId: v_formId
};
我正在尝试按照找到的示例 here 解释如何使用 Xrm.Navigation.openForm
方法为新实体打开 CRM 表单。
我的目标实体有多个表单,我正尝试在 entityFormOptions
对象中指定表单 ID,如上文 link 中所述。我在这里复制了相关文本(相关行以粗体显示):
entityFormOptions
Entity form options for opening the form. The object contains the following attributes:
- cmdbar: (Optional) Boolean. Indicates whether to display the command bar. If you do not specify this parameter, the command bar is displayed by default.
- createFromEntity: (Optional) Lookup. Designates a record that will provide default values based on mapped attribute values. The lookup object has the following String properties: entityType, id, and name (optional).
- entityId: (Optional) String. ID of the entity record to display the form for.
- entityName: (Optional) String. Logical name of the entity to display the form for.
- formId: (Optional) String. ID of the form instance to be displayed.
- height: (Optional) Number. Height of the form window to be displayed in pixels.
- navBar: (Optional) String. Controls whether the navigation bar is displayed and whether application navigation is available using the areas and subareas defined in the sitemap. Valid values are: "on", "off", or "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中打开表单的方法吗?
这看起来像是文档中的错误或 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".
我们也可以使用下面的代码打开一个特定的实体表单:
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);
请参阅此 link 了解更多详情:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/xrm-navigation/openform
这可能有点晚,但希望对其他人有所帮助。
文档是正确的。您可以提供 formId,如图所示。您只需要确保该表单已添加到 App Designer 中的模型驱动应用程序(您通过在右侧面板上选中它来添加表单)
var pageInput = {
pageType: "entityrecord",
entityName:"icon_case",
entityId: recordId,
formId: v_formId
};