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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2010, 09:57   #1  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
избирательность сущьности в плагине на Execute
Доброго времени суток) Хотел спросить совета у знающих людей: есть плагин на событие Execute на prestage(фильтрует продукты нужным образом но не в этом суть) он СЕЙЧАС действует на ВСЕ поиски продуктов, а мне надо чтобы он фильтровал только в конкретной сущности а еще конкретнее при вызове одной определенной вьюшки.
Вопрос: как это можно реализовать?
как из плагина проверять из какой сущности было execute?
__________________
rurik
Старый 24.09.2010, 10:35   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
По идее можно это сделать. Объясните конкретнее, пожалуйста - из какой вьюхи плнируется эти данные фильтровать?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 24.09.2010, 11:04   #3  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
Все делалось на основе вот этой статьи http://mmcrm.ru/?p=1230&cpage=1#comment-1419 для связи N:N
есть кастомная сущность,у нее есть кнопка на одной из вкладок "добавить существующий продукт", нажимаешь на кнопку открывается вьювка, в ней показываются отфильтрованные по теме продукты(это еще скрипт),НО поиск все портит(на нем фильтра нет),тут то и нужен плагин на execute, НО на текущий момент он работает на ЛЮБОЙ поиск продукта,чего естественно быть не должно.

скрин вьювки прикрепил. это вьювка продукта с фильтром по "тема"
Миниатюры
Нажмите на изображение для увеличения
Название: вьюшка для фильтра.PNG
Просмотров: 524
Размер:	86.3 Кб
ID:	6177  
__________________
rurik
Старый 24.09.2010, 11:22   #4  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Возможное решение:
1. Судя по всему вы использовали это решение, чтобы добавить возможность фильтрации. К сожалению придётся всё вернуть к первоначальному.
2. Ознакомьтесь с этой статьёй. Надеюсь она сможет направить Вас в правильную сторону.

PS По поводу вышеобозначенного блога - рекомендую читать первоисточники, а не перепечатки.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 24.09.2010, 11:40   #5  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
Спс за первоисточник я именно этим плагином и пользуюсь(из 2 вашего комента) только я немного его подправил : у меня в HttpContext.Current.Request.QueryString при вызове конкретно из этой вьювке нет ни одного параметра(ее значение =={}) поэтому я просто из context беру fetch запрос и чисто работая как со строкой добавляю в него свое <condition ........>.

P.S а что вы скажете насчет того что мне подсказали что можно использовать " передача дополнительных параметров при вызове WebService CRM" ? это можно использовать чтобы в плагине узнавать из какой сущности был вызван execute ??
__________________
rurik
Старый 24.09.2010, 12:04   #6  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от u.rastegaev Посмотреть сообщение
P.S а что вы скажете насчет того что мне подсказали что можно использовать " передача дополнительных параметров при вызове WebService CRM" ? это можно использовать чтобы в плагине узнавать из какой сущности был вызван execute ??
А в онлоад карточки код добавляете, который позволит отследить откуда пришёл вызов?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 24.09.2010, 22:13   #7  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
нет, не добавляю, но такой вариант решения мне очень нравится. расскажите пожалуйста поподробнее как можно это реализовать из onload формы) буду очень благодарен)
__________________
rurik
Старый 24.09.2010, 22:52   #8  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от u.rastegaev Посмотреть сообщение
нет, не добавляю, но такой вариант решения мне очень нравится. расскажите пожалуйста поподробнее как можно это реализовать из onload формы) буду очень благодарен)
Говорили же про статью. В ней код на онлоад и написан.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 27.09.2010, 09:57   #9  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
Спс,кажется до меня начало доходить)
__________________
rurik
Старый 28.09.2010, 10:39   #10  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
до меня начало доходить и часть даже дошла в статье механизм такой: подменяем вьвку и в скрипте добавляем параметр lookupSrc = lookupSrc + "&id=" + lookupId.DataValue[0].id; и плагин на него то и срабатывает,НО этот вариант НЕ отрабатывает на поиск в уже открытой вьвке

