我已经在Dynamics CRM内部为联系人和项目创建了多选选项集字段(类别)。现在使用按钮单击,我试图在Project上设置多选字段的值。但是每次遇到错误:
Error converting value 920650008 to type System.Collections.Generic.List 1[System.Int32]
。
由于多选选项集字段是全局的,因此没有机会提供指定值。
这是我以前尝试过的:
var name = formContext.getAttribute(new.account_metada.CompanyName).getValue();
var entityFormOptions["entityName"] = "new_projects";
entityFormOptions["openInNewWindow"] = true;
var formParameters["new_company"] = id;
formParameters["new_companyname"] = name;
formParameters["new_category"] = formContext.getAttribute("new_category").getValue()
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
function (success) {
console.log(success);
},
function (error) {
console.log(error);
});
请让我知道如何使用Xrm.Navigation.openForm
答案 0 :(得分:1)
我亲自进行了测试,并使用以下代码段获得了相同的错误结果。尽管the syntax is right-Xrm.Navigation.openForm()
方法可能出了些问题,或者由于unsupported Array datatype而导致了预期的行为。
var entityFormOptions = new Array();
entityFormOptions["entityName"] = "my_entity";
entityFormOptions["openInNewWindow"] = false;
var formParameters = new Array();
formParameters["new_multiselectpicklist"] = formContext.getAttribute("new_multiselectpicklist").getValue();
Xrm.Navigation.openForm(entityFormOptions, formParameters).then(
function (success) {
console.log(success);
},
function (error) {
console.log(error);
});
即使硬代码分配也遇到相同的错误:
formParameters["new_multiselectpicklist"] = [962080001, 962080002];
修改:
上面的一行应该像这样使它起作用。
formParameters["new_multiselectpicklist"] = "[962080001, 962080002]";
我尝试使用extraqs
来this alternate option,并且有效。
https://mycrmdev.crm.dynamics.com/main.aspx?etn=my_entity&pagetype=entityrecord&extraqs=new_multiselectpicklist=[962080001, 962080002]
答案 1 :(得分:1)
我通过替换以下源代码行来解决此问题:
现有
formParameters["new_multiselectpicklist"] = formContext.getAttribute("new_multiselectpicklist").getValue();
已更新
formParameters["new_multiselectpicklist"] = "["+formContext.getAttribute("new_multiselectpicklist").getValue()+"]";