Open Data Protocol (OData)是一种用于查询和更新数据Web协议,或者说是一种从当前应用程序中解锁并释放数据的方式。现在我们企业的IT环境中,可能已经有很多OData提供者,如:IBM WebSphere, Microsoft SQL Azure, SQL Server Reporting Services;或者像在线服务Netflix或是DBpedia。 SharePoint 2010也是一个OData提供者。其中的Access Services也是提供 OData服务的方式之一。在下面的演示中,你会看到如何从一个已发布的Access Web数据库中提取数据,并在Microsoft Excel 2010的 PowerPivot中使用该数据。
首先,我们需要实例化一个罗斯文网络数据库,并发布到SharePoint 2010。
Access Services 将数据存储在SharePoint 2010的列表里。因此,通过OData检索Access Services数据表的过程实际上与查询SharePoint列表的过程相同。这里有两篇博文介绍了OData在SharePoint中应用的更多细节,分别是这一篇和这一篇 。前面我也有一篇博文是介绍通过WCF使用列表OData服务的。对于我们的罗斯文应用程序,主要OData接入点是位于http://server/Northwind/_vti_bin/listdata.svc 。这个接入点描述了所有OData服务提供的表,假如我们要通过 OData获取Employee雇员表,则使用http://server/Northwind/_vti_bin/listdata.svc/Employees即可 。更多的功OData能描述可参考OData的开发者页面 。
注意:对于后者,IE默认会使用内置的RSS阅读器进行显示。页面会很奇怪。我们需要关闭IE的RSS阅读功能,才能看到上面的XML内容。方法是点击菜单“工具”->“Internet选项”。
在内容标签下找到“源和网页快讯”,点“设置”。
取消勾选“打开源阅读视图”,然后重新启动IE即可。
其中一种调用OData服务的方式是通过Excel 2010中的PowerPivot (注意:PowerPivot是一个加载项,需要单独安装。安装包下载和安装指南在给出的链接中,安装步骤比较简单)。若要从罗斯文数据库导入数据到PowerPivot,我们可以按照下列步骤:
1、 从功能区的PowerPivot标签中,点击“PowerPivot窗口”。
2、在打开的PowerPivot for Excel窗口中,点击功能区“获取外部数据”一节中的“从数据馈送”。
3、在弹出的表导入向导对话框中,输入该OData接入点地址,在本例中为: http://server/Northwind/_vti_bin/listdata.svc
4、从“表导入向导”中选择所需的罗斯文数据库表。本例中我们选择“Inventory”,“Categories”和“Products”。
5、完成该向导以便从Access Services检索数据。
罗斯文数据库中的数据现在就导入到PowerPivot中了,随时可供我们在Excel中使用。
参考资料