使用 URL 打开应用、窗体、视图和报表

通过 URL 可寻址元素,可以在其他应用程序中包括模型驱动应用、窗体、视图和报表的链接。

注释

URL 可寻址的应用、窗体、视图和报表无法绕过安全性。 只有基于其安全角色的许可用户才能访问他们看到的数据和记录。

应用程序 URL

注释

不支持将模型驱动应用程序嵌入另一个应用程序中的 IFrame 中。 请参阅 模型驱动应用嵌入

可以使用 AppModule.UniqueNameAppModule.AppModuleId 值打开任何模型驱动应用程序。

可以使用以下查询使用 Web API 检索这些值:

GET [Organization URI]/api/data/v9.1/appmodules?$select=appmoduleid,uniquename

详细信息: 使用 Web API 查询数据

可以分别将 appnameappid 查询参数与 Unique Name 或 AppModuleId 值一起使用,但不能同时使用这两个参数。

使用唯一名称

若要使用唯一名称打开应用,请将 appname 查询参数追加到 main.aspx 页面。

https://myorg.crm.dynamics.com/main.aspx?appname={UniqueName}

例如,如果唯一名称为 msdyn_SolutionHealthHub,则可以使用此 URL 打开此应用:

https://myorg.crm.dynamics.com/main.aspx?appname=msdyn_SolutionHealthHub

使用 AppModuleId

若要使用 AppModuleId 打开应用,请将 appid 查询参数添加到 main.aspx 页面。

https://myorg.crm.dynamics.com/main.aspx?appid={AppModuleId}

例如:

https://myorg.crm.dynamics.com/main.aspx?appid=00001111-aaaa-2222-bbbb-3333cccc4444

URL 可访问的表单和视图

main.aspx 页面显示所有窗体和视图。 传递给此页面的查询字符串参数控制显示的内容。 例如:

要打开 ID 为 {91330924-802A-4B0D-A900-34FD9D790829} 的帐户记录窗体:

https://myorg.crm.dynamics.com/main.aspx?etn=account&pagetype=entityrecord&id=%7B91330924-802A-4B0D-A900-34FD9D790829%7D  

打开“已关闭的机会”视图:

https://myorg.crm.dynamics.com/main.aspx?etn=opportunity&pagetype=entitylist&viewid=%7b00000000-0000-0000-00AA-000010003006%7d&viewtype=1039  

打开活动联系人视图,不带导航栏或命令栏

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

注释

  • 使用 Web 资源以编程方式在应用程序中打开表单时,使用 Xrm.Navigation.navigateToXrm.Navigation.openForm 。 不使用 window.open
  • 在应用程序外部,由于页面无权访问 Xrm.Navigation.openFormXrm.Navigation.navigateTo 函数,请使用 window.open 或链接来打开表格的特定记录或表单。 不支持在嵌入于另一个窗体中的 IFrame 中显示窗体。

通常,使用 getClientUrl 方法检索模型驱动应用的组织根 URL。

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

小窍门

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

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

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

下表列出了用于打开窗体或视图的main.aspx页的查询字符串参数:

参数 Description
etn 表的逻辑名称。 重要: 请勿使用 etc (表类型代码)参数,该参数包含表的整数代码。 此整数代码因不同组织中的自定义表而异。
extraqs 对于窗体可选。 此参数包含此参数中的编码参数。

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

当表定义了多个窗体时,可以使用此参数指定要打开的窗体,方法是将编码参数 formid 的值与表单的 ID 值相等。 例如,若要打开 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
在窗体上,只有相关表的导航选项可用。 导航到相关表后,导航栏中会显示一个后退按钮,以允许返回到原始记录。

重要: 此参数仅在单会话模型驱动应用中受支持。 它在多通道或工作区应用(如客户服务工作区、Copilot 服务工作区或客户服务全渠道)中不起作用。
cmdbar 控制是否显示命令栏。 注意: 此功能支持统一服务台应用程序的要求。 不支持使用此参数在嵌入另一个窗体的 IFrame 中显示窗体。

-true
此时将显示命令栏。 这是默认值。
- false
命令栏处于隐藏状态。

复制视图的 URL

模型驱动应用中的许多视图允许您复制某一特定视图的 URL,或者发送包含该视图 URL 的电子邮件。 此功能使用户之间的通信更加容易,并为您提供了一种访问视图 URL 的方法,用户可以将其包含在其他应用程序(如 SharePoint 站点)中。

注释

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

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

获取视图的 URL
  1. 打开要使用的视图。
  2. 在命令栏上,选择 “操作 ”,然后选择“ 通过电子邮件发送链接”。
  3. 将链接粘贴到记事本中并对其进行编辑,以仅提取所需文本的 URL 部分。

注释

  • 不能复制使用用户上下文作为参数的视图,例如 “我的帐户”。
    • 表示系统表的系统视图的 GUID 对于每个安装都是相同的。 自定义表和自定义视图的 GUID 对于每个安装都是唯一的。

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

使用网站地图自定义应用程序导航时,请勿使用从应用程序复制的视图 URL,方法是使用 “复制 URL” 中的步骤将视图设置为 URL。 该 URL 显示包含功能区的页面,并在 URL 参数中使用 <SubArea> 时生成不良结果。

若要在应用程序中显示 SubArea 的表记录列表,请设置表列值。 此值显示该表的默认视图,并提供正确的标题和图标。

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

Url="/main.aspx?appid=11112222-bbbb-3333-cccc-4444dddd5555&pagetype=entitylist&etn=account&viewid=%7b<GUID value of view id>%7d"

使用此 URL 时,还必须指定 <Titles> 相应的值, <Descriptions>并为表指定图标。

注释

如果使用 /main.aspx 页面指定视图,则视图选择器仍会出现。 如果用户更改视图,模型驱动应用会记住用户的最新选择,初始默认视图在关闭并重新打开浏览器后显示。

使用 URL 打开报表

您可以通过将适当的参数值传递给以下 URL 来打开报告: [organization url]/crmreports/viewer/viewer.aspx

此 URL 接受以下参数:

行动
此参数 run 的两个可能值为 或 filter。 使用 run时,报表将使用默认筛选器显示。 使用 filter时,报表会显示用户可以编辑的筛选器,然后选择 “运行报表 ”按钮以查看报表。

helpID
此参数是可选的。 对于包含在模型驱动应用中的报表,当选择“此页的帮助”时,此参数中的值允许显示有关此报表的合适内容。 该值应对应于报表 FileName 值。

id
此参数是报表 ReportId 值。

以下示例显示了可用于在模型驱动应用中打开报表的 URL。

使用默认筛选器打开 被忽视的案例 报告:

[organization url]/crmreports/viewer/viewer.aspx?action=run&helpID=Neglected%20Cases.rdl&id=%7b8c9f3e6f-7839-e211-831e-00155db7d98f%7d  

打开 Top Knowledge Base Articles 报表并提示用户设置筛选器值:

[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;  
}  

另请参阅

使用传递给窗体的参数设置列值
Xrm.Navigation.openUrl
配置表单以接受自定义查询字符串参数
自定义功能区
使用 JavaScript 的客户端脚本
网络资源
使用 SiteMap 更改应用程序导航