Передача параметров CRM через пользовательскую кнопку рабочего стола на ленте в функции Javascript для получения значений атрибутов

#javascript #dynamics-crm #dynamics-365 #crm-ribbon-workbench

Вопрос:

У меня есть пользовательская кнопка, созданная на рабочем столе ленты под названием «отправить электронное письмо» (для краткости), в которой должно произойти следующее: создать запись электронной почты—>вставить шаблон электронной почты через сервис—>>открыть в режиме для пользователя.

С учетом сказанного я создал следующие конфигурации кнопок ленточного рабочего стола:

введите описание изображения здесь

Как вы можете видеть, я добавил параметр, передающий контекст выполнения, и параметр, который, если я не ошибаюсь, должен передавать объект формы.

Я написал javascript, который запускается кнопкой. Javascript запускается и работает, но не работает при попытке захватить идентификатор записи. Ниже приведен мой фрагмент javascript:

 function ltCreateIAafterPurchaseTemplate(executionContext, item){
    alert("AFTER PURCHASE");
    
    var formContext = executionContext;
    var emailTemplateToLoad = "f22cb309-1fd9-eb11-bacb-000d3a361c51";
    var selectedItem = item[0];
    alert("selectedItem: "   selectedItem.Id);

}
 

Вышеуказанные item параметры передаются вместе с данными объекта, которые мне нужны, и, насколько мне известно, оператор var selectedItem = item[0] является правильным способом их получения. Однако при попытке отобразить идентификатор в консоли я получаю следующую ошибку в предупреждении alert("selectedItem: " selectedItem.Id); :

введите описание изображения здесь
введите описание изображения здесь
введите описание изображения здесь

После наведения курсора на переданный параметр он имеет длину 0, указывающую на его пустоту:

введите описание изображения здесь

Ответ №1:

Первый параметр-получение контекста выполнения с помощью PrimaryControl параметра CRM в команде ленты.

Второй параметр SelectedControlSelectedItemReferences получит ожидаемый массив элементов, когда вы выберете одну или несколько записей в представлении сетки. В противном случае он будет равен нулю, как и в вашем случае.

Выберите одну запись, и код будет работать.

Узнать больше