在 Dynamics 365 9.0 中,关于如何访问表单属性和控件的方式发生了相当大的变化 -Xrm.Page
我们应该传递executionContext
给函数并获取formContext
usinggetFormContext()
函数,而不是命名空间。这工作正常,使用这种方法我从来没有遇到过问题。
但是我还没有弄清楚如何正确访问formContext
从功能区调用的函数。文档说这应该非常简单:
function myFunction(executionContext) {
var formContext = executionContext.getFormContext();
var focusFieldValue = formContext.ui.controls.get(PrimaryControlId).getAttribute().getValue();
}
但它没有说明如何传递executionContext
给 Ribbon 函数。在普通函数中,有一个复选框“将执行上下文作为第一个参数传递”,但是 Ribbon 函数呢?我们可以将一些参数传递给这些函数,但它们只是所选记录的 GUID,或所选记录的类型,甚至是对象列表,但我在文档中找不到,如果有参数等于executionContext
. 有人已经解决了这个问题吗?
我也知道我可以使用 Xrm.Page 并且它会工作(至少现在......)但我想知道,如何使用 9.0 版中的最新指南来完成
更新1:
根据 Scott 的建议和这篇文章,我将 PrimaryControl 传递给我的 Ribbon 命令,但不幸的是,该参数是类型的Mscrm.FormControlLite
,它没有getAttribute
允许访问 formContext 的函数或任何函数(至少我没有看到任何有用的东西)。开发者工具的一些截图:
所以它看起来像某种形式的表示形式,但可能与 formContext 无关(我假设如果从记录列表中调用功能区,则该项目可以是网格类型或类似的类型)