在Dynamics 365 9.0中,关于如何访问表单属性和控件(而不是Xrm.Page命名空间)有很大的变化,我们应该传递executionContext给函数并formContext使用getFormContext()函数.这工作正常,我使用这种方法从来没有问题.
但是我还没想出如何正确访问formContext从Ribbon调用的函数.文档说这应该是非常简单的:
function myFunction(executionContext) {
var formContext = executionContext.getFormContext();
var focusFieldValue = formContext.ui.controls.get(PrimaryControlId).getAttribute().getValue();
}
Run Code Online (Sandbox Code Playgroud)
但它没有说如何传递executionContext给Ribbon功能.在普通函数中有一个复选框"将执行上下文作为第一个参数"但是功能区呢?我们可以将这些参数传递给这些函数,但它们只是所选记录的GUID,或所选记录的类型,甚至是对象列表,但如果参数等于,我在文档中找不到executionContext.有人已经解决了这个问题吗?
另外我知道我可以使用Xrm.Page并且它可以工作(至少现在......)但是我想知道如何使用版本9.0中的最新指南来完成它
更新1:
根据Scott的建议和本文,我将PrimaryControl传递给我的Ribbon命令但不幸的是,参数是类型的Mscrm.FormControlLite,它没有getAttribute函数或任何允许访问formContext的函数(至少我没有看到任何有用的东西).Developer工具的一些截图:

因此它看起来像某种形式的表单,但可能与formContext无关(我假设如果从记录列表中调用Ribbon,则此项可以是网格类型或类似的东西)
我们如何使用executionContext.getFormContext()HTML 网络资源的任何想法?唯一似乎有效的方法parent.Xrm.Page现在已被弃用。
javascript dynamics-crm dynamics-crm-365 dynamics-365 dynamics-crm-365-v9