я видимо немного по другому сделал: в скрипте вывожу заранее сделанную вьвку с нужным фильтром , а плагин у меня по задумке должен обрабатывать этот поиск в уже открытой вьвке. на данный момент он обрабатывает этот поиск и фильтрует как надо,НО !!! он также отрабатывает и на любой другой поиск нужной сущности ( встает вопрос: Как заставить плагин отрабатывать только на нужную вьвку?
__________________
rurik
Старый 28.09.2010, 10:51   #11  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от u.rastegaev Посмотреть сообщение
до меня начало доходить и часть даже дошла в статье механизм такой: подменяем вьвку и в скрипте добавляем параметр lookupSrc = lookupSrc + "&id=" + lookupId.DataValue[0].id; и плагин на него то и срабатывает,НО этот вариант НЕ отрабатывает на поиск в уже открытой вьвке

я видимо немного по другому сделал: в скрипте вывожу заранее сделанную вьвку с нужным фильтром , а плагин у меня по задумке должен обрабатывать этот поиск в уже открытой вьвке. на данный момент он обрабатывает этот поиск и фильтрует как надо,НО !!! он также отрабатывает и на любой другой поиск нужной сущности ( встает вопрос: Как заставить плагин отрабатывать только на нужную вьвку?
Ответ заложен в самом вопросе. Проверяйте наличие этого самого передаваемого параметра. При его отсутствии просто игнорируйте и выходите из плагина. Если параметр есть - выполняйте свою логику.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 28.09.2010, 11:29   #12  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
да в том то и проблема, что я хочу чтобы плагин работал на поле "поиск" я его на скрине выше отмечал, а когда этим поиском ищешь то уже никакой параметр не передается впринципе, он передается только при подмене вьюшки, а когда она уже загрузилась и мы сверху вводим часть названия и потом клацаем на "найти" то то что мы передавали параметр в скрипте это уже не работает.

это мой скрипт на onload
Цитата:
var nnId = "gar_gar_comments_product";
var addParam = "&n=gar_comments"; // Дополнительный параметр который необходимо передать в строке запроса
var lookupTypeCode = 1024; // entity type code
var lookupViewId = "84913017-68C1-DF11-B604-00155D00282B"; // the view id of referenced entity
var lookupSrc = "/" + ORG_UNIQUE_NAME + "/ISV/lookup/lookupmulti.aspx";
var lookupArg = "/" + ORG_UNIQUE_NAME + "/_root/homepage.aspx?etc=" + lookupTypeCode +"&viewid=" + lookupViewId;
// Добавляем к URL диалогового окна мульти-лукапа дополнительный параметр
// lookupArg += addParam;
var lookupEntityTypeCode;
var navId = document.getElementById("nav" + nnId);
if (navId != null)
{
var la = navId.onclick.toString();
la = la.substring(la.indexOf("loadArea"), la.indexOf(";"));
navId.onclick = function()
{ eval(la);
var areaId = document.getElementById("area" + nnId + "Frame");
if(areaId != null)
{ areaId.onreadystatechange = function()
{
if (areaId.readyState == "complete")
{
var frame = frames[window.event.srcElement.id];
var li = frame.document.getElementsByTagName("li");
for (var i = 0; i < li.length; i++)
{
var action = li[i].getAttribute("action");
if(action != null && action.indexOf(nnId) > 1)
{
lookupEntityTypeCode = action.substring(action.indexOf("\(")+1, action.indexOf(","));
li[i].onclick = CustomLookup;
break;
}
}
}
}
}
}
}
function CustomLookup()
{
var lookupItems = window.showModalDialog(lookupSrc ,lookupArg , "dialogWidth:800px; dialogHeight:600px;");
if (lookupItems) // This is the CRM internal JS funciton on \_static\_grid\action.js
{
if ( lookupItems.items.length > 0 )
{
AssociateObjects( crmFormSubmit.crmFormSubmitObjectType.value, crmFormSubmit.crmFormSubmitId.value, Product , lookupItems, true, null, nnId);
}
}
}
__________________
rurik
Старый 28.09.2010, 11:36   #13  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от u.rastegaev Посмотреть сообщение
да в том то и проблема, что я хочу чтобы плагин работал на поле "поиск" я его на скрине выше отмечал, а когда этим поиском ищешь то уже никакой параметр не передается впринципе, он передается только при подмене вьюшки, а когда она уже загрузилась и мы сверху вводим часть названия и потом клацаем на "найти" то то что мы передавали параметр в скрипте это уже не работает.

это мой скрипт на onload
Уже писал Вам, как заставить всё работать и передаваться. Повторяю:

Цитата:
Сообщение от a33ik Посмотреть сообщение
Возможное решение:
1. Судя по всему вы использовали это решение, чтобы добавить возможность фильтрации. К сожалению придётся всё вернуть к первоначальному.
По поводу того, как заставить работать оба решения вместе - не скажу. Слишком уж много ансапорта, а я его очень не люблю и никому не рекомендую...
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 30.09.2010, 11:36   #14  
u.rastegaev is offline
u.rastegaev
Участник
 
64 / 10 (1) +
Регистрация: 03.08.2010
а можете посоветовать какую нибудь статью по webservice crm? что нибудь типа " первое знакомство с webservice crm " и т.д. если есть на примете на русском то лучше такую, на англ тоже можно есессно) И будет очень хорошо если что нибудь по "передаче параметров при вызове webservice crm" заранее благодарен)))
__________________
rurik
Старый 30.09.2010, 12:20   #15  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от u.rastegaev Посмотреть сообщение
а можете посоветовать какую нибудь статью по webservice crm? что нибудь типа " первое знакомство с webservice crm " и т.д. если есть на примете на русском то лучше такую, на англ тоже можно есессно) И будет очень хорошо если что нибудь по "передаче параметров при вызове webservice crm" заранее благодарен)))
Я учился по СДК:
http://technet.microsoft.com/en-us/l.../bb887784.aspx
http://technet.microsoft.com/en-us/l.../cc150864.aspx
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
KeyNotFoundException и HttpUnhandledException в плагине на update сущьности customerrelationship u.rastegaev Dynamics CRM: Разработка 11 01.09.2010 20:35
Ошибка бизнес-процесса Tarasov E Dynamics CRM: Разработка 9 18.02.2010 14:02
Ronald Lemmen: Exception while trying to execute AsyncOperationId: The request failed with HTTP status 401: Unauthorized. Blog bot Dynamics CRM: Blogs 0 10.11.2009 21:05
Ошибка в плагине при создании связей N:N SJK Dynamics CRM: Разработка 4 18.03.2009 20:19
Создание и регистрация плагина на Execute и Retreive a33ik Dynamics CRM: Разработка 7 30.11.2008 15:03

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

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

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