Common Data Service (CDS) 初探

做者:陈希章 发表于 2017年12月16日git

前言

Common Data Service(如下简称为CDS),通用数据服务是一个创新性的基础功能,这是微软试图打造一个全新的基于SaaS模式的数据服务平台,一方面整合Office 365和Dynamics 365的数据(虽然如今尚未作到),与此同时,支撑以PowerApps,Microsoft Flow,Power BI为核心的商业应用服务。下面这个图能够清晰地看出它们之间的关系:github

CDS最先是做为PowerApps的一部分进行开发的,因此到目前为止,CDS的管理界面都是集成在PowerApps中的,每一个PowerApps的环境能够对应一个CDS数据库。数据库

CDS正式GA的时间是2016年10月份。请参考当时的官方文档:https://powerapps.microsoft.com/en-us/blog/powerapps-cds-ga/app

除了数据库,CDS还有几个主要概念,分别以下工具

  1. 实体(Entity)
  2. 关系(Relationship)
  3. 选项值(Picklist)

CDS定义了一套能够在不一样的组织通用的实体,以及它们的关系。绝大部分状况下,你应该直接使用这些实体,而不须要建立自定义实体。this

建立和管理数据库

要建立一个CDS数据库,你能够尝试登陆 https://preview.admin.powerapps.com/environments ,先要建立一个Environment(环境)插件

成功建立环境后,会提示你是否要建立数据库excel

若是选择建立,则能够设置权限,而后稍等片刻便可完成数据库的建立orm

在Excel中编辑实体数据

对于广大的Excel用户来讲,还有一个好消息就是,CDS的数据支持在Excel中直接支持。这在须要批量更新数据的时候,可能更加有用。你须要作的是,定位到你要编辑的实体,而后点击“Open in excel”按钮blog

下载获得一个Excel文件,双击打开后,除了看到一个表格结构外,还会自动加载一个Office Add-in

按照提示,Trust this add-in,而后在下一界面中输入你的Office 365帐号和密码登陆后,稍等片刻便可刷新读取到全部这个实体的数据

当选择某一列时,这个插件会自动检测到数据类型,若是是有选项值的话,还会自动列出来。这样的话,你能够在Excel中修改某个数据,而后点击“Publish”便可完成更新。

在Outlook中集成Common Data Service

除了Excel的集成,CDS还提供了一个与Outlook集成的工具,要启动该功能,须要在CDS的界面上点击“Productivity Settings”,而后按照提示下载一个清单文件

这将下载一个XML文件,实际上是一个Outlook Add-in的清单文件(manifest)。接下来咱们能够利用这个文件在Outlook中加载一个Add-in。

在Outlook的主界面上,点击“Store”这个按钮

在Add-ins的界面,选择“Add from File...”

选择Install

这个插件颇有意思,你安装完以后,在Outlook主界面上面并看不到任何变化,它是对邮件窗口的一个扩展。目前我发现的功能是这样的:在任意一封邮件中,会多出来一个按钮“Common Data Service”的按钮,点击后,会展开一个面板,它会检测到这个邮件中涉及到联系人,而后去跟CDS中的Contact这个实体对比,若是不存在,则能够添加为Contact,若是存在,则会尝试查找该联系人相关的Case记录。例以下面这个例子

目前该插件是在Preview的阶段,仅开放极少数的实体整合,准确地说,只有Case这个实体可用。

在PowerApps中使用Common Data Service

我在文章开始已经提到了CDS与PowerApps的渊源,应该说PowerApps是跟CDS结合得最好的一个应用。对于PowerApps来讲,CDS是一种更加好的数据源,在实体之间定义的关系能被自动识别出来,而且生成对应的下拉框。

Common Data Service是PowerApps中一个默认的链接器

登陆成功后,能够在实体列表中选择你但愿在当前应用使用的实体

点击“Connect”后,接下来能够在界面上使用这些实体的数据,例以下面这个表单

这里特别提一下CDS的优点,我选中的这个字段叫CurrentContact,它的类型实际上是一个复杂类型(Contact),透过CDS,PowerApps其实知道这是要读取另一个实体的信息,因此它会自动生成一个下拉框,并且能够自由设定要显示这个实体里面的什么属性。

至于更多的细节,这里就不展开了。若是你们对于PowerApps还不太熟悉,欢迎阅读下面两篇文章

  1. PowerApps 入门篇
  2. PowerApps 进阶篇

在Microsoft Flow 中使用Common Data Service

接下来要谈一下的是在Microsoft Flow中如何跟CDS进行集成和交互。你能够将CDS理解为一种数据源,那么在Microsoft Flow中,一方面能够根据CDS的数据变化触发流程(例如新增了一个Case时进行触发),也能够在其余流程中,往CDS的实体中写入数据。下图能够看到跟Common data service相关的模板就有18个。

Common Data Service的触发器共有两个,能够监听新增记录和更新记录两个行为

Common Data Service的操做共有九个

关于Microsoft Flow的细节,一样不是本文的重点,若是你还不太熟悉,欢迎阅读下面这篇文章

  1. Microsoft Flow 概览

在Power BI中使用Common Data Service

咱们几乎能够判定,CDS将在往后的数据服务这个领域发挥重大做用,它整合Office 365和Dynamics 365的数据(虽然如今尚未作到),与此同时,支撑以PowerApps,Microsoft Flow,Power BI为核心的商业应用服务。有了这么多数据,接下来固然就是怎么利用它们,让它们发挥更大做用。这个时候,Power BI就是一个很是不错的选择。

讨论Power BI的细节,很明显超出了本文的范围,不过,我此前也写好了相关的文章,请参考 观未见,行不止 —— Power BI 两周年技术和方案交流圆桌会议纪实

根据二月份的官方说明,Common Data Service已经能够直接在Power BI中使用了,但目前只是Preview,并且仅限于美国用户才能使用。

我在本身的Power BI Desktop中实际上是能看到这方面的界面,但实际没法操做,可能仍是须要等一段时间吧。

在数据源中搜索Common Data Service,而后点击下一步

选择对应的数据库以后,点击Ok,很不幸,目前为止,你可能也会收到下面这个相似的提示

我检查过Admin Center,确实没有发现下图提到的那个“Enable”按钮,这多是致使我没法使用的缘由吧,目前来讲,咱们能作的估计只有等了。

Common Data Service SDK

做为一个开发人员,我很天然还会想到,Common Data Service是否有开放的接口,可让我本身开发的应用程序能够与之交互呢?答案是确定的,这部分功能目前也只是在前期的研发中,但我相信它将成为CDS成功的关健。

下面这篇文章有基本的介绍,目前产品组提供了C# SDK的Sample,最好的状况是,他们正在跟Microsoft Graph团队合做,将来应该有望直接经过统一的接口就能访问到CDS,这真是太酷了!

https://docs.microsoft.com/en-us/common-data-service/entity-reference/cds-sdk-get-started

相关文章
相关标签/搜索