使用 URL 打开窗体、视图、对话框和报表

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

URL 可寻址元素支持在其他应用程序中包含指向 Microsoft Dynamics 365 窗体、视图、对话和报表的链接。 这样,您就可以轻松扩展其他应用程序、报表或网站,以便用户无需切换应用程序即可查看信息和执行操作。

备注

  • URL 可寻址窗体、视图、对话和报表无法绕过 Microsoft Dynamics 365 安全检查。 只有基于其安全角色获得许可的 Microsoft Dynamics 365 用户才能访问他们所看到的数据和记录。

  • 当您以编程方式在应用程序中使用 Web 资源打开实体时,请使用 Xrm.Utility.openEntityForm。 请勿使用 window.open

  • 在应用程序外部,页面无法访问 Xrm.Utility.openEntityForm 功能,请使用 window.open 或链接打开实体的特定记录或窗体。 整个应用程序会为任何 更新的实体 打开。

本主题内容

URL 可寻址窗体和视图

  • Main.aspx 页面的查询字符串参数

  • 复制视图的 URL

  • 使用站点地图在应用程序导航中显示视图

使用 URL 打开对话流程

使用 URL 打开报表

URL 可寻址窗体和视图

所有实体窗体和视图都会显示在 main.aspx 页面中。 传递到此页面的查询字符串参数可控制将会显示的内容。 例如:

  • 要打开内部部署 Microsoft Dynamics 365 的新 account 实体记录表单:

    http://mycrm/myOrg/main.aspx?etn=account&pagetype=entityrecord
    
  • 要打开 Microsoft Dynamics 365 (online) 的 ID 为 {91330924-802A-4B0D-A900-34FD9D790829} 的 account 实体记录窗体:

    http://myorg.crm.dynamics.com/main.aspx?etn=account&pagetype=entityrecord&id=%7B91330924-802A-4B0D-A900-34FD9D790829%7D
    
  • 要打开 Microsoft Dynamics 365 (online) 的“结束的商机”视图:

    http://myorg.crm.dynamics.com/main.aspx?etn=opportunity&pagetype=entitylist&viewid=%7b00000000-0000-0000-00AA-000010003006%7d&viewtype=1039
    
  • 打开“可用联系人”视图查看 Microsoft Dynamics 365 (online) 是否有导航栏或工具栏。

    http://myorg.crm.dynamics.com/main.aspx?etn=contact&pagetype=entitylist&viewid={00000000-0000-0000-00AA-000010001004}&viewtype=1039&navbar=off&cmdbar=false
    

备注

在对话窗口中,不支持使用 showModalDialogshowModelessDialog 打开实体窗体。

不支持在嵌入到另一个实体窗体中的 IFrame 内显示实体窗体。

您通常可以使用 getClientUrl 方法同时检索内部部署 Microsoft Dynamics 365 和 Microsoft Dynamics 365 (online) 的组织根 URL。

Main.aspx 页面的查询字符串参数

提示

若要获取任何记录的 ID 值,请使用命令栏上的“发送链接”按钮。 以下是将在电子邮件应用程序中打开的内容示例:

<http://mycrm/myOrg/main.aspx?etc=4&id=%7b899D4FCF-F4D3-E011-9D26-00155DBA3819%7d&pagetype=entityrecord>。

传递给 URL 的 ID 参数是记录的已编码 ID 值。 在此示例中,ID 值为 {899D4FCF-F4D3-E011-9D26-00155DBA3819}。 GUID 的编码版本分别使用“%7B”和“%7D”替代左右括号“{”和“}”,

以下是打开实体窗体或视图时和 main.aspx 页面一起使用的查询字符串参数:

参数

说明

etn

实体的逻辑名称。

重要

请勿使用包含实体整数代码的 etc(实体类型代码)参数。 此整数代码因不同组织中的自定义实体的不同而有所不同。

extraqs

对于表单是可选的。 此参数内包含编码参数。

使用此参数可将值传递到表单。 有关详细信息,请参阅使用传递给窗体的参数设置字段值

当某个实体定义了多个表单时,您可以使用此参数指定要打开的表单,方法是传递值与表单 ID 值相等的编码参数 formid。 例如,要打开 ID 为“6009c1fe-ae99-4a41-a59f-a6f1cf8b9daf”的表单,请在 extraqs 参数中包含以下值:formid%3D6009c1fe-ae99-4a41-a59f-a6f1cf8b9daf%0D%0A。

