无法在线通过Dynamics CRM中的Javascript设置报价单和报价

时间:2018-10-17 01:07:29

标签: javascript dynamics-crm dynamics-crm-online dynamics-crm-365-v9

我写了一些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);

}

P.S。整个代码是相同的,除了我删除了实际的object.id的

1 个答案:

答案 0 :(得分:1)

如果您只是设置默认值,我建议使用业务规则。

可以在用户个人选项中设置币种,以确保transactioncurrencyid在表单加载时自动填充。 Reference

请注意,v9中不推荐使用Xrm.Page,并且您应该寻找将代码更改为受支持的executionContext.getFormContext()的方法。 Read more