您是否考虑过用 Java 代码连接 Microsoft Dynamics?是的,我知道......你宁愿远离任何微软的东西......但是,如果你能在不弄脏手的情况下从 Microsoft Dynamics 获取数据(甚至连接到 Microsoft Dynamics)呢?
我有什么选择?
与任何一种软件集成的经典方法都是使用其应用程序接口(API)。如果你想使用 Microsoft Dynamics API,实际上有两种选择。这两个都是 REST API,如果你需要查找它们,请确保查找 “Microsoft Customer Engagement REST API"。微软现在使用 "Customer Engagement"(客户参与)这一术语来表示与 Dynamics 有关的任何内容。.
回到你的选择,如果你正在寻找微软Dynamics API,这些是:
- 网络应用程序接口
- 在线管理 API
对于大多数情况下,Web API将是API的自然选择。它实现了OData(开放数据协议),支持Dynamics 365(包括在线和on-premises)、Dynamics CRM 2016和Dynamics CRM Online。使用的OData版本是4.0版本,使用OData是一大优势。
如果你还没有听说过OData,你可以从以下方面入手。 此处 进而深入 此处. .如果您不清楚 OData 的优势,我只能说它是被批准为国际标准(ISO/IEC).要使用这个API,你可能会使用SDL OData Frameworks或Apache Olingo,因为这些作为Java库支持OData V4。
第二个选项是在线管理 API,专门用于与实例相关的任务。您可以对 Office 365 租户中的在线实例执行各种任务,如创建、检索、删除、备份和还原实例。这是一个特定用途的 API,不会在通用集成场景中使用。
除了传统的 API 与 Web API 和/或在线管理 API 集成外,还可以尝试无代码/低代码解决方案。可以使用 PowerApps 并创建一个可以连接到 Microsoft Dynamics 的应用程序。然而,对于开发人员来说,这种方法意义不大......毕竟,你可以编写代码,为什么要回避呢?
如果使用 PowerApps,主要缺点是只能使用已定义的模板。而且,你最终得到的应用程序在离线时完全没有用武之地,也无法真正处理安全等棘手问题。我认为,只有在不会编码的情况下,你才会忍受这些限制。
危险地带--与Microsoft Dynamics的整合可能对我不利?
比方说,你可以选择经典的 API 集成。首先需要注意的是,这需要大量的学习。基本的 API 文档可以在 https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/about?view=dynamics-ce-odata-9.
如果需要使用 Dynamics 以前的版本(9.x 之前),则需要学习 https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/developers-guide/mt607689(v=crm.8).
总之,有很多文档需要你去了解。它并不是超级难上手,但如果你是在现实生活中的应用,那就更难了。如果你选择的是这条路,请确保你有时间去做。
但真正的危险来自更新。Dynamics 的产品生命周期很快!如果回顾过去 10 年,你会得到以下结果(更多详情请查看 https://docs.microsoft.com/en-gb/previous-versions/dynamics/ 旧版本或 https://community.dynamics.com/#dynamicsproductsdivid 为当前的)。)
Dynamics AX
- Dynamics 365 for Finance and Operations
- Microsoft Dynamics AX 2012
Dynamics CRM
- Dynamics 365 用于销售
- Dynamics 365 客户服务
- 用于现场服务的 Dynamics 365
- Dynamics CRM 2016
- Dynamics CRM 2015
- Dynamics CRM 2013
- Dynamics CRM 2011
Dynamics NAV
- Dynamics 365 商务中心
- Dynamics NAV 2016
- Dynamics NAV 2015
- Dynamics NAV 2013 R2
- Dynamics NAV 2013
- Dynamics NAV 2009 R2
- Dynamics NAV 2009
统一服务台
Microsoft Dynamics ERP的管理报告器
微软Dynamics业务分析器
微软Dynamics营销
简而言之,在过去,如果要使用 Dynamics API,您必须考虑 Microsoft Dynamics CRM API(2016、2015、2013、2011、4.0)、Microsoft Dynamics GP API、Microsoft Dynamics AX API(2012/2009)...
你只能想象未来10年将给我们带来什么!......现在我们假设你今天建立了与Dynamics的Java集成。在未来的10年里,你需要多少工时来保持这个集成的更新?每次有新的版本推出时,你都需要研究API的变化,并回到你的代码中进行必要的修改。
这样来回折腾既费时又容易出错。面对现实吧......简直无聊透顶!让集成正常工作并不令人兴奋,而让集成在未来继续工作就更不令人兴奋了。.
安全区--与微软Dynamics的整合能否为我所用?
那有没有更好的方法在Java中进行微软Dynamics的这种集成呢?解决方案是在你(和你的Java代码)和API之间找一个集成工具。我们建议的工具是 Connect Bridge.
这是一个付费工具,但它确实有一个 免费试用 因此,你可以看看它是否适合你。该工具的优点在于它能确保向前和向后的兼容性。您创建的 Java 代码与之集成,然后您的用户就可以升级(甚至降级,如果出现这种情况的话),而您不必为此担心。微软还可以推出新版本的 API,重组所有 Dynamics 解决方案,或者做任何他们想做的事情......您的解决方案仍将做它本来要做的事情,而您无需付出任何努力!
这怎么操作呢? Connect Bridge 基本上是将SQL语句翻译成API调用。你正在编写你的Java代码,就像你使用JDBC访问关系型数据库一样(也支持ODBC和Web服务)。你正在使用SELECT、INSERT、UPDATE和DELETE语句。你正在使用存储过程。但这一切只是一层抽象。
您没有访问 Dynamics 数据库(这是件好事!)。但看起来好像是这样。Connect Bridge 自带的查询工具可以测试(假)查询,查看(假)表及其(假)列,并找到方便的(假)存储过程。就像我说的,它看起来就像你在查看一个 SQL 数据库,但它只是一个抽象概念。测试完成后,把代码中的所有内容都放到数据库中,就像使用 JDBC 连接数据库一样......就这样!一个无需维护的工作解决方案。所有维护工作都由 Connect Bridge 承担。这就是为什么它是一款付费工具,也是它物有所值的原因所在!
需要注意的是,这不仅适用于从Dynamics中读取数据,也适用于将数据放入其中。对于将数据放入,你需要使用INSERT或UPDATE语句或其中一个可用的存储过程。虽然第一次做的时候会觉得很害怕,因为感觉好像真的在接触Dynamics数据库,但你只要记住,你总是通过API,所以你是在安全的基础上进行的。
结论
我们已经看到如何在Java中访问Microsoft Dynamics数据,可以很容易地使用 Connect Bridge集成平台.好消息是,微软Exchange和微软SharePoint也可以做到这一点。事实上,您可以连接到微软生态系统的任何软件,连接到Salesforce和许多其他软件。
- SharePoint 2010、2013、2016、2019、在线
- Office 365
- Exchange Server 2003、2007、2010 SP1、2013、2016、2019、Exchange Online
- 活动目录
- 宾
- Excel、Word、PowerPoint
- 团队、规划师
你只需要有Connect Bridge这个基础集成平台,然后选择你想要的具体软件的连接器。
如果你想了解目前Connect Bridge的连接器,可以去的地方是 https://www.connecting-software.com/connectors/.

如果您想了解这一广泛系列中哪些是最新的连接器,请查看 Connect Bridges 的 Dynamics 365 BC 和 Dynamics 365 FO 连接器。
在Connect Bridge中,你有一个有趣的附加选项,就是文件的智能封印。有一个附加功能,它使用区块链技术在Dynamics中对文件进行密封。它给你提供了最高的安全级别,保证文档没有被篡改,但事实上,以一种巧妙的方式使用分布式账本,使其更具成本效益。而且它还可以与存储在其他地方的文件一起工作,例如在SharePoint中。
我们希望这篇文章对您有所帮助下面是我们在博客上讨论其他整合可能性的一些文章。

Comments 1
非常好,内容丰富的文章。