Невозможно установить прайс-лист и валюту для цитаты через Javascript в Dynamics CRM онлайн
Я написал некоторый javascript, который загружает значения прайс-листа и валюты на сущность Quotes. Раньше это нормально работало в CRM Online 8.2, но после обновления до 9.0 у меня начались странные проблемы.
Таким образом, в OnLoad формы скрипт запускается и устанавливает значения, как и должно быть. Если я подожду в форме цитаты около 20 секунд, то форма автоматически обновляется, что, как мне кажется, является функциональностью CRM, но после обновления прайс-лист стирается, и я вижу, что он очищает значение моего текущего выбранного прайс-листа.
И тогда пользователь должен вручную установить его или обновить страницу. Это мой код:
function SetCurrency()
{
var object = new Array();
object[0] = new Object();
object[0].id = "<object_id>";
object[0].name = "US Dollar";
object[0].entityType = "transactioncurrency";
Xrm.Page.getAttribute("transactioncurrencyid").setValue(object);
}
function SetPriceList() {
var object1 = new Array();
object1[0] = new Object();
object1[0].id = "<object_id>";
object1[0].name = "Default Price List";
object1[0].entityType = "pricelevel";
Xrm.Page.getAttribute("pricelevelid").setValue(object1);
}
PS весь код такой же, за исключением того, что я удалил фактический object.id's
1 ответ
Если вы просто устанавливаете значения по умолчанию, я бы порекомендовал использовать бизнес-правила.
Валюта может быть установлена в личных настройках пользователя, что позволит transactioncurrencyid
автоматически заполняется при загрузке формы. Ссылка
На заметку, Xrm.Page
устарела в v9, и вы должны искать изменение кода на поддерживаемый executionContext.getFormContext()
, Прочитайте больше