如何在Dynamics CRM中使用openForm设置多选字段值?

时间:2019-11-07 09:45:41

标签: javascript dynamics-crm multi-select xrm picklist

我已经在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

设置多选选项集的值

2 个答案:

答案 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]";

我尝试使用extraqsthis 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()+"]";