Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Перенос участников между маркетинговыми списками
Запись от Артем Enot Грунин размещена 16.02.2010 в 16:44
Теги java script, list, unsupport
Давеча на форуме задавался вопрос каким образом можно перенести (не скопировать, а именно перенести) выбранных участников из одного маркетингового списка в другой. Задача показалась мне разумной и интересной, так что я потратил немного времени чтобы ее реализовать:
Конечно, это не самое лучшее решение - если по уму, то нужно делать свою страницу и вызывать ее из кода ISV кнопки, которую поместить на грид сущности listmember... Постойте, а кто-нибудь вообще видит такую сущность в списке кастомизаций? Вот и я нет. Гриды у listmember, надо сказать, тоже весьма условные - в них показываются объекты другого типа. Словом, ISV.config в этом случае не работает. Ну а рас уж приходится прибегать к извращениям чтобы добавить нужный элемент меню, то не вижу большого зла в том, чтобы добавить туда еще немного unsupport, и для выполнения логики вызывать системные скрипты. Поочередно вызывая системные функции копирования и удаления выбранных участников, мы в итоге получим нужный нам результат - перенос. Минус только один: перед удалением система запросит у нас подтверждение, что, впрочем, можно отнести и к плюсам. В качестве первого приближения, думаю, данный подход потянет.
Идея подмены loadarea взята отсюда: Change Cases Associated Default View.
Инъекция кода меню из другого моего поста: Отклик от кампании.
Сама задача обсуждается тут: PostBack, Удаление listmember из маркетинговых списков.
Код:
//<List.OnLoad> var oMenuItemText = "Перенести в другой список"; var _loadarea = loadArea; loadArea = function(sArea, sParams, sUrl, bIsvMode) { _loadarea(sArea, sParams, sUrl, bIsvMode); if (sArea != "areaListMember") return; var oFrame = document.getElementById(sArea + "Frame"); oFrame.onreadystatechange = function() { if (oFrame.readyState == "complete") { var odoc = oFrame.contentWindow.document; AddMenuItem(odoc); } } } var AddMenuItem = function(oDocument) { var oId = '_MImoveListMember'; var oAction = 'action="'; // Вызов функции копирования в другой список oAction += "doAction('crmGrid', '4301', 'copylistmember');"; // Вызов функции удаления из текущего списка oAction += "doActionEx('crmGrid', '4301', top.crmFormSubmit.crmFormSubmitId.value, 'delete', top.crmFormSubmit.crmFormSubmitObjectType.value, 'tab=areaListMember');"; oAction += '"'; var oMenuItemHtml = '<LI class="ms-crm-MenuItem-Label" id="' + oId + '" ' + oAction + '></LI>'; var oMenu = oDocument.getElementById("mnuMoreActions"); var oItem = oMenu.appendChild(oDocument.createElement(oMenuItemHtml)); oItem.innerHTML = '<SPAN class="ms-crm-MenuItem-Label">' + '<A class="ms-crm-MenuLink" onclick="return false;" href="javascript:onclick();" target="_self">' + '<SPAN class="ms-crm-MenuItem-Icon"></SPAN>' + '<SPAN class="ms-crm-MenuItem-Text">' + oMenuItemText + '</SPAN>' + '</A>' + '</SPAN>'; } //</List.OnLoad>
Идея подмены loadarea взята отсюда: Change Cases Associated Default View.
Инъекция кода меню из другого моего поста: Отклик от кампании.
Сама задача обсуждается тут: PostBack, Удаление listmember из маркетинговых списков.
Всего комментариев 0