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

相關文章
相關標籤/搜索