AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.08.2013, 15:04   #1  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Вынести кнопку на лету и вызвать плагин
Добрый день!

Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор"
При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования".
Должна создаваться запись "Страховой сбор"

Как приблизительно реализовать?
1) Создать связь "Полис страхования" 1:N "Страховой сбор", вынести ее в связанные записи;
2) Вынести кнопку "Страховой сбор" в ленту на сущности "Полис страхования"
3) При нажатии кнопки идет вызов плагина и создается новая запись "Страховой сбор"

Или проще создавать запись "Страховой сбор" через стандартный функционал, а данные подтягивать из сущности "Полис страхования" rest запросом?

Есть ли ссылки на подобное решение?
Старый 12.08.2013, 16:01   #2  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Цитата:
Сообщение от Ion Посмотреть сообщение
Или проще создавать запись "Страховой сбор" через стандартный функционал, а данные подтягивать из сущности "Полис страхования" rest запросом?

Есть ли ссылки на подобное решение?
Это самое мудрое решение! Кнопки и плагины конечно удобны, но не для такой же операции. Только засорите форму и систему
Посмотрите как работает маппинг в CRM.
Вот картинка
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.PNG
Просмотров: 424
Размер:	130.2 Кб
ID:	8360  
Старый 12.08.2013, 17:31   #3  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
такой маппинг не решит все мои требования. Меня интересует как из родительской сущности извлечь нужные мне атрибуты и присвоить их в форму. Я то понимаю, что здесь надо использовать Rest запрос. Видел несколько примеров, но я новичок в программировании, поэтому еще учусь.
Мне надо будет тянуть данные из lookup.
Старый 12.08.2013, 18:12   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от Ion Посмотреть сообщение
Добрый день!

Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор"
При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования".
Должна создаваться запись "Страховой сбор"

Как приблизительно реализовать?
1) Создать связь "Полис страхования" 1:N "Страховой сбор", вынести ее в связанные записи;
2) Вынести кнопку "Страховой сбор" в ленту на сущности "Полис страхования"
3) При нажатии кнопки идет вызов плагина и создается новая запись "Страховой сбор"

Или проще создавать запись "Страховой сбор" через стандартный функционал, а данные подтягивать из сущности "Полис страхования" rest запросом?

Есть ли ссылки на подобное решение?
Можете попытаться реализовать это при помощи бизнес процесса или диалога. При необходимости их запуск тоже можно вынести на кнопку.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 12.08.2013, 18:58   #5  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Можете попытаться реализовать это при помощи бизнес процесса или диалога. При необходимости их запуск тоже можно вынести на кнопку.
В принципе идея нормальная. Но как повесить запуск диалогового окна на кнопку, есть ссылки на примеры реализации?
Старый 12.08.2013, 20:08   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Да, тысячи: https://www.google.ru/search?q=crm+2...50.09mOYMU_gkw
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 12.08.2013, 20:33   #7  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Я один не понял зачем в задаче плагин нужен?
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор"
(плагин не нужен)
При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования".
(REST запрос. Плагин не нужен)
Должна создаваться запись "Страховой сбор"
(REST запрос. Плагин не нужен)


Зачем здесь плагин???
__________________
Мой блог https://procrm.tv
Старый 13.08.2013, 10:03   #8  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
Я один не понял зачем в задаче плагин нужен?
Задача: Поместить на ленту кастомной сущности "Полис страхования" кнопку "Страховой сбор"
(плагин не нужен)
При нажатии на кнопку "Страховой сбор" некоторые поля должны заполняться значением из поля "Полис страхования".
(REST запрос. Плагин не нужен)
Должна создаваться запись "Страховой сбор"
(REST запрос. Плагин не нужен)


