执行上下文(客户端引用)
发布日期: 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 对象模型和可编辑网格对象和方法(客户端引用)
备注
适用于 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。 保留所有权利。 版权