无法通过 Javascript 在 Dynamics CRM 在线报价单上设置价目表和货币
Unable to set Price List and Currency on Quote Via Javascript in Dynamics CRM online
我写了一些 javascript 在报价实体上加载价目表和货币的值。这曾经在 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's
如果您只是设置默认值,我建议使用业务规则。
可以在用户个人选项中设置货币,这将确保 transactioncurrencyid
在表单加载时自动填充。 Reference
附带说明,Xrm.Page
在 v9 中已弃用,您应该寻找支持的 executionContext.getFormContext()
的代码更改。
我写了一些 javascript 在报价实体上加载价目表和货币的值。这曾经在 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's
如果您只是设置默认值,我建议使用业务规则。
可以在用户个人选项中设置货币,这将确保 transactioncurrencyid
在表单加载时自动填充。 Reference
附带说明,Xrm.Page
在 v9 中已弃用,您应该寻找支持的 executionContext.getFormContext()
的代码更改。