Microsoft Dynamics 365 用 JavaScript ライブラリの使用

 

公開日: 2017年1月

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

JavaScript ライブラリは、次の操作を行うための関数を含むスクリプト (JScript) Web リソースです。

  • フォーム イベントおよびフィールド イベントの処理

  • リボンで構成されるコントロール用のアクションの実行

  • 他の関数のサポート

JScript ライブラリの使用

Web アプリケーションで JavaScript ライブラリを使用する場合と同様に JavaScript ライブラリを使用できます。

フォーム イベントおよびフィールド イベントへの関数の関連付け

最大 50 個のスクリプト Web リソースを関連付けて、それらのリソースがエンティティ フォームと共に読み込まれるようにすることができます。

フォームに追加したライブラリは、フォーム内のすべてのイベントで使用できます。 任意のイベントに対して、イベント ハンドラーにする関数を決定できます。 イベントのイベント ハンドラーとして指定できる関数は最大 50 個です。

実行時の関数の関連付け

実行時には、Xrm.Page.data.entity attribute.addOnChangeXrm.Page.data.entity.addOnSave、および検索コントロール addPreSearch メソッドを使用して、OnChange 属性、フォーム OnSave、および検索コントロール PreSearch イベントに関数を追加できます。 これらのメソッドを使用する場合、その関数はイベント ハンドラー パイプラインの一番下に追加され、最初のパラメーターとして実行コンテキストを受け取ります。 それぞれに対応する removeOnChangeremoveOnSave および removePreSearchメソッドを使用すると、この方法で追加された関数を削除できます。

実行コンテキスト

実行コンテキスト オブジェクトを最初のパラメーターとして受け取るように各イベント ハンドラーを構成できます。 実行コンテキストには、次の内容を指定するために呼び出すことのできる関数が含まれます。

  • 深さ: このハンドラーが実行される相対的な順序。

  • イベント ソース: イベントを開始したオブジェクトへの参照。

    この機能は、さまざまなフォーム イベントまたはフィールド イベントから、イベントに応答できる関数を作成する場合に重要です。

  • 共有変数: これにより、関数では他のイベント ハンドラーからアクセスできるキーと値のペアとして変数を設定できます。

詳細:実行コンテキスト (クライアント側の参照)

ハンドラーのプロパティ ダイアログ ボックス内に、関数に渡される文字列値のコンマ区切りリストを入力できます。 これは、コードを変更することなく関数の動作を変更する場合に役立ちます。

コマンド バー (リボン) コマンドへの関数の関連付け

コマンド バーまたはリボンの各コントロールは、1 つ以上のアクションを格納する <Actions> (RibbonDiffXml)要素を含む <CommandUIDefinition> (RibbonDiffXml) に関連付けられます。<JavaScriptFunction> (RibbonDiffXml) は使用可能なアクションの 1 つです。JavaScriptFunction 要素には、ライブラリおよびそのライブラリ内の関数への参照が必要です。

スクリプトの開発およびテスト

スクリプトは、Web リソース フォームまたは (フォーム ライブラリとイベント ハンドラーを構成するための) [イベント] タブを使用して編集できます。

また、任意のスクリプト編集ツールを使用して変更をアップロードし、スクリプト Web リソースを更新することもできます。 Web リソースは変更後に公開する必要があります。

スクリプト ライブラリの作成

JavaScript ライブラリ内で使用する関数を設計する場合、その関数を他の JavaScript ライブラリと共にフォームに読み込まれる場合があります。 指定した関数と同じ名前の関数が他のライブラリに含まれている場合は、そのページに対してどちらの関数を読み込むかが定義されます。 設計した関数が他のライブラリの関数によって上書きされないようにするには、設計した関数に一意の名前を付ける必要があります。

関数に一意の名前を付けるためには、以下の 2 つの方法があります。

  • 一意の関数の接頭辞
    次の例に示すように、一意の命名規則を含む標準の構文で一貫性のある名前を使用して各関数を定義します。

    function MyUniqueName_performMyAction()
    {
    // Code to perform your action.
    }
    
  • 名前空間を使用したライブラリ名
    次の例に示すように、各関数を JavaScript オブジェクトに関連付けて、関数を呼び出す場合に使用する一種の名前空間を作成します。

    //If the MyUniqueName namespace object isn’t defined, create it.
    if (typeof (MyUniqueName) == "undefined")
     { MyUniqueName = {}; }
      // Create Namespace container for functions in this library;
      MyUniqueName.MyFunctions = {
       performMyAction: function(){
       // Code to perform your action.
       //Call another function in your library
       this.anotherAction();
      },
      anotherAction: function(){
       // Code in another function
      }
    };
    

    これにより、関数を使用するときにフル ネームを指定できます。 次の例はこのことを示しています。

    MyUniqueName.MyFunctions.performMyAction();
    

    別の関数内の関数を呼び出す場合は、両方の関数を格納するオブジェクトへのショートカットとして this キーワードを使用できます。 ただし、関数がイベント ハンドラーとして使用されている場合、this キーワードはイベントが発生しているオブジェクトを参照します。

スクリプトのデバッグ

各ブラウザーには、独自の開発者ツールのセットがあります。 次の手順は、Internet Explorerを使用して説明します。

Microsoft Dynamics 365 フォームでスクリプトをデバッグする
  1. F12 を押して開発者ツールを開きます。

  2. [スクリプト] タブの [デバッグの開始] ボタンの右側にあるドロップダウン リストを使用して、JavaScript ライブラリを探します。

  3. 関数の左余白をクリックしてブレークポイントを設定します。

  4. [デバッグの開始] をクリックします。

  5. スクリプトが Onload イベント内にある場合は、Microsoft Dynamics 365 ウィンドウを選択して F5 キーを押し、ウィンドウの再読み込みが必要になることがあります。

詳細については、「開発者ツールを使用したスクリプトのデバッグ」を参照してください。

関連項目

Microsoft Dynamics 365 での JavaScript の使用
Microsoft Dynamics 365 アプリケーションをカスタマイズする
クライアントの Microsoft Dynamics 365 の拡張
スクリプト (JScript) Web リソース
Microsoft Dynamics 365 フォームのコードを記述する
エンティティ フォームのカスタマイズ
リボン アクションの定義
サンプル: Web リソースとしてファイルをインポート
サンプル: Web リソースのユーティリティ

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権