我正在将我的解决方案从CRM 8.2迁移到CRM v9。我正在尝试在CRM中检索多个记录。当我在CRM 8.2环境中使用它时,我在CRM v9环境中使用的相同JavaScript代码工作正常。
在CRM v9中,我遇到以下错误
TypeError:无法在HTMLDocument的eval(eval at(http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1),:1:20)读取未定义的属性'Page'。 (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
并在9.0之前获取用户语言ID
Xrm.Page.context.getUserLcid
on和After 9.0更改如下
globalContext.userSetings.languageId
通过首先在我的HTML Web资源中导入库,我已经达到了预期的结果,
<script src="../../ClientGlobalContext.js.aspx" type="text/javascript"></script>
经过一些研究,我发现GetGlobalContext函数返回与Xrm.Page.context中相同的上下文对象。
那么,我在我的JS中使用它,如下所示,
var context = GetGlobalContext();
var userLcid= context.getUserLcid();
它运作良好,我取得了我的成绩。
PS:谢谢大家的支持。