pagetype

页面的类型。 可能的值有两个:

  • entityrecord

    显示实体记录表单。

  • entitylist

    显示实体视图。

ID

对于表单是可选的。 在打开特定的实体记录时使用此参数。 传入实体的编码 GUID 标识符。 GUID 的编码版本分别使用“%7B”和“%7D”替代左右括号“{”和“}”,例如,{91330924-802A-4B0D-A900-34FD9D790829} 是 %7B91330924-802A-4B0D-A900-34FD9D790829%7D。

viewid

视图所必需的参数。 这是用于定义视图的 savedqueryuserquery 实体记录的 ID。 获取视图 URL 的最简单方法是对其进行复制。 有关详细信息,请参阅复制视图的 URL。

viewtype

定义视图类型。 可能的值如下:

  • 1039

    用于系统视图。viewid 表示 savedquery 记录的 ID。

  • 4230

    用于个人视图。viewid 表示 userquery 记录的 ID。

navbar

使用站点地图中的区域和子区域控制是否显示导航栏以及应用程序导航是否可用。

  • on

    显示导航栏。 如果未使用 navbar 参数,则此为默认行为。

  • off

    不显示导航栏。 可以使用其他用户界面元素或后退和前进按钮进行导航。

  • entity

    在实体窗体上,仅相关实体的导航选项可用。 在导航到相关实体后,导航栏中会显示后退按钮以允许返回到原始记录。

cmdbar

控制是否显示命令栏。

备注

此功能满足 Unified Service Desk for Microsoft Dynamics 365 应用程序的要求。
不支持在嵌入到另一个实体窗体中的 IFrame 内使用此功能显示实体窗体。

  • true

    显示命令栏。 这是默认情况。

  • false

    隐藏命令栏。

复制视图的 URL

Microsoft Dynamics 365 中的很多视图允许用户复制特定视图的 URL 或发送其中嵌入特定视图的 URL 的电子邮件。 此功能更便于用户之间进行通信,并向您展示了用于访问用户可以在其他应用程序(例如 SharePoint 网站)中包含视图 URL 的方法。

备注

不要使用此 URL 通过站点地图将视图包含在应用程序导航中。 有关详细信息,请参阅使用站点地图在应用程序导航中显示视图。

通过 URL 显示的页面包括完整视图。 其中包括功能区,但是不包括应用程序导航。

获取视图的 URL

  1. 打开要使用的视图。

  2. 在命令栏上,单击“发送链接”,然后单击“当前视图”。

  3. 将该链接粘贴到“记事本”中并对其进行编辑,以便仅提取文本中所需的 URL 部分。

备注

  • 将用户上下文用作参数的视图(如“我的客户”)不能被复制。

  • 对于安装的每个内部部署 Microsoft Dynamics 365,代表系统实体的系统视图的 GUID 均相同。 对于安装的每个 Microsoft Dynamics 365,自定义实体和自定义视图的 GUID 将是唯一的。

使用站点地图在应用程序导航中显示视图

在使用站点地图自定义应用程序导航时,不要使用通过执行复制视图的 URL 中的步骤从应用程序复制的视图 URL 来设置为 URL。 该 URL 显示包含功能区的页面,如果将其用于 <SubArea> (SiteMap) Url 属性,则会生成意外结果。

若要显示 SubArea 的应用程序中的实体记录列表,请设置实体属性值。 这将显示该实体的默认视图并提供相应的标题和图标。

但是,如果您希望具有使用特定初始默认视图的 SubArea 元素,请使用以下 URl 模式。

Url=“/_root/homepage.aspx?etn=<entity logical name >&amp;viewid=%7b<GUID value of view id>%7d”

在使用此 URL 时,您还必须为 <Titles> (SiteMap)<Descriptions> (SiteMap) 指定适当的值,并为该实体指定一个图标。

备注

如果您指定使用 /_root/homepage.aspx 页面的视图,则视图选择器仍将显示。 如果用户更改此视图,则 Microsoft Dynamics 365 会记住用户最近的选择,并且在用户关闭并重新打开其浏览器后,将显示初始默认视图。

使用 URL 打开对话流程

常见的自定义任务是允许用户在特定记录的上下文中打开特定的对话流程。 例如,您可能希望向特定实体的功能区添加自定义按钮,该实体将当前记录的 ID 值用作对话流程的输入参数。

