自訂 Microsoft Dynamics 365 Power BI 內容套件

 

發行︰ 2017年1月

適用於: Dynamics 365 (online)、Dynamics CRM Online

Microsoft Power BI 是完整的服務和工具集合,用來將商務資料視覺化。 內容套件方便依據標準資料模型,透過 Power BI 視覺化和分析 Dynamics 365 資料。 內容套件內建一組 Dynamics 365 實體和欄位,對於大部分的銷售、服務或行銷報表案例很實用。

Dynamics 365 的執行個體通常會透過自訂欄位擴充。 這些自訂欄位不會自動出現在 Power BI 模型中。 本主題將描述不同的方式,可用來編輯或擴充內容套件中的報表,以在 Power BI 模型中包含自訂欄位。

本主題內容

在您自訂 Power BI 報表適用的 Dynamics 365 內容套件之前,請先這樣做

自訂 Dynamics 365 內容套件

發行報表至 Power BI 服務

在您自訂 Power BI 報表適用的 Dynamics 365 內容套件之前,請先這樣做

在您自訂內容套件之前,請先閱讀這裡的資訊並執行每一項必要的工作。

需求

Dynamics 365 (線上) 內容套件目前只有美式英文版。

準備內容套件進行自訂

重要

若要將 OData 摘要連接至 Dynamics 365 (線上) 執行個體,在自訂內容套件之前,您必須依照這裡所述的步驟進行。

  1. 啟動 Power BI Desktop。

    按一下 [檔案] > [開啟],開啟內容套件,例如 Sales Manager.bpix,然後按一下 [開啟]。

    內容套件內的多頁報表將會載入並顯示於 Power BI Desktop。

  2. 在 Power BI Desktop 功能區中,按一下 [編輯查詢]。

  3. 在 [編輯查詢] 視窗的左側導覽窗格中,按一下 [查詢] 底下的 [CRMServiceUrl] 查詢,然後在功能區上按一下 [進階編輯器]。 在來源定義中,將 base.crm.dynamics.com 取代為 Dynamics 365 (線上) 執行個體 URL。 例如,如果組織名稱為 Contoso,URL 看起來像這樣:

    Source = "https://contoso.crm.dynamics.com/api/data/v8.0/"

  4. 按一下 [完成],然後按一下查詢編輯器中的 [關閉並套用]。

  5. 當 [存取 OData 摘要] 對話方塊出現時,按一下 [組織帳戶],然後按一下 [登入]。

    Access an OData Feed dialog

  6. 當登入頁面出現時,輸入您的認證以便對 Dynamics 365 (線上) 執行個體驗證。

  7. 在 [存取 OData 摘要] 對話方塊中,按一下 [連線]。

    內容套件查詢會更新。 這可能需要幾分鐘。

自訂 Dynamics 365 內容套件

將報表的 [日期時間] 欄位轉換為 [日期] 欄位

將自訂欄位新增至報表

新增自訂欄位至客戶實體的報表

新增自訂選項組欄位至報表

增加查詢的列數

將報表的 [日期時間] 欄位轉換為 [日期] 欄位

在 Microsoft Dynamics 365 中,有些日期會以 [日期/時間/時區] 格式儲存,但不一定是報表中彙總資料慣用的格式。 您可以轉換報表中實體欄位顯示的日期。 例如,[商機建立日期] 欄位可以轉換成依日期報告建立的商機。

  1. 在 Power BI Desktop 中,按一下 [編輯查詢]。

  2. 在查詢編輯器左側導覽窗格中的 [查詢] 底下,按一下您要變更其日期欄位的查詢,像是 [商機] 實體查詢中的 [估計結案日期]。

  3. 以滑鼠右鍵按一下欄標題,如 [估計結案日期],指向 [變更類型],然後選取另一種日期類型,如 [日期]。

    Change data type in Power BI Desktop

  4. 按一下 [關閉並套用],關閉查詢編輯器。

  5. 在 Power BI 主頁面上按一下 [套用變更],更新相關的報表。

將自訂欄位新增至報表

