您知道可以使用 Haskell 访问存储在 Microsoft Dynamics CRM、Microsoft Dynamics AX、Microsoft SharePoint、Microsoft Exchange 等商业软件中的数据吗?
今天,我将介绍如何从遗留系统中使用 Connect Bridge平台.我将使用函数式语言 Haskell 和 ODBC 驱动程序(使用众所周知的 SQL 语法进行数据操作)进行演示。
Connect Bridge 平台是一个功能强大的集成平台,允许您使用 ODBC、JDBC 驱动程序和网络服务连接到不同的目标系统。这种组合使您能够从任何环境(包括传统系统)进行连接。
环境设置
首先,我们需要准备好运行代码的环境。这包括 3 个基本步骤:
-
- 1.安装 Connect Bridge
-
- 2.准备Haskell环境
-
- 3.配置连接字符串
安装 Connect Bridge
您可以获得 Connect Bridge 的免费试用版,这样您就可以在自己的环境中试用这一切,然后决定是否适合自己。
准备 Haskell 环境
要让 Haskell 正常工作,最简单的方法是按照以下网址的说明进行操作 https://www.haskell.org/get-started/
安装完成后,您需要安装 Haskell ODBC 驱动程序。在命令行中运行
阴谋组织的最新情况
cabal安装HDBC-odbc
在这之后,你的Haskell环境应该已经完全准备好了。
查找连接字符串
在示例中,我们将使用 Connect Bridge 的 ODBC 驱动程序。 您需要知道为您预配置的目标系统连接字符串。打开从 Connect Bridge Playground 下载的 QueryAnalyzer 工具。在 "连接浏览器 "中选择一个连接,右击并选择 "编辑连接"。转到高级选项卡并复制连接字符串。
打开提供的 CB_HaskellSample.hs 文件,在第 7 行放置您的连接字符串,而不是示例连接字符串。
编码
要使用Connect Bridge服务器访问,需要导入软件包。
导入数据库.HDBC 导入数据库.HDBC.ODBC
要与Connect Bridge服务器建立数据库连接,可以使用connectODBC功能。
涵养 <- connectODBC 'yourConnectionString';
要执行不产生结果的查询,可以调用。
run conn 'INSERT INTO account (name) VALUES ('Hello world from Haskell')'。
要执行带有结果集的查询,你可以调用。
quickQuery conn 'SELECT accountid, name FROM account' [] 。
我创建了一个示例函数来演示如何在 Haskell 中查询数据和处理结果。
执行查询 :: IO ( ) executeQuery = do { putStr '输入查询。' ; query <- getLine ; putStrLn '连接到Connect Bridge服务器......' 。 conn <- connectODBC connectionString; putStrLn ( '执行查询 '' ++ query ++ ''') 。 vals <- quickQuery conn query [ ] ; putStrLn ( '返回的行数' ++ show ( length vals ) ) 。 读取数据时,必须要有足够的时间,否则就会出现错误。 }
呼叫代码
要运行示例,你可以使用任何Haskell解释器,例如WinGHCi,它是随包附带的。
打开提供的文件 CB_HaskellSample.hs。 与已经修改的连接字符串。
只需输入你要调用的函数名称。你会被提示输入输入参数。
例1:
这个例子展示了如何从Haskell中创建Dynamics CRM的新账户。只需调用一个函数executeQuery并传递SQL查询''。INSERT INTO account (name) VALUES ('Hello world from Haskell')'作为查询。这将在你的Dynamics CRM中立即创建新的账户记录。
*Main> executeQuery
输入查询。INSERT INTO account (name) VALUES ('Hello world from Haskell')
连接到Connect Bridge服务器 ...
执行查询'INSERT INTO account (name) VALUES ('Hello world from Haskell')'
返回的行数为0
例2:
这个例子显示了如何从Dynamics CRM中检索5个最新的账户。调用函数executeQuery并传递SQL查询'SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon'。你可以选择调用函数csvExportQuery,将结果写入CSV文件中。
输入查询。SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC.
连接到Connect Bridge服务器 ...
执行查询'SELECT TOP 5 accountid, name, createdon FROM account ORDER BY createdon DESC' 。
返回的行数 5
account(e436e4d4-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 5,2014-08-15 13:12:39。
account(168f7ecb-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 4,2014-08-15 13:12:29。
account(158f7ecb-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 3,2014-08-15 13:12:24。
account(a2079fc4-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 2,2014-08-15 13:12:18。
account(a1079fc4-7d24-e411-a6b7-00155dc2040f),Hello world from Haskell 1,2014-08-15 13:12:12。
结论
我已经演示了如何用几行代码从 Haskell 轻松访问 Microsoft Dynamics CRM。同样的小努力也可以访问其他系统,如 SharePoint、Exchange、AX、Navision 和 Salesforce ...
连接器的完整列表见 https://www.connecting-software.com/connectors/).此外,您还可以从任何语言访问这些系统,只需像本文中描述的那样稍加努力即可。
如果您喜欢这篇文章,请获取 免费试用Connect Bridge 并从今天开始使用它!
原文及代码:Tomas Olejnik,2015 年 12 月 10 日
最后更新于 2023 年 5 月 4 日