|  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 добавить приложение, указав путь. Хотя возможно это практически одно и тоже.
		 | 
|  | 
|  | 
| 
 |