下列程序描述如何將日期、字串或數字自訂欄位新增至報表,針對所有可用的實體,除了客戶實體。

注意

若要新增欄位至客戶實體,請參閱新增自訂欄位至客戶實體的報表。 若要新增選項組類型的欄位,請參閱新增自訂選項組欄位至報表。

  1. 在 Power BI Desktop 中,按一下 [編輯查詢]。

  2. 在查詢編輯器左側導覽窗格中的 [查詢] 底下,按一下您要在報表中使用其自訂欄位的查詢,像是 [商機] 實體查詢。

  3. 在右側窗格中 [套用的步驟] 底下,按一下設定按鈕 Dynamics 365 網頁用戶端設定按鈕,位於 [已移除其他資料行] 旁邊。

  4. [選擇資料行] 清單會顯示實體的所有欄位,包括自訂欄位。 選取您要的自訂欄位,然後按一下 [確定]。

    實體查詢會更新,且資料行會新增到實體資料表中您選取的自訂欄位中。

  5. 在右側窗格中 [套用的步驟] 底下,按一下 [Lang – 已重新命名資料行],然後按一下 [進階編輯器] 將欄位的對應新增至實體查詢。 例如,如果商機實體的自訂欄位名稱是 int_forecast,且顯示名稱是 Forecast,該項目會顯示像這樣。

        {"int_forecast","Forecast"}
    

    Add mapping for a custom field on a report

  6. 在您新增欄位對應之後,請確定進階編輯器底部沒有顯示語法錯誤。 另外,請確定顯示的欄位名稱與欄標題中出現的名稱一模一樣,包括大小寫在內。 如果未偵測到語法或資料表錯誤,請按一下 [完成]。

  7. 按一下查詢編輯器中的 [關閉並套用]。

    現在自訂欄位會出現在右側窗格中實體的 [欄位] 底下,而且可以新增至新的或現有的報表中。

新增自訂欄位至客戶實體的報表

