确保将 Dynamics 365 从企业内部迁移到云不会破坏您所需的集成

确保你的Dynamics 365企业内部到云的迁移不会破坏你所需要的整合。

Ana NetoConnectors, Products and Solutions, Technical 6 Comments

文章最后更新于。2022年3月28日

让我们来看看以下内容 场景:

一家蓬勃发展的公司一直在使用微软Dynamics CRM,与他们的ERP(Dynamics NAV)、SharePoint和一个会计系统集成。

经过一些研究,他们认识到转移到Dynamics 365在线和Azure云的好处。然而,他们也发现微软并没有为他们的用户提供一个实用的解决方案,将数据库和所有其他现有的集成从Dynamics CRM转移到Dynamics 365 Online。

如果软件的创造者对这个问题没有答案,这家公司怎么能让自己的愿望成真?

我们很自豪地介绍他们的解决方案,即在不实际连接到数据库的情况下连接到Dynamics 365数据库....!

将Dynamics CRM On-Prem迁移到D365 Online

尽管有可能进行 Dynamics 365的内部部署可以说,对于几乎所有的公司来说,在线使用Dynamics 365是目前最具吸引力的选择。

当他们调查Dynamics 365在线与企业内部模式时,他们很快得出结论:Dynamics 365在线的软件即服务(SaaS)版本有以下好处。

  • 减少压力 - 你不需要购买硬件或基础设施,也不需要维护它。
  • 没有 承诺 - 该软件通常以持续的 "现收现付 "模式获得许可,而不是一次性的、按座位购买。
  • 多才多艺 - SaaS通常提供通用访问,允许你从任何设备(台式机、笔记本电脑、手机)连接到软件,只要用户有互联网连接。
  • 负担得起的 - 初始投资通常比购买企业内部设备和软件要低得多。
  • 值得信赖 - 云解决方案带有高可用性服务协议。

那么,将企业内部的数据库同步到Dynamics 365在线有多容易呢?

在一个完美的世界里从微软Dynamics CRM企业内部到Dynamics 365在线的迁移将很容易包括与微软Dynamics CRM企业内部的现有集成。如果你已经有了D365,并想通过Dynamics 365的前提下向云端迁移,这应该更简单。

然而,我们并不生活在一个完美的世界里。尽管如此,即使 迁移到云端并不像你希望的那样简单,有 可以帮助的技巧和窍门 一路走来。让我们开始吧!

微软为您提供了哪些转到Dynamics 365在线的服务

有这个东西叫FastTrack页面。微软通过它提供支持,帮助其用户部署微软的云解决方案。有资格订阅微软365、Dynamics 365或Azure的客户可以在整个订阅期间免费访问它(文章末尾有链接)。因此,如果你打算使用这个,建议你检查你试图迁移的东西的最新资格标准。微软通常根据座位数或收入来确定这些标准。

2019年4月,微软承认,"直到最近,还没有任何机制可以让客户轻松地将其企业内部部署转移到Dynamics 365(在线)"。这是在一份45页的PDF文件中承认的,题为 "微软Dynamics CRM内部部署到Dynamics 365在线迁移",其中描述了需要遵循的步骤(下载链接也在文章的末尾)。

我可以访问Dynamics数据库吗?

这个问题的一个可能的解决方案是找到一种方法来访问Dynamics 365数据库,然后去与你的Dynamics CRM内部进行同步。问题是,微软不提供对后端Dynamics数据库的访问。

这非常合理,因为将SaaS服务的后端数据库暴露给外界被认为是不好的做法,会导致相当大的安全漏洞或数据完整性问题。相反,微软提供了一个官方API来执行与D365在线的数据交互。

使用API服务的主要原因是它们不会破坏内部业务规则和约束,确保客户应用不妨碍性能。它们还有助于保持数据的完整性和后端数据库的一致性。相当有益,对吗?

唯一的缺点是,需要大量的技能和时间来开发通过API操作数据的流程。此外,你将不得不潜心研究大量的文档,以发现正确的参数,并对相关接口提供的方法和函数进行适当的调用。不幸的是,这就是事情的运作方式。

如果你能让这一切变得更简单呢?如果你熟悉SQL,如果你能简单地利用你的SQL技能,像使用普通的DBMS(数据库管理系统)一样与D365 API互动,那不是很好吗?或者更好的是,如果你能让Dynamics 365使用Microsoft SQL Server Management Studio来同步数据库,那就更好了。

