TypeError: Невозможно прочитать свойство 'Page' из неопределенного - PullRequest
1 голос
/ 03 апреля 2019

Я переношу свое решение с CRM 8.2 на CRM v9.Я пытаюсь получить несколько записей в CRM.Тот же код JavaScript, который я использую в своей среде CRM v9, работал нормально, когда я использовал его в среде CRM 8.2.

В CRM v9 я получаю следующую ошибку

TypeError: Невозможно прочитать свойство 'Page' из неопределенного в eval (eval в (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1),: 1: 20) в HTMLDocument. (http://vtdemo/VTd365dev/WebResources/vrp_/Disposition/js/Disposition.js:13:1) в j (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:27295) в Object.fireWith [as resolWith] (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:28108) в Function.ready (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:29942) в HTMLDocument.J (http://vtdemo/VTd365dev/WebResources/vrp_/Common/js/jquery_1.11.2.js:2:30308)

Я не знаю, почему это происходит. Может быть, эточто-то больше не поддерживается в CRM v9, если это так, то как я могу заставить его работать?

Я использую приведенный ниже код, где появляется ошибка,

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

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

Вы не можете напрямую вызвать Xrm.Page в версии 9.1.Пожалуйста, обратитесь к официальным документам здесь .Вам нужно будет передать FormContext (ссылка для справки) и заменить Xrm.Page примерно так:

ExecutionContext.getFormContext 

и получить идентификатор пользователя до 9.0

Xrm.Page.context.getUserLcid

вкл. И после 9.0 изменяется, как показано ниже

globalContext.userSetings.languageId
1 голос
/ 03 апреля 2019

Я достиг желаемого результата, сначала импортировав библиотеку из моего HTML-ресурса,

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

И после некоторого исследования я обнаружил, что функция GetGlobalContext возвращает тот же объект контекста, что и в Xrm.Page.context.

Итак, я использовал его в своем JS, как показано ниже,

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

И это сработало нормально, и я добился своего результата.

PS: Спасибо всем за поддержку.

...