20.07.2012, 14:54 | #1 |
Участник
|
Запрос данных из внешней системы MS CRM 2011
Здравствуйте!
Есть следующая потребность : Есть 2 кнопки на ленте сущности (например контакт). При нажатии на одну кнопку необходимо запрашивать данные из внешней системы (СУБД Oracle) и обновлять в текущем открытом контакте. При нажатии на другую - наоборот из текущего контакта выгружать данные в ту же внешнюю систему. Подскажите пожалуйста, в каком направлении рыть? Делать все через JS, подцеплять плагин или создавать вебсервисы. Была идея через кнопку вызывать плагин, который для первого случая будет связываться с внешней базой и заполнять данные текущего контакта. |
|
20.07.2012, 15:11 | #2 |
Чайный пьяница
|
Как по мне, самый простой выход - это плагин. Пример можете посмотреть тут - http://code.msdn.microsoft.com/windo...in-in-75699228
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
23.07.2012, 07:14 | #3 |
Участник
|
Большое спасибо за ответ. Буду рыть в этом направлении.
|
|
23.07.2012, 08:13 | #4 |
Участник
|
|
|
23.07.2012, 08:26 | #5 |
Участник
|
Планируется в кастомной сущности сохранять запись (например с GUID-ом контакта) до тех пор, пока плагин не выполнит свои действия. Потом он эту запись удалит.
|
|
23.07.2012, 09:17 | #6 |
Участник
|
Цитата:
Хотя бывают случаи, когда надо передавать данные именно плагином, чтобы сразу же оповещать пользователя о том, что передача была неудачная. |
|
|
За это сообщение автора поблагодарили: Taker1796 (1). |
23.07.2012, 10:17 | #7 |
Чайный пьяница
|
Цитата:
Какой бы вы вариант предложили, если уж берётесь критиковать?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
23.07.2012, 12:12 | #8 |
Участник
|
У нас в компании используется самописная разработка аналогичная этой.
Все работает и применяется на проектах. Зависаний пока не наблюдалось. Используем для получения данных из сторонних БД и выполнения сложных действий в MS CRM, которые долго описывать при помощи JS. По поводу удаления, лучше написать асинхронный процесс, который будет удалять сущности старше определенной даты. |
|
23.07.2012, 14:04 | #9 |
Участник
|
Такой бы и предложил. Собственно такой же и на практике делал. Просто изначально вы написали только про плагин, что все-таки несколько упрощенно.
|
|
23.07.2012, 14:23 | #10 |
Чайный пьяница
|
Всё зависит от необходимости и требований. Имхо и просто через плагин нормально.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
23.07.2012, 15:11 | #11 |
Участник
|
Спасибо всем за ответы. Буду пробовать через плагин...
|
|
24.07.2012, 09:50 | #12 |
Участник
|
Я подобную ситуацию решал при помощи вызова из скрипта ASPX приложения, которое отработав отдавало результат обратно в скрипт, а он уже заполнял поля на карточке. Можно и прямо из ASPX поля в контакте заполнить и карточку на экране обновить. В CRM2011 ASPX несколько заморочен, но в итоге все получилось, плагин все-же абсолютно неинтерактивная вещь.
|
|
24.07.2012, 17:15 | #13 |
Участник
|
А как Вы встроили страницу в CRM?
|
|
24.07.2012, 17:42 | #14 |
Чайный пьяница
|
Поделитесь наработками с коллегами. Мне тоже интересно.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
25.07.2012, 10:04 | #15 |
Участник
|
Собственно как создать страничку написано тут:
http://blogs.msdn.com/b/crminthefiel...b-service.aspx Основные заморочки возникают если нужно разместить страничку внутри сайта CRM, на порту по умолчанию. Решается преобразованием каталога со страничкой в приложение в пуле CRM, копированием в папку bin приложения кучи dll из каталога сервера (там штук 8, при попытке запуска странички их поочередно просит), дальше нужно запретить анонимную авторизацию для этого приложения и прописать в web.config следующее: X++: <system.web>
<identity impersonate="false"/>
<httpModules>
<clear/>
</httpModules>
</system.web> И приложение надо cкомпилировать (построить), в 4-ке просто так работало. Вроде ничего не забыл... |
|
|
За это сообщение автора поблагодарили: a33ik (1). |
25.07.2012, 12:17 | #16 |
Участник
|
Это не поддерживаемый метод для 2011.
Нельзя размещать в ISV из-за этого весь этот сыр-бор с плагинами и прочим. В 4 можно было веб-сервис положить в ISV и настроить имперсонацию, в 2011 в сайт СРМ класть нельзя. значит нужен новый сайт, а авторизацию между сайтами не передать. сайт может работать только от одного пользователя и не ясно будет от кого ему совершать действия. |
|
25.07.2012, 14:37 | #17 |
Участник
|
Не спорю что в версии 2011 ASPX практически не поддерживается. Но мне, например, поставили задачу, которую вообще никак без ASPX решить бы не получилось, гуглил долго и решил таким способом. Данный метод работает и вполне хорошо, авторизация в ASPX проходит под текущим пользователем. Кстати, класть страничку в ISV не обязательно, можно расположить где угодно и потом в IIS в сайт CRM добавить приложение, указав путь. Хотя возможно это практически одно и тоже.
|
|
|
|