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

 

公開日: 2017年1月

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

実行コンテキストは、イベント ハンドラーを使用して JavaScript ライブラリ関数に渡すことのできるオプション パラメーターです。 このオプションは、関数の名前を指定するときに、ハンドラーのプロパティ ダイアログに表示されます。 このオプションは、<Handler> (FormXml) 要素に対して、passExecutionContext 属性を使用して設定されます。

実行コンテキストは、Xrm.Page.data.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave と Xrm.Page.data.entityAttribute.6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange、および Xrm.Page.ui Control.51828fe3-f6ff-4f97-80ed-b06b3a354955#BKMK_addPreSearch メソッドを使用して関数セットに自動的に渡されます。

実行コンテキストのメソッド

  • getContext
    クライアント側コンテキスト(クライアント側の参照) オブジェクトを返すメソッドです。

  • getDepth
    このハンドラーの実行順序を示す値を返すメソッドです。

  • getEventArgs
    Save イベントを管理するメソッドを持つオブジェクトを返すメソッドです。

  • getEventSource
    イベントが発生したオブジェクトへの参照を返すメソッドです。

  • getFormContext
    呼び出された場所によってフォームまたは編集可能グリッドいずれかへの参照を返すメソッドです。

  • 共有変数
    共有変数により、同じイベントの他のハンドラーと変数を共有できます。 共有変数を操作するには、setSharedVariable と getSharedVariable メソッドを使用します。

getContext

クライアント側コンテキスト(クライアント側の参照) オブジェクトを返すメソッドです。

ExecutionContextObj.getContext()
  • 戻り値
    種類: オブジェクト

getDepth

このハンドラーの実行順序を示す値を返すメソッドです。

  • 戻り値
    種類: 番号

    順序は 0 から始まります。

getEventArgs

Save イベントを管理するメソッドを持つオブジェクトを返すメソッドです。

注意

このメソッドは、Save イベント以外のイベントの null を返します。

ExecutionContextObj.getEventArgs()

getEventSource

イベントが発生したオブジェクトへの参照を返すメソッドです。

ExecutionContextObj.getEventSource()
  • 戻り値
    種類: オブジェクト

    このメソッドは、HTMLDOM オブジェクトではなく、イベントのソースである Xrm.Page オブジェクト モデルのオブジェクトを返します。 たとえば OnChange イベントの場合、このメソッドは、変更された属性を表す Xrm.Page.data.entity 属性オブジェクトを返します。

getFormContext

呼び出された場所によってフォーム (Xrm.Page) または編集可能グリッドいずれかへの参照を返すメソッドです。

ExecutionContextObj.getFormContext()
  • 戻り値
    種類: オブジェクト

    このメソッドは、呼び出された場所によって、Xrm.Page オブジェクト モデルからのオブジェクト、または編集可能グリッドの dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_GridRow オブジェクトいずれかへの参照を返します。 このメソッドによって、呼び出される場所によってフォームまたは編集可能グリッド上のいずれかに操作ができるイベント ハンドラーの作成が可能となります。

    詳細: Xrm.Page オブジェクト モデルの使用編集可能なグリッドのオブジェクトとメソッド (クライアント側の参照)

    注意

    このメソッドは、Dynamics 365 用 2016 年 12 月の更新プログラム (オンラインおよび設置型) で導入されました。


  • 次のコード例は、スクリプトの登録場所 (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_FieldOnChangeEvent または編集可能グリッド dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_OnChange イベント) によって、フォーム フィールドまた編集可能グリッド セル上で通知の設定を行うメソッドの作成方法を説明します:

    function commonEventHandler(executionContext) {
        var entityObject = executionContext.getFormContext().data.entity;
        var telephoneAttr = entityObject.attributes.getByName('telephone1');
        var isNumberWithCountryCode = telephoneAttr.getValue().substring(0,1) === '+';
    
        // telephoneField will be an Xrm.Page control if invoked from a form OnChange event;
        // telephoneField will be a editable grid GridCell object if invoked from editable grid OnChange event.
        var telephoneField = telephoneAttr.controls.getByIndex(0);
    
        if (!isNumberWithCountryCode) {
            telephoneField.setNotification('Please include the country code beginning with ‘+’.', 'countryCodeNotification');
        }
        else {
            telephoneField.clearNotification('countryCodeNotification');
        }
    }
    

共有変数

共有変数により、同じイベントの他のハンドラーと変数を共有できます。 関数の間で変数を受け渡すには、setSharedVariable メソッドと getSharedVariable メソッドを使用します。

setSharedVariable

現在のハンドラーの終了後に別のハンドラーから使用できる変数の値を設定します。

ExecutionContextObj.setSharedVariable(key, value)
  • 引数
    String: 変数の名前

    Object: 設定する値。

getSharedVariable

setSharedVariable を使用して設定された変数を返します。

ExecutionContextObj.getSharedVariable(key)
  • 引数
    String: 変数の名前。

  • 戻り値
    種類: オブジェクト

    オブジェクトの値に基づいて決まる特定の種類です。

関連項目

クライアント側のプログラミング リファレンス

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権