好吧,我们有一个好消息要告诉你。

从本地DBMS或任何客户端应用程序连接到D365在线

我们欢迎你来到我们的 D365 Database Sync Solution!完全基于Connecting Software的集成平台 Connect Bridge它是定制的,用于将企业内部的数据库同步到D365云端。很神奇,对吗?

如果你想知道它是如何工作的。 Connect Bridge 将ANSI标准SQL语法翻译成适当的API调用。

通过确保对数据的访问是通过API调用完成的(尽管你不必担心),这个解决方案可以保证你的目标系统的完整性。此外,你还可以通过以下方式轻松地与任何目标系统进行通信 标准的SELECT、INSERT、UPDATE和DELETE 声明。

你知道这意味着什么吗?你可以 从您的本地DBMS或任何客户端应用程序中,在线连接并插入数据到D365。!

对于从Dynamics CRM on-prem迁移到D365 online的公司来说,这一点尤其方便,因为这些公司拥有连接到Dynamics的内部SQL数据库或应用程序。幸运的是,这些连接可以通过实施Connect Bridge而得以保留。这正是一家意大利连锁超市所做的,你可以在这篇文章中看到 案例研究.

需要注意的是,如果您希望连接到其他Dynamics 365解决方案,如Dynamics 365业务中心或财务部,这也是可以的我们有你的支持...在文章的最后.

现在,是时候看看这在实践中如何运作了。你可以去参加免费试用,自己尝试,你可以要求我们的专家在免费演示中向你展示,或者你可以简单地继续阅读!

从任何数据库到Dynamics 365在线

微软著名的Adventure Works DW(Datawarehouse)数据库(最后可下载),将作为我们这次演示的基础。我们将展示如何利用Connect Bridge平台将您的现有流程与微软Dynamics 365 Online无缝集成。

在下面的程序中,我们将使用SSMS (SQL服务器管理工作室)来管理你的SQL服务器数据库。

1 - 一旦你设置了AdventureWorks数据库,你将在对象资源管理器窗口中看到数据库的模式,如下图所示。

SSMS AdventureWorks

2 - 我们现在将创建链接服务器。为此,我们将遵循以下步骤 视频教程.

 请注意,通过连接器,创建链接服务器与任何目标系统的连接是可能的,因为我们使用的是 Connect Bridge平台.有400多个连接器可供我们的全球用户使用。在这个例子中,我们特别使用Dynamics 365连接器。

部分Connect Bridge连接器的标识

Connecting Software在CRM、ERP和会计领域的连接器选择

3 - 一旦链接服务器设置完毕,你就会像在SSMS中访问Dynamics的后端数据库一样。在下面的图片中,你可以看到它的名字是"D365_CRM"。

图片

通过扩展TreeView中的catalogs节点,我们可以看到Dynamics 365提供的整个模式,就像你访问一个普通的数据库那样。但是,这实际上是一个抽象的、在后台运行的API调用,使其在前端变得如此简单。

使用这个3步程序将允许你创建任何种类的整合和/或定制现有的流程。让我们来看看世界各地的用户是如何使用这个的。

企业内部到D365云同步解决方案的适用性

如果你想知道为什么你首先需要这样做,这里有两种常见的情况,可能会让你感到很亲切。

情景1

你工作的公司仍然使用微软Dynamics CRM的内部部署,他们目前正在迁移到微软Dynamics 365在线的过程中。他们有几个从他们的SQL服务器数据库到他们的Microsoft Dynamics CRM内部的集成。

问题是。 你不能直接与微软Dynamics 365在线数据库连接,结果是,你开始怀疑是否。

  • 你将不得不使用微软的Dynamics CRM SDK从头开始创建所有的流程。
  • 你将不得不从头开始,使用网络API创建所有的流程。
  • 你必须学习C#,才能做到这一切。

情景二

你工作的公司有一个定制的ERP系统,以SQL Server数据库为后端。他们决定使用微软Dynamics 365 CRM作为他们自己的客户关系管理系统。

然后,他们希望有能力以自动化的方式将现有的ERP系统的数据填充到CRM中,并保持双方的一致性。

