12.08.2013, 15:04 | #1 |
Участник
|
Вынести кнопку на лету и вызвать плагин
Добрый день!
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор" При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования". Должна создаваться запись "Страховой сбор" Как приблизительно реализовать? 1) Создать связь "Полис страхования" 1:N "Страховой сбор", вынести ее в связанные записи; 2) Вынести кнопку "Страховой сбор" в ленту на сущности "Полис страхования" 3) При нажатии кнопки идет вызов плагина и создается новая запись "Страховой сбор" Или проще создавать запись "Страховой сбор" через стандартный функционал, а данные подтягивать из сущности "Полис страхования" rest запросом? Есть ли ссылки на подобное решение? |
|
12.08.2013, 16:01 | #2 |
Еда - топливо, Одежда - н
|
Цитата:
Посмотрите как работает маппинг в CRM. Вот картинка |
|
12.08.2013, 17:31 | #3 |
Участник
|
такой маппинг не решит все мои требования. Меня интересует как из родительской сущности извлечь нужные мне атрибуты и присвоить их в форму. Я то понимаю, что здесь надо использовать Rest запрос. Видел несколько примеров, но я новичок в программировании, поэтому еще учусь.
Мне надо будет тянуть данные из lookup. |
|
12.08.2013, 18:12 | #4 |
Moderator
|
Цитата:
Сообщение от Ion
Добрый день!
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор" При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования". Должна создаваться запись "Страховой сбор" Как приблизительно реализовать? 1) Создать связь "Полис страхования" 1:N "Страховой сбор", вынести ее в связанные записи; 2) Вынести кнопку "Страховой сбор" в ленту на сущности "Полис страхования" 3) При нажатии кнопки идет вызов плагина и создается новая запись "Страховой сбор" Или проще создавать запись "Страховой сбор" через стандартный функционал, а данные подтягивать из сущности "Полис страхования" rest запросом? Есть ли ссылки на подобное решение?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
12.08.2013, 18:58 | #5 |
Участник
|
|
|
12.08.2013, 20:08 | #6 |
Moderator
|
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
12.08.2013, 20:33 | #7 |
Участник
|
Я один не понял зачем в задаче плагин нужен?
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор" (плагин не нужен) При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования". (REST запрос. Плагин не нужен) Должна создаваться запись "Страховой сбор" (REST запрос. Плагин не нужен) Зачем здесь плагин??? |
|
13.08.2013, 10:03 | #8 |
Moderator
|
Цитата:
Сообщение от g.Naukovych
Я один не понял зачем в задаче плагин нужен?
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор" (плагин не нужен) При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования". (REST запрос. Плагин не нужен) Должна создаваться запись "Страховой сбор" (REST запрос. Плагин не нужен) Зачем здесь плагин???
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
13.08.2013, 10:21 | #9 |
Участник
|
Да, плагин не нужен. Буду выносить на форму кнопку, с помощью rest запроса создавать запись и тянуть данные с родительской сущности.
А если у меня есть отношения между родительской и дочерней сущностью, и поля сопоставлены стандартным методом, то при создании записи rest запросом они не перенесутся в дочернюю запись? Думаю, этот пример подойдет для создания записи http://garethtuckercrm.com/2011/02/1...est-end-point/ |
|
13.08.2013, 12:57 | #10 |
Участник
|
Цитата:
Сообщение от Ion
Да, плагин не нужен. Буду выносить на форму кнопку, с помощью rest запроса создавать запись и тянуть данные с родительской сущности.
А если у меня есть отношения между родительской и дочерней сущностью, и поля сопоставлены стандартным методом, то при создании записи rest запросом они не перенесутся в дочернюю запись? Думаю, этот пример подойдет для создания записи http://garethtuckercrm.com/2011/02/1...est-end-point/ http://xrmservicetoolkit.codeplex.com/ http://crmrestkit.codeplex.com/ |
|
13.08.2013, 14:52 | #11 |
Участник
|
Спасибо. Буду пробовать.
|
|
15.08.2013, 12:33 | #12 |
Участник
|
Кому интересно, вот ссылки на реализацию:
http://msdn.microsoft.com/en-us/library/gg334375.aspx создание новой записи создание кастомной кнопки |
|
22.08.2013, 14:34 | #13 |
Участник
|
Все работает, все круто, но как мне ассоциировать родительскую и дочернюю сущность?
Есть у Вас ссылки на примеры. Я использую такой код Цитата:
function Lead( ) {
var parameters = {}; parameters["subject"] = Xrm.Page.getAttribute("new_name").getValue(); parameters["emailaddress1"] = Xrm.Page.getAttribute("emailaddress").getValue(); parameters["mobilephone"] = Xrm.Page.getAttribute("new_mobilephone").getValue(); Xrm.Utility.openEntityForm("lead", null, parameters); } Последний раз редактировалось Ion; 22.08.2013 в 15:33. |
|
22.08.2013, 18:10 | #14 |
Участник
|
Я могу воспользоваться этой функцией, но вопрос в том, что не знаю как передавать ИД родительской функции и дочерней, в то время, когда открываю новую запись методом Xrm.Utility.openEntityForm
Цитата:
function associateRecords(firstEntity, firstEntityId, secondEntity, secondEntityId, relationshipName) {
var assocReq = new XMLHttpRequest(); assocReq.open("POST", Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/" + firstEntity + "Set(guid'" + firstEntityId + "')/$links/" + relationshipName, true); // Синхронно assocReq.setRequestHeader("Accept", "application/json"); assocReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); assocReq.onreadystatechange = function () { if (this.readyState == 4) { if (this.status == 204 || this.status == 1223 || this.status == 201) { alert("Записи связаны."); } else { alert("Ошибка : " + this.status + "; " + this.statusText + "; " + this.responseText); } } } var JSONEntity = {}; JSONEntity.uri = Xrm.Page.context.getServerUrl() + "/XRMServices/2011/OrganizationData.svc/" + secondEntity + "Set(guid'" + secondEntityId + "')"; assocReq.send(JSON.stringify(JSONEntity)); } |
|
23.08.2013, 13:20 | #15 |
Участник
|
Кто-то на форуме может объяснить почему у меня в новом окне не заполняется Lookup.
То есть должен быть Lookup на родительскую сущность. Цитата:
function OpenEnt( )
{ if(Xrm.Page.data.entity.attributes.get("new_ceate").getValue()==true) { var parameters = {}; // Записываю в переменные параметры Lookup parameters["parentnew_insurance_policyid"] = new_request[0].id; parameters["parentnew_insurance_policyidname"] = new_request[0].name; parameters["parentnew_insurance_policyidtype"] = new_request[0].entityType; parameters["new_name"] = Xrm.Page.getAttribute("new_name").getValue(); parameters["new_fortest"] = Xrm.Page.getAttribute("new_testfield").getValue(); Xrm.Utility.openEntityForm("new_insurance_policy", null, parameters); } } Последний раз редактировалось Ion; 23.08.2013 в 13:24. |
|
23.08.2013, 13:52 | #16 |
Еда - топливо, Одежда - н
|
Цитата:
Цитата:
if(Xrm.Page.data.entity.attributes.get("new_ceate").getValue()==true)
|
|
23.08.2013, 14:31 | #17 |
Участник
|
Цитата:
ошибка тут, наверное, неправильный синтаксис Цитата:
parameters["parentnew_insurance_policyid"] = new_request[0].id;
parameters["parentnew_insurance_policyidname"] = new_request[0].name; parameters["parentnew_insurance_policyidtype"] = new_request[0].entityType; Цитата:
parameters["parentcustomerid"] = "2878282E-94D6-E111-9B1D-00155D9D700B";
parameters["parentcustomeridname"] = "Contoso"; parameters["parentcustomeridtype"] = "account"; Последний раз редактировалось Ion; 23.08.2013 в 14:35. |
|
23.08.2013, 15:31 | #18 |
Участник
|
Вы дебагер запускали?
В “new_request[0].id” есть значение? “new_request” что это за обект? "parentnew_insurance_policyid" это поле? или название связи?
__________________
Читайте SDK!!! |
|
|
Похожие темы | ||||
Тема | Ответов | |||
CRM 4.0: Плагин на Assign не запускается из Workflow | 10 | |||
Плагин | 3 | |||
Не срабатывает плагин | 11 | |||
Плагин на изменение подразделения пользователя | 6 | |||
не срабатывает плагин | 5 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|