由於客戶實體使用 Fetch XML 來篩選查詢,因此新增欄位的步驟與其他使用 OData 的實體查詢不同。 若要新增自訂欄位至 OData 查詢的實體,請參閱將自訂欄位新增至報表。

  1. 複製客戶實體的編碼的 Fetch XML 查詢 若要這麼做,請執行下列步驟:

    1. 在 Power BI Desktop 中,按一下 [編輯查詢]。

    2. 在查詢編輯器中左側導覽窗格的 [查詢] 底下,按一下 [客戶] 實體查詢,然後在功能區上按一下 [進階編輯器]。

    3. 從開頭為 %3Cfetch 且結尾為 fetch%3E 的第一行,複製整個編碼 Fetch XML。

    4. 您複製的編碼 Fetch XML 看起來應類似這樣:

      %3Cfetch%20version%3D%221.0%22%20output-format%3D%22xml-platform%22%20mapping%3D%22logical%22%20distinct%3D%22true%22%3E%3Centity%20name%3D%22account%22%3E%3Cattribute%20name%3D%22territorycode%22%20%2F%3E%3Cattribute%20name%3D%22customersizecode%22%20%2F%3E%3Cattribute%20name%3D%22owningbusinessunit%22%20%2F%3E%3Cattribute%20name%3D%22ownerid%22%20%2F%3E%3Cattribute%20name%3D%22originatingleadid%22%20%2F%3E%3Cattribute%20name%3D%22revenue%22%20%2F%3E%3Cattribute%20name%3D%22sic%22%20%2F%3E%3Cattribute%20name%3D%22marketcap%22%20%2F%3E%20%3Cattribute%20name%3D%22parentaccountid%22%20%2F%3E%3Cattribute%20name%3D%22owninguser%22%20%2F%3E%3Cattribute%20name%3D%22accountcategorycode%22%20%2F%3E%3Cattribute%20name%3D%22marketcap\_base%22%20%2F%3E%3Cattribute%20name%3D%22customertypecode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_postalcode%22%20%2F%3E%3Cattribute%20name%3D%22numberofemployees%22%20%2F%3E%3Cattribute%20name%3D%22accountratingcode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_longitude%22%20%2F%3E%3Cattribute%20name%3D%22revenue\_base%22%20%2F%3E%3Cattribute%20name%3D%22createdon%22%20%2F%3E%3Cattribute%20name%3D%22name%22%20%2F%3E%3Cattribute%20name%3D%22address1\_stateorprovince%22%20%2F%3E%3Cattribute%20name%3D%22territoryid%22%20%2F%3E%3Cattribute%20name%3D%22accountclassificationcode%22%20%2F%3E%3Cattribute%20name%3D%22businesstypecode%22%20%2F%3E%3Cattribute%20name%3D%22address1\_country%22%20%2F%3E%3Cattribute%20name%3D%22accountid%22%20%2F%3E%3Cattribute%20name%3D%22address1\_latitude%22%20%2F%3E%3Cattribute%20name%3D%22modifiedon%22%20%2F%3E%3Cattribute%20name%3D%22industrycode%22%20%2F%3E%3Clink-entity%20name%3D%22opportunity%22%20from%3D%22parentaccountid%22%20to%3D%22accountid%22%20alias%3D%22ab%22%3E%3Cfilter%20type%3D%22and%22%3E%3Ccondition%20attribute%3D%22opportunityid%22%20operator%3D%22not-null%22%20%2F%3E%3Ccondition%20attribute%3D%22modifiedon%22%20operator%3D%22last-x-days%22%20value%3D%22365%22%20%2F%3E%3C%2Ffilter%3E%3C%2Flink-entity%3E%3C%2Fentity%3E%3C%2Ffetch%3E
      
  2. 將編碼的 Fetch XML 解碼。 它必須是有效的編碼 Fetch XML,且解碼後看起來應該類似這樣:

    \<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="true"\> \<entity name="account"\> \<attribute name="territorycode" /\> \<attribute name="customersizecode" /\> \<attribute name="owningbusinessunit" /\> \<attribute name="ownerid" /\> \<attribute name="originatingleadid" /\> \<attribute name="revenue" /\> \<attribute name="sic" /\> \<attribute name="marketcap" /\> \<attribute name="parentaccountid" /\> \<attribute name="owninguser" /\> \<attribute name="accountcategorycode" /\> \<attribute name="marketcap\_base" /\> \<attribute name="customertypecode" /\> \<attribute name="address1\_postalcode" /\> \<attribute name="numberofemployees" /\> \<attribute name="accountratingcode" /\> \<attribute name="address1\_longitude" /\> \<attribute name="revenue\_base" /\> \<attribute name="createdon" /\> \<attribute name="name" /\> \<attribute name="address1\_stateorprovince" /\> \<attribute name="territoryid" /\> \<attribute name="accountclassificationcode" /\> \<attribute name="businesstypecode" /\> \<attribute name="address1\_country" /\> \<attribute name="accountid" /\> \<attribute name="address1\_latitude" /\> \<attribute name="modifiedon" /\> \<attribute name="industrycode" /\> \<link-entity name="opportunity" from="parentaccountid" to="accountid" alias="ab"\> \<filter type="and"\> \<condition attribute="opportunityid" operator="not-null" /\> \<condition attribute="modifiedon" operator="last-x-days" value="365" /\> \</filter\> \</link-entity\> \</entity\> \</fetch\>
    

    提示

    網路上可找到許多免費的 URL 編碼器和解碼器工具。

  3. 在 Fetch XML 中,於 <entity> 節點之間新增您的自訂實體做為屬性節點。 例如,若要新增名為 customclassificationcode 的自訂欄位,請在另一個屬性節點之後新增該節點如 industrycode

    <attribute name="industrycode" />
    <attribute name=" customclassificationcode "/>
    <link-entity name="opportunity" from="parentaccountid" to="accountid" alias="ab">
    
  4. 對更新的 Fetch XML 進行 URL 編碼。 包含新的自訂屬性的 Fetch XML 必須經過編碼,然後用來取代內容套件內含的現有 OData 摘要查詢。 若要這麼做,請將更新的 FetchXML 複製到剪貼簿,並貼入 URL 編碼器中。

  5. 將編碼的 Fetch XML URL 貼入 OData 摘要中。 若要這樣做,將編碼的 URL 貼到 Query=[fetchXml= 文字後面並放在問號之間,以取代現有的編碼 FetchXML,然後按一下 [完成]。

    下方的螢幕擷取畫面指出最左邊引號的位置。

    Paste encoded URL into OData feed

  6. 在右側窗格中 [套用的步驟] 底下,按一下設定按鈕 Dynamics 365 網頁用戶端設定按鈕,位於 [已移除其他資料行] 旁邊。

  7. [選擇資料行] 清單會顯示實體的所有欄位,包括自訂欄位。 選取先前新增至 Fetch XML 查詢的自訂欄位,如 customclassificationcode,然後按一下 [確定]。

    注意

    您在 [欄位選擇器] 中選取的欄位名稱,以及您新增至 FetchXML 查詢的欄位名稱必須相符。

    實體查詢會更新,且資料行會新增到實體資料表中您選取的自訂欄位中。

  8. 按一下查詢編輯器中的 [關閉並套用]。

    現在自訂欄位會出現在右側窗格中實體的 [欄位] 底下,而且可以新增至新的或現有的報表中。

新增自訂選項組欄位至報表

選項組欄位可讓您從多個值中選擇。 現成的選項組欄位範例為商機的 [評等] 和 [銷售階段] 欄位。 假設您在主要 [商機] 表單上有自訂選項組欄位,且擁有下列值和標籤。

自訂選項組範例

若要新增自訂選項組欄位至報表,請執行下列步驟。

  1. 新增自訂欄位資料行。

    • 在查詢編輯器中左側導覽窗格的 [查詢] 底下,按一下擁有相關聯自訂選項組的實體,如 [商機] 實體。

    • 在右側窗格中 [套用的步驟] 底下,按一下設定按鈕 Dynamics 365 網頁用戶端設定按鈕,位於 [已移除其他資料行] 旁邊。

    • [選擇資料行] 清單會顯示實體的所有欄位,包括自訂欄位。 選取自訂欄位,如 new_customoptionset,然後按一下 [確定]。

    • 按一下 [儲存],然後在出現提示時,按一下 [套用]。

      自訂欄位的資料行會出現在實體資料表中。

  2. 建立選項組查詢。

    1. 在 Power BI Desktop 中,按一下 [編輯查詢]。

    2. 在查詢編輯器的左側瀏覽窗格中。 在 [查詢] 底下,在 [製作資料表] 群組下尋找最類似您要新增至報表的選項組的選項組欄位,然後按一下其查詢。 在這個範例中,SalesStageOptionSet 查詢有四個選項,因此最理想選擇。

    3. 按一下 [進階編輯器]。

      選項組查詢會顯示。

      Create an option set query

    4. 將整個查詢複製到剪貼簿。 您可以將它貼入文字編輯器 (如記事本),供日後參考。

    5. 在查詢編輯器中用滑鼠右鍵按一下 [製作資料表] 群組,按一下 [新查詢],然後按一下 [空的查詢]。

    6. 在右側窗格的 [名稱] 底下輸入名稱,例如 CustomOptionSet,然後按 Enter。

    7. 按一下 [進階編輯器]。

    8. 在進階編輯器中貼入您先前複製的查詢。

    9. 將現有的值和選項取代為您自訂的值和選項。 在此範例中,您會變更這個。

      let
          Source = #table({"Value","Option"},{{0,"Qualify"},{1,"Develop"},{2,"Propose"},{3,"Close"}})
      in
          Source
      

      成為這個。

      let
          Source = #table({"Value","Option"},{{0,"A"},{1,"B"},{2,"C"},{3,"D"},{4,"E"}})
      in
          Source
      
    10. 確定沒有語法錯誤,然後按一下 [完成] 關閉進階編輯器。 值和選項資料表會出現在查詢編輯器中。

      新選項組查詢

    11. 按一下 [儲存],然後在出現提示時,按一下 [套用]。

  3. 插入實體和自訂選項組資料表的合併查詢。

    1. 在查詢編輯器的左側窗格中,按一下 [實體] 底下包含自訂選項組的實體。 在這個範例中,會選取 [商機] 實體查詢。

    2. 在功能區上按一下 [合併查詢],然後在出現插入一個步驟的提示時,按一下 [插入]。

    3. 在 [合併] 對話方塊中,按一下自訂選項組的欄標題,例如 new_optionset。 在下拉式清單中,選取您先前建立的對應選項組查詢。 當選項組資料表出現時,按一下 [] 欄標題選取它。

      合併表格選取項目

    4. 聯結種類保持為 [左方外部 (第一個的所有資料列、第二個的相符資料列)],然後按一下 [確定]。

      提示

      重新命名合併查詢。 在 [套用的步驟] 底下,用滑鼠右鍵按一下您建立的合併查詢,按一下 [重新命名],然後輸入描述性名稱,如 Merge CustomOptionSet

  4. 定義資料行,以便只顯示標籤。

    1. 在查詢編輯器的左側窗格中,按一下 [實體] 底下包含自訂選項組的實體。 在這個範例中,會選取 [商機] 實體查詢。

    2. 在右側窗格中 [套用的步驟] 底下,按一下其中一個展開的查詢,以顯示合併的資料行,如 [展開的 SalesStage]。

    3. 尋找並按一下在前面合併查詢步驟中建立的新資料行的欄標題。

    4. 在 [轉換] 索引標籤上,按一下 [展開]。

    5. 在 [展開新資料行] 對話方塊中,清除對應值的資料行 (因為資料行中只應顯示標籤)。 按一下 [完成]。

      Choose the column that represents the label

    6. 按一下 [儲存],然後在出現提示時,按一下 [套用]。

  5. 變更資料行名稱以便建立報表。

    1. 在查詢編輯器的左側窗格中,按一下 [實體] 底下包含自訂選項組的實體。 在這個範例中,會選取 [商機] 實體查詢。

    2. 按一下 [進階編輯器]。

    3. 新增重新命名的資料行明細項目,確定沒有語法錯誤,然後按一下 [完成]。 在此範例中,您先前建立的自訂選項組資料行名稱為 NewColumn,將會重新命名為 Custom Option Set

      Rename a column to display in reports

    4. 按一下 [儲存],然後在出現提示時,按一下 [套用]。

  6. 按一下 [關閉並套用],關閉查詢編輯器。

    自訂選項組現在可以用來建立 Power BI 報表。

增加查詢的列數

根據預設,Microsoft Dynamics 365 內容套件中的所有 Power BI 實體查詢不可超過 100,000 列。 若要增加可查詢的列數,請執行下列步驟。

重要

增加列數上限可能大幅影響報表重新整理所需的時間。 此外,Power BI 服務執行查詢的時間限制為 30 分鐘。 新增列數上限時,務必特別謹慎。

  1. 在 Power BI Desktop 中,按一下 [編輯查詢]。

  2. 在查詢編輯器中左側導覽窗格的 [查詢] 底下,按一下要增加列數上限的實體查詢,如 [潛在客戶] 實體。

  3. 在右側窗格的 [套用的步驟] 底下,按一下 [已保留第一個資料列]。

  4. 增加篩選的列數。 例如,若要增加到 150,000 列,請將 Table.FirstN(#"Filtered Rows",100001) 變更為 Table.FirstN(#"Filtered Rows",150000)

  5. 在右側窗格的 [套用的步驟] 底下,按一下 [檢查列數]。

  6. 尋找步驟中的 [>100,000] 部分。

    Increase row count value

  7. 將值增加為更大的數字,例如 150,000

  8. 按一下查詢編輯器中的 [關閉並套用]。

發行報表至 Power BI 服務

發行報表,就能在組織內幾乎所有裝置上共用和存取,且不受地點限制。

  1. 在 Power BI Desktop 主頁面 [首頁] 索引標籤功能區上,按一下 [發行]。

  2. 如果提示您登入 Power BI 服務,請按一下 [登入]。

  3. 如果有多個目的地可選,請選取您要的那個,然後按一下 [發行]。

另請參閱

使用 Power BI 搭配 Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權