手动完成这一过程实际上是不可能的,因为有数以万计的记录需要在双方身上保持一致,包括账户、联系人和产品。

然而, 公司的IT团队对必要的编程语言和框架没有太多的经验诸如C#、REST服务或CRM的API。他们确实有SQL的经验,但这能派上用场吗?经理想知道他们是否。

  • 将不得不聘请一家咨询公司为他们提供这项服务。
  • 将取决于上述咨询公司的维护,并随着其业务的扩大而增加新的功能。

幸好,所有这些假设性问题的答案是 ,希望在这一点上,上面的例子的使用是有意义的。

随着 Connect Bridge。 你可以有效地利用你现有的技能,并保留你现有的软件、数据库和流程。

但你不必相信我们的话。请看下面的分步骤例子,或者,更好的是,请你的 免费试用 并亲自试一试。

从Adventure Works数据库表DimCustomer填充Dynamics 365在线账户

准备工作

  1. 创建以下触发器:

    --*****************************************************************************

    创建 触发器 [dbo].[植入客户] 启用 [dbo].[访客] 之后 插入

    硕士

    开始

           镶嵌                               不计成本 启用

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @名字                VARCHAR(255)

           DECLARE @身份证号码                 VARCHAR(255)

           DECLARE @中间名               VARCHAR(255)

          

           选择 @名字       = [名字],

                  @身份证号码        = [身份证号码],

                  @中间名      = [中间名]

           已插入;

           选择 @SQL = 格式信息('INSERT INTO ACCOUNT (Name) VALUES(''%s'); SELECT SCOPE_IDENTITY(); ',

           @名字 + '-' + '-' + @身份证号码)

          

           创建 #AccountId(身份证 VARCHAR(255))

           插入 #AccountId

           执行(@SQL) 淘宝网 D365_CRM

     

           选择 @AccountId = 身份证 #AccountId

           更新 访客 镶嵌 客户替代键 = @AccountId 哪儿= @名字 中间名 = @中间名 身份证号码 = @身份证号码

     

           打印 @名字 + ' ' + @中间名 + ' ' + @身份证号码;

    结束

    --*****************************************************************************

    创建 触发器 [dbo].[瘦身后的客户更新(OnDimCustomerUpdate] 启用 [dbo].[访客] 之后 更新

    硕士

    开始

           镶嵌                               不计成本 启用

     

           DECLARE @SQL                      VARCHAR(255)

           DECLARE @AccountId                VARCHAR(255)

           DECLARE @名字                VARCHAR(255)

           DECLARE @身份证号码                 VARCHAR(255)

           DECLARE @中间名               VARCHAR(255)

          

           选择 @AccountId       = [CustomerAlternateKey](客户替代键,

                  @       = [],

                  @身份证号码        = [身份证号码],

                  @中间名      = [中间名]

           已插入;

     

           选择 @SQL = 格式信息('UPDATE ACCOUNT SET Name=''%s'' WHERE ACCOUNTID=''%s'', @名字 + '-' + '-' + @身份证号码, @AccountId)

           执行(@SQL) 淘宝网 D365_CRM;

           打印 @名字 + ' ' + @中间名 + ' ' + @身份证号码;

     

    结束

    2.你的SSMS对象资源管理器窗口现在应该包含两个新的触发器,看起来像这样。
    Image
    3 -打开你的Dynamics 365在线实例,并导航到账户。我们将在下一步为'ABC技术'、'Billy慈善'和'Tom猫'插入3条新记录。在这一点上,他们仍然不在账户中。
    图片 (3)

    测试

     1 - 在SSMS中打开一个新的查询窗口并粘贴以下内容。

    插入 进入 [冒险工场DW].[dbo].[访客] (, 中间名, 身份证号码, 客户替代键) 价值观 (ABC技术"。, '' ,'GMB', 'CT0001');

    插入 进入 [冒险工场DW].[dbo].[访客] (, 中间名, 身份证号码, 客户替代键) 价值观 ('比利-慈善'号, '' ,'SA'。, 'CT0002');

    插入 进入 [冒险工场DW].[dbo].[访客] (, 中间名, 身份证号码, 客户替代键) 价值观 ('汤姆猫', '' ,'ORG, 'CT0003');

     

    选择 * 访客 在哪里?= ABC技术"。;

    选择 * 访客 在哪里?= '比利-慈善'号;

    选择 * 访客 在哪里?= '汤姆猫';

    2 - 通过按F5或SSMS中的Execute按钮来运行这些脚本。
    SSMS执行AdventureWorks
    现在你应该有3条额外的记录插入到DimCustomer表中。
    编码
    3 - 导航回到您的Dynamics 365账户并刷新。中奖了!
    Image

    在没有触及Dynamics 365的情况下,3个新账户被添加到Dynamics 365。很酷,对吗?

    但是等一下,在表DimCustomer中,字段CustomerAlternateKey有一个奇怪的数字。它们不是我们一开始就插入的值。相反,我们有Dynamics 365中生成的账户的唯一ID。这怎么可能呢?

    如果你仔细观察触发器OnDimCustomerInsert,你会注意到SELECT SCOPE_IDENTITY();负责返回用于更新表DimCustomer的账户ID。当表DimCustomer中的记录被改变时,这对于在Dynamics 365中执行现有账户的更新至关重要。

    为了证明我们的观点,更新在SSMS中执行以下代码创建的记录。

    更新 [冒险工场DW].[dbo].[访客] 镶嵌 身份证号码 = 'LTD'。 在哪里? 客户替代键 = 'account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b)';

    注意:替换字符串 account(9a1bc5cb-6ad7-e811-a96f-000d3a2cb90b) 用你的环境中产生的值。

    在对3个账户执行更新后,以下是Dynamics 365的结果。
    Image

    真好!

    总结

    这些都是简单的例子,但它们确实证明了这是如何在实践中发挥作用的。这是一个可扩展和强大的解决方案,使你能够 无缝:

    • 将以前与你的内部Dynamics连接的所有东西集中起来。
    • 迁移到Dynamics的在线版本,并保持现有的集成正常工作。

    而且,最不重要的是。

    • 不需要学习任何新的技术或编程语言!它是 易如反掌.
    • 你可以通过修改触发器来加强这一过程。

    还有。 如果你马上往下看,想知道还有哪些Dynamics 365的解决方案可以用Connect Bridge轻松连接,这就是那部分内容了!

    它们是。

    这样的待遇!

    如果你有任何意见,或建议,请写在下面的空格里,我们会尽快回复。

    客户为什么使用Connect Bridge

    看一段短片就知道了。
    搭桥

    资源链接

    文章最后更新于。2022年3月28日

    Ana Neto

    Ana Neto
    Connecting Software的技术顾问"""。

    作者:

    我从1997年开始做软件工程师,最近比较喜欢写作和公开演讲。  您对本篇文章或对Connect Bridge有什么疑问或意见? 我很希望得到您的反馈!

     ana@connecting-software.com


    贡献者。 杰弗逊-高桥健二,迪奥戈-古维亚

    Comments 6

    1. chamelijassi的头像
    2. Paul Wiebe的头像

      看起来很有趣--业务规则的执行情况如何? 例如,我们需要从我们的POS机(SQL表中的数据)获取交易到业务中心--那么销售涉及到D365中不存在的客户和/或产品的用例呢?

    3. 安娜-内托的头像 Post
      Author

      嗨,保罗。

      如果你能从你的POS机的SQL表中获得数据,并且它遵循一个你能理解的结构,那么你可以使用 Connect Bridge 来将所有的东西都放到Business Central中。如果销售涉及的客户和或产品在D365中并不存在,你需要决定怎么做,例如,你可以使用一个通用的客户或产品,或者你可以在飞行中创建新的客户或产品。

      我们将通过您指定的电子邮件与您联系,与您探讨这个方案。

      Ana Neto

    4. shoviv的头像
    5. MG的头像

      这是否允许我将案例从CRM 2016迁移到云端的Dyn365,并且仍然能够将它们连接到原有的联系人上?联系人查询将使我们的代理回到原有的版本,但案例将在云上更新。

    6. 安娜-内托的头像 Post
      Author

      是的,通过Connect Bridge,您可以将案例从CRM 2016内部迁移到云端的Dynamics 365。我们的团队成员将通过电子邮件与您联系,如果您想了解更多细节。

    发表回复

    您的电子邮箱地址不会被公开。 必填项已用 * 标注

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.