Как установить значение поля множественного выбора, используя openForm в Dynamics CRM? - PullRequest
1 голос
/ 07 ноября 2019

Я создал поле (категорию) для выбора нескольких параметров в локальной среде 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 ]

1 голос
/ 08 ноября 2019

Я получил исправление проблемы, заменив строку исходного кода ниже:

Существующий

formParameters["new_multiselectpicklist"] = formContext.getAttribute("new_multiselectpicklist").getValue();

Обновлен

formParameters["new_multiselectpicklist"] = "["+formContext.getAttribute("new_multiselectpicklist").getValue()+"]";

1 голос
/ 07 ноября 2019

Я проверил это лично и получил тот же результат ошибки с приведенным ниже фрагментом. Хотя синтаксис правильный - Что-то может быть не так с методом Xrm.Navigation.openForm() или это может быть ожидаемое поведение из-за неподдерживаемого типа массива .

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, и он работал.

https://mycrmdev.crm.dynamics.com/main.aspx?etn=my_entity&pagetype=entityrecord&extraqs=new_multiselectpicklist=[962080001, 962080002]
...