Зачем здесь плагин???
Очевидно конфликт терминологии. В офисе кнопки на ленту добавляются при помощи плагинов.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 13.08.2013, 10:21   #9  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от g.Naukovych Посмотреть сообщение
Зачем здесь плагин???
Да, плагин не нужен. Буду выносить на форму кнопку, с помощью rest запроса создавать запись и тянуть данные с родительской сущности.

А если у меня есть отношения между родительской и дочерней сущностью, и поля сопоставлены стандартным методом, то при создании записи rest запросом они не перенесутся в дочернюю запись?

Думаю, этот пример подойдет для создания записи http://garethtuckercrm.com/2011/02/1...est-end-point/
Старый 13.08.2013, 12:57   #10  
g.Naukovych is offline
g.Naukovych
Участник
MCBMSS
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
405 / 130 (5) +++++
Регистрация: 23.03.2011
Цитата:
Сообщение от Ion Посмотреть сообщение
Да, плагин не нужен. Буду выносить на форму кнопку, с помощью rest запроса создавать запись и тянуть данные с родительской сущности.

А если у меня есть отношения между родительской и дочерней сущностью, и поля сопоставлены стандартным методом, то при создании записи rest запросом они не перенесутся в дочернюю запись?

Думаю, этот пример подойдет для создания записи http://garethtuckercrm.com/2011/02/1...est-end-point/
Я бы взял готовый Toolkit
http://xrmservicetoolkit.codeplex.com/
http://crmrestkit.codeplex.com/
__________________
Мой блог https://procrm.tv
Старый 13.08.2013, 14:52   #11  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Спасибо. Буду пробовать.
Старый 22.08.2013, 14:34   #13  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Все работает, все круто, но как мне ассоциировать родительскую и дочернюю сущность?

Есть у Вас ссылки на примеры.

Я использую такой код
Цитата:
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  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Я могу воспользоваться этой функцией, но вопрос в том, что не знаю как передавать ИД родительской функции и дочерней, в то время, когда открываю новую запись методом 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  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Кто-то на форуме может объяснить почему у меня в новом окне не заполняется 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  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Цитата:
Сообщение от Ion Посмотреть сообщение
Кто-то на форуме может объяснить почему у меня в новом окне не заполняется Lookup.
То есть должен быть Lookup на родительскую сущность.
Я не особо разбираюсь в JS, но возможно из за этого
Цитата:
if(Xrm.Page.data.entity.attributes.get("new_ceate").getValue()==true)
Я так понимаю должно быть написано new_cReate
Старый 23.08.2013, 14:31   #17  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от -O_o- Посмотреть сообщение
Я не особо разбираюсь в JS, но возможно из за этого

Я так понимаю должно быть написано new_cReate
да нет. Открывается новое окно,

ошибка тут, наверное, неправильный синтаксис
Цитата:
parameters["parentnew_insurance_policyid"] = new_request[0].id;
parameters["parentnew_insurance_policyidname"] = new_request[0].name;
parameters["parentnew_insurance_policyidtype"] = new_request[0].entityType;
В SDK такой пример, только значения заданы:

Цитата:
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  
Konstantin Katsovich is offline
Konstantin Katsovich
Участник
Аватар для Konstantin Katsovich
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
243 / 57 (2) ++++
Регистрация: 22.10.2008
Адрес: Israel
Вы дебагер запускали?

В “new_request[0].id” есть значение?

“new_request” что это за обект?

"parentnew_insurance_policyid" это поле? или название связи?
__________________
Читайте SDK!!!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
CRM 4.0: Плагин на Assign не запускается из Workflow Ksani Dynamics CRM: Разработка 10 21.03.2012 12:39
Плагин Nvovka Dynamics CRM: Разработка 3 14.10.2011 23:46
Не срабатывает плагин Буденый Dynamics CRM: Разработка 11 14.02.2011 11:35
Плагин на изменение подразделения пользователя xmarina Dynamics CRM: Разработка 6 23.11.2010 15:04
не срабатывает плагин Shamasher Dynamics CRM: Разработка 5 13.10.2010 10:55

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:58.