我计划为CRM和Biztalk 2010 Integration启动POC。

在此之前,我想知道任何身体是否使用Biztalk 2010与MS CRM集成?

有帮助吗?

解决方案

我们使用BizTalk 2010来呼吁Microsoft Dynamics CRM 2011组织服务。

基本上有两种方法可以做到这一点,但我致力于找到其他方法。

第一种方法是使用与SDK一起运送的BizTalk模式以及基于外部C#的类库助手。这种情况在互联网上很明显。请注意,这种情况将不允许BizTalk呼叫CRM早期类别(帐户等),它只能使用通用的Crmentity对象,这使得与映射进行处理是痛苦的体验。

与LiveID联邦特质打交道是必要的。

第一种方法具有简单的优势。但是您不能使用BizTalk中的本地CRM类型。

第二种方法是以某种方式解决上述问题,至少部分是部分。首先,它涉及建立一个敞口的WCF立面,该立面暴露了本地限制的CRM对象(例如帐户等),并涉及LiveID联合会。

如生成的,早期的类是不可序列化的,因此它们不能成为WCF接口(和服务)的一部分。可以通过用一个装饰每个属性来解决这一问题 DatacontractAttribute. 。另外,仅阅读属性需要将额外的空集{}添加到它们中。请注意,在生成的类中有大量此类(简单的)更改。幸运的是,作为一个生成的文件,语法是一致的,并且几个简单的正则是这样做的。

在BizTalk侧,您将消耗WCF立面元数据,以生成BizTalk模式。不幸的是,您最终将获得庞大的多级文件和交叉依赖性模式。

因此,首先,您必须打破循环依赖性。就我而言,我不得不添加额外的架构来保存共享的复杂类型,这些复杂类型均由“合同”和“元数据”Schémas使用。

接下来,您无法轻松地使用地图中的巨大生成的模式。首先打开地图(或单独的架构)将花费很长时间。其次,编译器将扼杀,Visual Studio将崩溃。

为了解决这个问题,您需要手动更改 生成的efaultFixedNodes 在您的地图的.btm XML文件中属性。

但是,我建议使用生成的模式的简化版本,其中您仅包含映射一部分的节点和结构。由于大多数节点都是可选的,因此最终对WCF立面的XML请求最终将相同。

第二种方法的优点是能够处理BizTalk的本机CRM类型。但是起初的实现听起来可能很复杂。通过适当的自动化,实际上,即使面对CRM方面的变化,它也可以很好地工作。

然而,这些方法都没有感觉为“本地” biztalk集成。这就是为什么我正在努力寻找另一种方式,也许是通过建立专用的自定义绑定,但到目前为止没有成功。

我的问题在这里.

希望这可以帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top