Невозможно установить прайс-лист и валюту для цитаты через 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(), Прочитайте больше

Другие вопросы по тегам