【问题标题】:MS CRM and Biztalk2010 IntegrationMS CRM 和 Biztalk2010 集成
【发布时间】:2011-10-12 08:37:22
【问题描述】:

我计划为 MS CRM 和 BizTalk 2010 集成启动 POC。

在此之前我想知道是否有人使用 BizTalk 2010 与 MS CRM 集成?

【问题讨论】:

    标签: dynamics-crm-2011 biztalk dynamics-crm-4 biztalk-2010


    【解决方案1】:

    我们正在使用 BizTalk 2010 调用 Microsoft Dynamics CRM 2011 组织服务。

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

    第一种方法是使用 SDK 附带的 BizTalk 架构以及基于 C# 的外部类库帮助程序。这种情况在互联网上很清楚。请注意,此方案不允许 BizTalk 调用 CRM 早期绑定类(帐户等)。它只允许使用通用的 CrmEntity 对象,这使得处理映射成为一种痛苦的体验。

    外部助手是处理 LiveID 联合特性所必需的。

    第一种方法的优点是简单。但是您不能使用 BizTalk 中的本机 CRM 类型。

    第二种方法是以某种方式解决上述问题,至少部分解决。首先,它涉及构建一个 WCF 外观,该外观公开本地早期绑定的 CRM 对象(例如 Account 等)并处理 LiveID 联合。

    在生成时,早期绑定的类是不可序列化的,因此它们不能成为 WCF 接口(和服务)的一部分。这可以通过使用DataContractAttribute 装饰每个属性来解决。此外,只读属性需要添加一个额外的空集 {}。请注意,在生成的类中需要进行大量此类(简单)更改。幸运的是,作为一个生成的文件,语法是一致的,几个简单的 RegEx 就可以了。

    在 BizTalk 端,您将使用 WCF 外观元数据以生成 BizTalk 架构。不幸的是,您最终会得到巨大的数兆字节文件和交叉依赖的架构。

    所以,首先,你必须打破循环依赖。在我的例子中,我必须添加一个额外的模式来保存“合同”和“元数据”模式都使用的共享复杂类型。

    接下来,您不能轻易地在地图中使用生成的庞大架构。首先打开地图(或单独的模式)需要很长时间。其次,编译器会阻塞,Visual Studio 会崩溃。

    要解决这个问题,您需要手动更改地图的 .btm XML 文件中的 GenerateDefaultFixedNodes 属性。

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

    第二种方法的优点是能够处理来自 BizTalk 的本地 CRM 类型。但起初实施可能听起来很复杂。通过适当的自动化,它在实践中运行良好,即使面对 CRM 方面的变化。

    但是,没有一种方法感觉是“原生”BizTalk 集成。这就是为什么我正在努力寻找另一种方法,也许是通过构建一个专用的自定义绑定,但到目前为止还没有成功。

    my question here

    希望这会有所帮助。

    【讨论】:

    • 太棒了。我一直在按照相同的思路工作,也找不到您提到的任何一个选项的替代方案。
    猜你喜欢
    • 2011-09-05
    • 2014-12-09
    • 1970-01-01
    • 2023-03-21
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多