【问题标题】:Push Data into CRM 2011 from Another System将数据从另一个系统推送到 CRM 2011
【发布时间】:2013-05-13 12:11:20
【问题描述】:
如何将数据从另一个系统推送到 CRM 2011?
我想将数据传递给网络服务。
到目前为止,我已经想到了 2 个选项:
- 通过从其他系统调用组织服务来创建自定义实体并创建该实体的记录。从那时起,工作流就可以处理所有事情。
- 创建 WCF 服务并将其托管在某处。另一个系统将数据传递给该服务,该服务与 CRM 进行交互。
客户只会将记录传递给我们,因此必须在 CRM 端进行验证。
编辑:
如果客户端是旧系统(在 Cobol 中或其他),是否仍然可以连接到 CRM 服务?
【问题讨论】:
标签:
dynamics-crm-2011
dynamics-crm
【解决方案1】:
只是为了扩展 Predro 的答案:
我实际上已经使用 CRM 4 完成了这两个操作。我强烈建议您创建自己的服务供客户调用,然后再调用 CRM 服务。
这为您提供了一个额外的抽象层,以备日后发生变化时使用——而且它们会发生变化。
如果您的客户直接调用 CRM 服务,您将很难/不可能更改内部数据结构或在场中移动服务器。如果您当前使用歌手服务器基础设施,则尤其如此。
也不要将您创建的服务直接映射到实体数据结构,使用中间模型。
因此,如果您希望客户传递帐户详细信息,请让您的服务期待您转换为帐户实体的 XML 文档,而不是公开帐户实体并让您的客户提交。
【解决方案2】:
对我来说,第二个选择是处理这种情况的最佳方式,因为你可以控制和验证你身边的一切。您可以将 WCF 服务托管在 CRM Dynamics 的同一服务器上,也可以托管在可以访问 CRM Dynamics 的另一台服务器上,并通过 CRM Web 服务与 CRM 进行交互。
我认为您没有更好的解决方案。
【解决方案3】:
假设客户登录了您的 CRM 系统,我实际上会首先选择选项 #1。为什么?
- 您仍然可以在 Pre-Validation 插件阶段验证数据。
- 这是迄今为止最简单、最快捷的方式。事情会改变吗?也许!但:
- 您将花费大量时间来启动并运行自定义 WCF 服务
- 必须有人部署它
- 必须有人维护它
- 您的客户必须学习如何连接到专有的 WCF 服务,而不是说“这里有一堆关于如何连接到 CRM 的网络服务的已发布信息。”
- 它变成了业务逻辑的“隐藏筒仓”,而不是全部存在于 CRM 中。任何优秀的 CRM 开发人员都可以使用第一个选项。第二个需要额外的技能。
- 如果它确实随着时间的推移发生了如此大的变化,以至于它需要自己的 WCF 服务,那么您并没有真正浪费那么多时间。您的所有业务逻辑都将从插件移植到 WCF 服务。但是,如果事实证明您不需要它,那么从更复杂的解决方案(#2)到更简单的解决方案(#1)要困难得多。
- 我向您保证,您的客户希望这项工作更快、更简单(更便宜),而不是更长、更复杂(昂贵)。