Вызов диалога в Dynamics 2011 и передача ему нескольких записей - PullRequest
6 голосов
/ 29 сентября 2011

Я хочу, чтобы пользователь мог выбрать один или несколько контактов из объекта контакта, а затем запустить диалоговое окно, которое принимает идентификаторы записей.Идея состоит в том, чтобы добавить некоторую настраиваемую конфигурацию к контактам.

В настоящее время у меня есть настраиваемое действие для кнопки ленты, которая запускает диалоговое окно, но она принимает только один идентификатор записи.Я могу получить доступ к списку идентификаторов выбранных записей, это не проблема, это передача списка в диалог с использованием JavaScript.

Я не могу найти что-либо в SDK или фрагментах кода.Ближайшая вещь, которую я нашел, была такой:

http://crmmongrel.blogspot.com/2011/06/launch-dialog-from-ribbon-button-in-crm.html

Кто-нибудь знает, возможно ли это?Я знаю, что из коробки «Отправить прямую электронную почту» можно отправлять электронные письма выбранным элементам, поэтому мне нужно нечто подобное.

Должен ли я использовать диалоги или что-то еще?

Вот фрагмент кода javascript, который вызывается при нажатии кнопки ленты:

function LaunchModalDialog(SelectedControlSelectedItemReferences,dialogID, typeName)
{

// Get selected objects
var allItems = new Array
var allItems = SelectedControlSelectedItemReferences

// Just get first item for now as dialog only seems to accept one ID
var personId = allItems[0].Id;
personId = personId.replace(/\{/g, "");
personId = personId.replace(/\}/g, "");

// Load modal
var serverUri = Mscrm.CrmUri.create('/cs/dialog/rundialog.aspx');
var mypath = serverUri + '?DialogID={' + dialogID + '}&EntityName=' + typeName + '&ObjectId={' +personId + '}';
mypath = encodeURI(mypath);

// First item from selected contacts only
window.showModalDialog(mypath);

// Reload form.
window.location.reload(true);
}

1 Ответ

6 голосов
/ 29 сентября 2011

Вам нужно указать параметр SelectedControlAllItemIds в вашей ленте для этой кнопки. Вот ссылка, которая описывает это:

http://social.microsoft.com/Forums/en/crm/thread/79f959ac-0846-472f-bff1-4f5afe692a56

- Edit -

Извините, я неправильно понял - вы имели в виду запустить настоящий диалог CRM, а не просто обычное всплывающее диалоговое окно HTML.

Диалоги CRM не могут быть использованы для нескольких записей, так что вы не сможете использовать их для этого.

Однако вы должны иметь возможность создать файл веб-ресурса HTML, который можно запускать с ленты, передав параметр SelectedControlAllItemIds. Этот веб-ресурс HTML будет иметь некоторый javascript, который обновит выбранные контакты с использованием конечных точек REST (дополнительную информацию см. В SDK).

Надеюсь, это поможет!

...