CRM 2011 на JavaScript от Microsoft

#javascript #dynamics-crm-2011 #dynamics-crm

#javascript #динамика-crm-2011 #динамика-crm

Вопрос:

Здесь мы используем CRM 2011. Мы только что обновили весь наш JavaScript, чтобы использовать XRM вместо CRM. Во время тестирования нашего JavaScript мы обнаружили дефект. А именно, когда мы меняем значение в выпадающем поле, мы получаем эту ошибку в виде предупреждения:


Произошла ошибка с настраиваемым событием этого поля.

Поле: accessmode

Событие: onchange

Ошибка: ‘systemUserForm’ не определен


Проблема в том, что JavaScript не наш. С помощью инструментов разработчика он выглядит как JavaScript от Microsoft, вероятно, динамически генерируемый. Выбор нового значения изменяет его, но код, похоже, хочет работать с a DependentPicklist на основе выбранного значения. Конечно, он никогда не выполняется из-за ошибки.

Вот код, на котором происходит сбой (мои номера строк):

 1  Type.registerNamespace("Mscrm");
2  Mscrm.accessmode_onchange = function () {
3     paramParentFieldId = "accessmode";
4     paramChildFieldId = "caltype";
5     for (var depPickList in systemUserForm.gArrDependentPicklists) {
  

Он выдает ошибку в строке 4, но ошибка указывает на то, что ошибка на самом деле относится к строке 5.

Мой вопрос в том, как мы можем исправить динамически создаваемый JavaScript от Microsoft?

Комментарии:

1. Это звучит как (CRM4?) изменение примера кода CRM SDKS для зависимых наборов опций . Может быть, вы можете просто заменить свой на тот, который находится в SDK.

2. Вы уверены, что в событии onchange нет пользовательского javascript, что может вызывать ошибку, попробуйте отключить все пользовательские js в форме и повторите попытку,

3. Спасибо за комментарии. @Dot_NETPro: Мы уверены, что это не наш JavaScript, потому что CRM позволяет нам видеть весь JavaScript, который использует страница. Кроме того, с помощью инструментов разработчика браузера мы можем увидеть JavaScript, который вызывает ошибку, и даже пройти через него. Фрагмент в вопросе определенно написан не нами; это то, что автоматически добавляется CRM. Теперь этот вопрос является спорным. Пользователи говорят, что никогда не видели этого и почти никогда не используют опцию, которая его вызывает. Кроме того, мы скоро обновимся до CRM 2016, и она может отсутствовать в этой версии программного обеспечения.

4. Некоторые пользовательские функции Javascript, которые вы добавляете в настройки ленты, отображаются как код CRM, поскольку он динамически добавляется на страницу aspx, и вы видите его как этот aspx-файл в инструментах разработчика. Я бы сделал так, как предлагает @Dot_NETPro, и отключил бы также все настройки ленты в этой форме.