Интеграция на MS CRM и Biztalk2010

Планирам да стартирам POC за MS CRM и интеграция на BizTalk 2010.

Преди това исках да знам някой орган използва ли BizTalk 2010 за интеграция с MS CRM?


person Shailender Singh    schedule 25.07.2011    source източник


Отговори (1)


Използваме BizTalk 2010 за извикване на услугата за организация на Microsoft Dynamics CRM 2011.

По същество има два начина да направите това, но аз съм решен да намеря други.

Първият начин е да използвате схемите на BizTalk, които се доставят с комплекта за разработване на софтуер (SDK) заедно с външен C# базиран помощник на библиотека с класове. Този сценарий е доста разкрит в интернет. Обърнете внимание, че този сценарий няма да позволи на BizTalk да се обади на CRM ранно обвързани класове (акаунт и т.н.) Той ще позволи само използването на общия обект CrmEntity, което прави работата с картографирането болезнено изживяване.

Външният помощник е необходим за справяне с идиосинкразиите на федерацията LiveID.

Този първи метод има предимството, че е прост. Но не можете да използвате собствени CRM типове от BizTalk.

Вторият начин е по някакъв начин да разрешите горните проблеми, поне отчасти. Първо, това включва изграждане на WCF фасада, която излага нативни ранно свързани CRM обекти (като акаунт и т.н.) и която се занимава с LiveID федерация.

Както са генерирани, ранно обвързаните класове не могат да се сериализират, така че не могат да бъдат част от WCF интерфейс (и услуга). Това може да бъде разрешено чрез украсяване на всяко свойство с DataContractAttribute. Освен това свойствата само за четене трябва да имат допълнителен празен набор {}, добавен към тях. Моля, имайте предвид, че има огромен брой такива (прости) промени, които трябва да направите в генерираните класове. За щастие, като генериран файл, синтаксисът е последователен и няколко прости RegEx's ще свършат работа.

От страна на BizTalk ще използвате метаданните на WCF фасадата, за да генерирате схеми на BizTalk. За съжаление ще получите огромни многомегабайтови файлове и кръстосано зависими схеми.

Така че, първо, трябва да прекъснете кръговите зависимости. В моя случай трябваше да добавя допълнителна схема за съхранение на споделени сложни типове, които бяха използвани както от схемите „договор“, така и от схемите „метаданни“.

След това не можете лесно да използвате огромните генерирани схеми във вашите карти. Първото отваряне на картата (или самата схема) ще отнеме векове. Второ, компилаторът ще се задави и Visual Studio ще се срине.

За да разрешите това, трябва ръчно да промените GenerateDefaultFixedNodes в XML файла .btm на вашата карта.

Това, което препоръчвам обаче, е да използвате опростена версия на генерираните схеми, където включвате само възли и структури, които са част от картографирането. Тъй като повечето възли не са задължителни, получената XML заявка към WCF фасадата в крайна сметка ще бъде същата.

Предимството на този втори метод е да можете да работите с родни CRM типове от BizTalk. Но изпълнението може да звучи сложно в началото. С подходяща автоматизация на практика работи доста добре, дори и при промени в CRM.

Нито един от методите обаче не се чувства като "родна" интеграция на BizTalk. Ето защо работя върху намирането на алтернативен начин, може би чрез изграждане на специално персонализирано обвързване, но засега без успех.

Вижте моят въпрос тук.

Надявам се това да помогне.

person Maxime Labelle    schedule 26.07.2011
comment
Брилянтен. Работя по същия начин и не мога да намеря алтернатива на двете опции, които споменахте. - person RobS; 30.01.2012