ユーザー定義のヘルプの内容を追加する

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 (オンラインおよび設置型)を使用すると、管理者は組織全体または特定のエンティティに対して表示するヘルプ ページのコンテンツを構成できます。 高度にカスタマイズされたシステムがあり、特にユーザー定義エンティティを使用する組織では、アプリケーションのヘルプ コンテンツの使用に限界があることがわかります。 管理者は、代わりに開く URL を設定することで、既定のヘルプの内容を上書きするようにシステムを構成できます。 開くページは、SharePoint サイト上の静的ページ、インターネット上の Web ページ、または 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

ヘルプが開かれたページの種類。 可能な値は hierarchychartformです。 このパラメーターは、ヘルプがリスト ビューから開かれた場合、含まれていません。

formid

ヘルプが開かれたフォームまたは階層グラフのGUID値。

typename

ヘルプ コンテンツが開らかれたエンティティの論理名。

userlcid

現在のユーザーが使用する言語コードの識別子です。有効なロケール ID 値については、「Locale ID (LCID) Chart (ロケール ID (LCID) の一覧)」で確認することができます。

クエリ文字列値のアクセス

次の 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 フィールドは、有効なプロトコルのフォーマット設定が必要のない簡単な文字列値です。 これにより、Web リソースを表す URL に相対パス記述を使用できます。それにより、Web リソースへの参照は、ソリューションを使用してヘルプ コンテンツをある組織から別の組織に移動する際に変更する必要がありません。 特定の Web リソースは、次のような相対 URL を使用して、参照されます。

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

重要

ユーザーがサーバー上の複数の組織に属している場合、このパスは常にユーザーの既定の組織を参照します。 ユーザーが既定の組織を使用せず、想定される Web リソースがユーザーの既定の組織に含まれていない場合は、Web リソースがユーザーの現在作業している組織内にあっても、ファイルが見つからないエラーが発生します。 同じ名前の Web リソースが既定の組織に存在する場合、その組織の Web リソースが表示され、現在の組織では正しくない場合があります。

これにより組織のユーザーに問題が発生する場合、この設定の URL 値が更新され、組織の基本 URL が組織のWeb リソースの相対 URL の値の前に追加されます。

関連項目

EntityMetadata
CRM システムのカスタマイズ: ヘルプ エクスペリエンスのカスタマイズ
Microsoft Dynamics 365 アプリケーションをカスタマイズする
Microsoft Dynamics 365 の Web リソース
Webpage (HTML) の Web リソース

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権