添加自定义帮助内容

 

发布日期: 2017年1月

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

使用 Microsoft Dynamics 365(在线或本地),管理员可以配置整个组织或特定实体中所将显示的帮助内容页面。 具有高度自定义系统的组织,尤其是使用自定义实体的那些组织,将发现应用程序帮助内容使用受限。 管理员可以通过指定改为打开 URL 来配置系统以替代默认帮助内容。 要打开的页面可能为 SharePoint 网站的静态页、Internet 中的网页,或使用 web 资源创建且包含解决方案的自定义帮助应用程序。

开发人员需要了解可用选项,以及可以与 URL 一起传递的上下文信息,以便他们创建显示相应内容的页面。 您也可以在自定义您的 CRM 系统:自定义帮助体验主题中获取更多信息。

在本主题中

自定义帮助选项

上下文的查询字符串参数

使用 Web 资源提供帮助内容

自定义帮助选项

对于下表中描述的每个实体,自定义帮助行为依赖于 Organization 实体和 EntityMetadata 定义中存储的数据。

实体或系统设置

数据

类型​​

说明

系统设置:“使用可自定义实体的自定义帮助”

Organization.GlobalHelpUrlEnabled

布尔

表明是否能为这个组织启用自定义帮助。

系统设置:“全局自定义帮助 URL”

Organization.GlobalHelpUrl

字符串

组织的全局帮助 URL。

系统设置:“将参数追加到 URL”

Organization.GlobalAppendUrlParametersEnabled

布尔

指示具有上下文信息的查询字符串参数是否追加到帮助 URL。详细信息:上下文的查询字符串参数

实体设置:“使用自定义帮助”

EntityMetadata.EntityHelpUrlEnabled

布尔

表明是否能为该实体启用自定义帮助。

实体设置:“帮助 URL”

EntityMetadata.EntityHelpUrl

字符串

要为实体显示的自定义帮助页。

将显示所应用控件(帮助主题)设置的组合。 下表描述了各选项。

Organization.GlobalHelpUrlEnabled

Organization.GlobalHelpUrl

EntityMetadata.EntityHelpUrlEnabled

EntityMetadata.EntityHelpUrl

行为

false

打开默认帮助页

true

false

打开默认帮助页

true

true

打开默认帮助页

true

true

打开实体帮助页

true

true

打开实体帮助页

true

true

打开全局 URL 页

true

false

打开全局 URL 页

备注

当启用全局帮助时,只要使用应用程序中的帮助按钮,则将显示自定义页,包括与应用程序任何可自定义区域不相关的页。 由于这会隐藏可能对管理员有价值的内容,通常应在每个实体的基础上应用自定义帮助。

上下文的查询字符串参数

Organization.GlobalAppendUrlParametersEnabledtrue 时,以下查询字符串参数值可以追加到自定义帮助 URL。

参数

说明

entrypoint

从中打开帮助的页面类型。 可能的值为 formhierarchychart。 如果从列表视图打开帮助,则不包含此参数。

formid

从中打开帮助的窗体或层次结构图表的 GUID 值。

typename

从中打开帮助内容的实体的逻辑名称。

userlcid

当前用户使用的语言代码标识符。可在区域设置 ID (LCID) 图表中找到有效区域设置 ID 值。

访问查询字符串值

以下 HTML 提供一个示例,演示如何使用 JavaScript 访问查询字符串值。 该页将显示传递时参数值的表格。

<!DOCTYPE html>
<html>
<head>
 <title>Help topic</title>
 <style>
  body {
   font-family: 'Segoe UI';
  }
 </style>
 <script type="text/javascript">
  function getQueryStringParameter(parameter) {
   /// <summary>Parses query string values passed to the page and returns the value for the requested parameter or 'null'</summary>
   /// <param name="parameter" type="String">The parameter value to look for</param>
   /// <returns type="String" />
   var query = window.location.search.substring(1); 
   var params = query.split("&");
   for (var i = 0; i < params.length; i++) {
    var pair = params[i].split("=");
    if (pair[0] == parameter) {
     return pair[1];
    }
   }
   return "null";
  }


  document.onreadystatechange = function () {
   if (document.readyState == "complete") {

    var entrypointValue = getQueryStringParameter("entrypoint");
    var formidValue = getQueryStringParameter("formid");
    var typenameValue = getQueryStringParameter("typename");
    var userlcidValue = getQueryStringParameter("userlcid");

    if ((document.documentMode) && (document.documentMode <= 8))
    {
     //If page is being displayed in IE Compatibility mode
     document.getElementById("entrypointValue").innerText = entrypointValue;
     document.getElementById("formidValue").innerText = formidValue;
     document.getElementById("typenameValue").innerText = typenameValue;
     document.getElementById("userlcidValue").innerText = userlcidValue;
    }
    else
    {
     document.getElementById("entrypointValue").textContent = entrypointValue;
     document.getElementById("formidValue").textContent = formidValue;
     document.getElementById("typenameValue").textContent = typenameValue;
     document.getElementById("userlcidValue").textContent = userlcidValue;
    }


   }
  }

 </script>
</head>
<body>
 <p>This is a custom help topic that can accept query string parameters</p>
 <table>
  <thead><tr><th>Parameter</th><th>Value</th></tr></thead>
  <tbody>
   <tr><td>entrypoint</td><td id="entrypointValue">null</td></tr>
   <tr><td>formid</td><td id="formidValue">null</td></tr>
   <tr><td>typename</td><td id="typenameValue">null</td></tr>
   <tr><td>userlcid</td><td id="userlcidValue">null</td></tr>
  </tbody>
 </table>

</body>
</html>

使用 Web 资源提供帮助内容

对于描述的自定义实体,使用 HTML web 资源作为帮助内容可以将这些资源共同列入某个解决方案。 使用这些页面中的 JavaScript 还可以访问 Dynamics 365 数据和元数据,以便提供可以反映窗体中当前字段动态内容或获得分派给用户的特权的相关信息。

Organization.GlobalHelpUrlEntityMetadata.EntityHelpUrl 字段是非常简单的字符串值,不要求有效协议的任何格式。 这将允许使用 URL(表示 web 资源)的相对路径描述,以便当使用解决方案将帮助内容在组织间移动时,无需修改即可正常引用 web 资源。 使用相关的 URL 可以引用特定 Web 资源,如下所示:

/WebResources/new_/help/content/account.htm

重要

当用户属于服务器上的多个组织时,此路径将始终引用用户默认组织。 如果用户没有使用默认组织,并且预期 Web 资源不包括在用户的默认组织中,那么即使用户当前使用的组织中确实包括该 Web 资源,也会出现“找不到文件”错误。 如果具有相同名称的 Web 资源存在于默认组织中,该组织的 Web 资源将显示并且可能不是当前组织的正确资源。

如果这使组织中的用户遇到问题,则可以更新设置的 URL 值,以将基本组织 URL 预置为组织中 web 资源的相对 URL。

另请参阅

EntityMetadata
自定义您的 CRM 系统:自定义帮助体验
自定义 Microsoft Dynamics 365 应用程序
Microsoft Dynamics 365 的 Web 资源
网页 (HTML) Web 资源

Microsoft Dynamics 365

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