Проблемы в некоторых javascripts после обновления до Dynamics CRM Online 2016
Мы только что обновили один из наших экземпляров Dynamics CRM с CRM Online 2015 до CRM Online 2016.
В то время как я мог видеть, что остальные функциональные возможности работают должным образом, в конкретном сценарии для нас есть главный ограничитель показа:
Ниже приведен код из функции сценария Java, который вызывается во время загрузки страницы:
function SetDefaultValuesInLookup()
{
Xrm.Page.getAttribute("new_applicationcontactid").setValue([{ id:
records.new_Contact.Id, name: records.new_Contact.Name, entityType: records.new_Contact.LogicalName }]);
........
Xrm.Page.getAttribute("new_applicationtype").setValue(1000002);
}
function ShowHideFields()
{
var applicationtype = Xrm.Page.getAttribute("new_applicationtype").getValue();
...............
}
Подводя итог, функция SetDefaultValuesInLookup устанавливает значение для поля поиска "Application Contact Id" в форме, а также устанавливает "new_applicationtype" на основе некоторого условия.
Эти две функции регистрируются в форме загрузки для выполнения в заказе. однако проблема в том, что - иногда метод SetDefaultValuesInLookup внезапно завершается после выполнения первого значения getAttribute, или, если метод завершает свое выполнение, мы не получаем значение в поле new_applicationtype. Или иногда оба метода работают правильно.
Я попытался отладить код и увидел, что мы получаем свойства Id, Name и LogicalName, которые заполняются каждый раз, поэтому на этом уровне проблем нет.
Мне интересно, есть ли здесь что-то, что не поддерживается в CRM 2016? Кроме того, эта функциональность все еще отлично работает в Online 2015.
1 ответ
Попробуйте с приведенным ниже кодом, у меня это сработало
var object = new Array();
object[0] = new Object();
object[0].id = records.new_Contact.Id;
object[0].name = records.new_Contact.Name;
object[0].entityType = records.new_Contact.LogicalName;
Xrm.Page.getAttribute(fieldName).setValue(object);