共用方式為


執行內容 (用戶端參考)

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

執行內容是選用參數,可透過事件處理常式傳遞至 JavaScript 程式庫函數。 指定函數名稱時,此選項會出現在處理常式屬性對話方塊中。 使用 passExecutionContext 屬性,為 <Handler> (FormXml) 元素設定此選項。

執行內容自動傳遞至使用 Xrm.Page.data.fbaf2e7a-db2f-448f-bd24-6b3ca1ccb28e#BKMK_addOnSave 和 Xrm.Page.data.entityAttribute.6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_addOnChange 以及 Xrm.Page.uiControl.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()
  • 傳回值
    類型: 物件

    此方法從事件來源 Xrm.Page 物件模型傳回物件,而不會傳回 HTMLDOM 物件。 例如,在 OnChange 事件,此方法傳回 Xrm.Page.data.entity 屬性物件,代表已變更的屬性。

getFormContext

傳回表單 (Xrm.Page) 或可編輯網格的參考的方法,取決於方法呼叫的位置。

ExecutionContextObj.getFormContext()
  • 傳回值
    類型: 物件

    此方法會傳回來自 Xrm.Page 物件模型的物件參考,或可編輯網格中 dabc9332-54f3-4b1e-ac98-a3c5a4641b0c#BKMK_GridRow 物件的參考,取決於方法呼叫的位置。 此方法可讓您建立一般事件處理常式,可在表單或可編輯網格上操作,取決於其呼叫位置。

    其他資訊:使用 Xrm.Page 物件模型可編輯的 Grid 物件和方法 (用戶端參考)

    注意

    此方法已在 Dynamics 365 (Online 和內部部署) 的 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. 著作權所有,並保留一切權利。 著作權