#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, и отключил бы также все настройки ленты в этой форме.