要打开对话,您需要获取以下信息:

  • 对话的唯一标识符。

  • 为其创建对话的实体的逻辑名称。

  • 要让对话针对其运行的记录的唯一标识符。

提示

要获取对话的唯一标识符,请导航到“设置”,然后从默认解决方案中选择“流程”。 选择一个流程,然后在命令栏上的“操作”选项中,单击“复制链接”。 此操作会将可编辑对话的链接复制到剪贴板,例如,[organization url]/sfa/workflow/edit.aspx?id=%7b6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976%7d。

以下示例显示用于打开对话的 URL 和查询字符串参数:

[organization url]/cs/dialog/rundialog.aspx?DialogId=[dialog unique identifier]&EntityName=[entity logical name]&ObjectId=[unique identifier for the record]

例如,要打开 ID 为 {6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976} 且客户记录 ID 为 {40C9ADFD-90A8-DF11-840E-00155DBA380F} 的对话,请使用以下示例中的 URL。

[organization url]/cs/dialog/rundialog.aspx?DialogId=%7b6A6E93C9-1FE6-4C07-91A9-E0E2A7C70976%7d&EntityName=account&ObjectId=%7b40C9ADFD-90A8-DF11-840E-00155DBA380F%7d

提示

对于 Internet Explorer 之外的浏览器,如果从链接打开对话框进程,则“完成”按钮可能无法使用。 数据将被保存,但是用户需要单击窗口上的“关闭”按扭将其关闭。 这是因为,如果未使用 JavaScript 从其他窗口打开该窗口,则其他浏览器不会提供 window.close 方法。 如果可能,请使用 JavaScript 和 window.open 方法打开实体表单和对话框进程而不只是提供链接。

您可以创建 JavaScript 函数以打开对话框,如以下示例所示:

function openDialogProcess(dialogId, entityName, objectId)
{
 var url = Xrm.Page.context.getClientUrl() +
  "/cs/dialog/rundialog.aspx?DialogId=" +
  dialogId + "&EntityName=" +
  entityName + "&ObjectId=" +
  objectId;
 window.open(url);
}

使用 URL 打开报表

您可以通过将相应参数值传递到以下 URL 来打开报表:[organization url]/crmreports/viewer/viewer.aspx。

此 URL 接受以下参数:

  • 操作
    此参数的两个可能值可以是 runfilter。 在使用 run 时,将使用默认筛选器显示报表。 当使用 filter 时,报表将显示用户在选择“运行报表”按钮显示报表之前可编辑的筛选器。

  • helpID
    此参数是可选的。 对于 Microsoft Dynamics 365 随附的报表,此参数的值允许在选择“关于此页面的帮助”时“帮助”按钮显示有关此报表的相应内容。 该值应对应于报表 FileName 属性值。

  • ID
    此参数是报表 ReportId 属性值。

以下示例显示可用于在 Microsoft Dynamics 365 中打开报表的 URL。

  • 使用默认筛选器打开“被忽略的案例”报表:

    [organization url]/crmreports/viewer/viewer.aspx?action=run&helpID=Neglected%20Cases.rdl&id=%7b8c9f3e6f-7839-e211-831e-00155db7d98f%7d
    
  • 打开“热门知识库文章”报表并提示用户设置筛选值:

    [organization url]/crmreports/viewer/viewer.aspx?action=filter&helpID=Top%20Knowledge%20Base%20Articles.rdl&id=%7bd84ec390-7839-e211-831e-00155db7d98f%7d
    

以下函数显示如何对 URL 中的值进行正确编码:

function getReportURL(action,fileName,id) {
 var orgUrl = GetGlobalContext().getClientUrl();
 var reportUrl = orgUrl + 
  "/crmreports/viewer/viewer.aspx?action=" +
  encodeURIComponent(action) +
  "&helpID=" +
  encodeURIComponent(fileName) +
  "&id=%7b" +
  encodeURIComponent(id) +
  "%7d";
 return reportUrl;
}

另请参阅

在客户端上扩展 Microsoft Dynamics 365
使用传递给窗体的参数设置字段值
配置窗体以接受自定义查询字符串参数
使用站点地图更改应用程序导航
自定义命令和功能区
为 Microsoft Dynamics 365 窗体编写代码
Microsoft Dynamics 365 的 Web 资源
使用 URL 启动对话

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权