TypeError: Cannot read property 'Page' of undefined

TypeError: Cannot read property 'Page' of undefined

我正在将我的解决方案从 CRM 8.2 迁移到 CRM v9。我正在尝试检索 CRM 中的多条记录。我在 CRM v9 环境中使用的相同 JavaScript 代码在 CRM 8.2 环境中使用时运行良好。

在 CRM v9 中出现以下错误

TypeError: Cannot read property 'Page' of undefined at eval (eval at (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1), :1:20) at HTMLDocument. (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1) at j (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:27295) at Object.fireWith [as resolveWith] (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:28108) at Function.ready (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:29942) at HTMLDocument.J (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:30308)

我不知道为什么会这样。可能是 CRM v9 不再支持这个东西,如果是这样的话,我该如何让它工作?

我正在使用下面的错误代码,

var userLcid = Xrm.Page.context.getUserLcid();

9.1版本无法直接调用Xrm.Page。请参考官方文档here。 您将需要传递 FormContext (link for reference) 并且 Xrm.Page 的替换如下

ExecutionContext.getFormContext 

并获取用户语言 ID 9.0 之前

Xrm.Page.context.getUserLcid

on and After 9.0 变化如下

globalContext.userSetings.languageId

我已经通过首先在我的 HTML 网络资源中导入库实现了预期的结果,

<script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script> 

经过一些研究,我发现 GetGlobalContext 函数 returns 在 Xrm.Page.context 中找到了相同的上下文对象。

所以,然后我在我的 JS 中使用它,如下所示,

var context = GetGlobalContext();
var userLcid= context.getUserLcid();

它运行良好,我达到了我的结果。

PS: 谢谢大家的支持

我通过确保选中将执行上下文作为第一个参数进行传输的选项来解决此错误。