共用方式為


在 Power BI Desktop 中使用 SAP Business Warehouse 連接器

您可以使用 Power BI Desktop 來存取 SAP Business Warehouse (SAP BW) 數據。 SAP BW 連接器實作 2.0 已大幅改善 1.0 版的效能和功能。

本文提供如何在Power BI Desktop 中使用SAP BW連接器的指示,包括安裝、連線和疑難解答步驟,以及更新現有報表以使用最新連接器實作的資訊。

如需 SAP 客戶如何受益於將 Power BI 連線到其 SAP BW 系統的相關信息,請參閱 Power BI 和 SAP BW 白皮書。 如需搭配 SAP BW 使用 DirectQuery 的詳細資訊,請參閱 DirectQuery 和 SAP Business Warehouse (BW)

重要

SAP BW 連接器 1.0 版已被取代。 新的連線使用 SAP BW 連接器的實作 2.0。 很快將從連接器中移除所有對 1.0 版的支援。 使用本文中的資訊來更新現有的 1.0 版報表,以使用連接器的實作 2.0。

使用 SAP BW 連接器

請遵循下列步驟,使用 SAP BW 連接器來安裝和連線到數據。

先決條件

SAP 連接器的實作 2.0 需要 SAP .NET Connector 3.0 或 3.1。 您可以從 SAP 下載 SAP .NET Connector 3.0 或 3.1。 下載的存取權需要有效的 S 使用者登入。

.NET Framework 連接器提供 32 位和 64 位版本。 選擇符合 Power BI Desktop 安裝版本的版本。

當您安裝時,請在 選擇性安裝步驟中,確定您選取 [將元件安裝至 GAC

SAP 選擇性安裝步驟的螢幕快照,其中已選取 [將元件安裝到 GAC]。

注意

SAP BW 連接器的第一個版本需要 NetWeaver DLL。 目前的版本不需要 NetWeaver DLL。

在 Power BI Desktop 中連線到 SAP BW 數據

若要使用 SAP BW 連接器連線到 SAP BW 數據,請遵循下列步驟:

  1. 在 Power BI Desktop 中,選取 [取得資料]

  2. 在 [取得數據] 畫面上,選取 [資料庫],然後選取 [SAP Business Warehouse Application Server] 或 [SAP Business Warehouse Message Server]。

    顯示 SAP [取得資料] 選項的螢幕快照。

  3. 選取 [Connect]。

  4. 在下一個畫面上,輸入伺服器、系統和用戶端資訊,以及要使用 ImportDirectQuery 連線方法。 如需詳細指示,請參閱:

    注意

    您可以使用 SAP BW 連接器從預設的 SAP BW 伺服器 Cube 匯入數據,或使用 DirectQuery 連線到數據。 如需使用 SAP BW 連接器搭配 DirectQuery 的詳細資訊,請參閱 DirectQuery 和 SAP Business Warehouse (BW)

    您也可以選取 [進階] 選項,選取 語言代碼,選取自定義 MDX 語句 以針對指定的伺服器執行,以及其他選項。 如需詳細資訊,請參閱 使用進階選項

  5. 選取 確定 以建立連線。

  6. 提供任何必要的驗證數據,然後選取 [Connect]。 如需驗證的詳細資訊,請參閱桌面應用程式中的驗證

  7. 如果您未指定自定義 MDX 語句,Navigator 畫面會顯示伺服器上所有可用的 Cube 清單。 您可以深入可用的數據立方體,並選取項目,包括維度和量值。 Power BI 會顯示 開放分析介面 公開的查詢和多維資料集。

    當您從伺服器選取一或多個專案時,Navigator 會顯示輸出數據表的預覽。

    [導覽器] 畫面中 SAP 數據表預覽的螢幕快照。

    導覽器的 對話方塊也提供以下顯示選項:」

    • 只選取的項目。 根據預設,導航器 會顯示所有項目。 此選項有助於驗證您所選取的最後一組項目。 或者,您可以在預覽區域中選取資料行名稱,以檢視選取的專案。
    • 啟用數據預覽。 此值為預設值,並顯示數據預覽。 取消選取此選項,藉由不再要求預覽數據來減少伺服器呼叫數目。
    • 技術名稱。 SAP BW 支援 Cube 內物件的使用者定義 技術名稱。 Cube 擁有者可以公開 Cube 物件的這些易記名稱,而不是只公開對象的實體名稱。

    [導覽器] 視窗中顯示選項的螢幕快照。

  8. 選取您要的所有物件之後,請選擇下列其中一個選項:

    • 載入,以將輸出數據表的整組數據列載入 Power BI Desktop 數據模型。 報表 檢視畫面隨即開啟。 您可以開始可視化數據,或使用 數據表模型 檢視進行進一步修改。
    • 轉換數據,以開啟附有數據的 Power Query 編輯器。 您可以將整組數據列帶入 Power BI Desktop 數據模型之前,先指定更多數據轉換和篩選步驟。

除了 SAP BW Cube 中的數據,您也可以從 Power BI Desktop 中各種其他數據源匯入數據,並將其合併成單一報表。 這項能力帶來許多有趣的情境,用於在 SAP BW 數據上進行報告和分析。

SAP BW 實作 2.0 中的新選項

本節列出一些 SAP BW 連接器實作 2.0 功能和改進。 如需詳細資訊,請參閱 實作詳細資料

進階選項

您可以在 SAP BW 連線畫面上的 [進階選項] 底下設定下列選項:

  • 執行模式 指定 MDX 介面如何在伺服器上執行查詢。 下列選項有效:

    • BasXml
    • BasXmlGzip
    • 資料流

    預設值為 BasXmlGzip。 此模式可以改善低延遲或大量查詢的效能。

  • 批次大小 指定執行 MDX 語句時每次擷取的行數上限。 少數表示在擷取大型語意模型時,對伺服器進行更多呼叫。 較大的值可能會改善效能,但可能會導致 SAP BW 伺服器上的記憶體問題。 預設值為 50000

  • 啟用特性結構 變更 導覽器 顯示特性結構的方式。 此選項的預設值為 false 或未核取。 此選項會影響可供選取的物件清單,而且原生查詢模式不支援。

其他改善

以下清單描述其他執行 2.0 的改進:

  • 更好的效能。
  • 能夠擷取數百萬個數據列,並透過批次大小參數微調。
  • 切換執行模式的能力。
  • 支援壓縮模式,特別有利於高延遲連線或大型語意模型。
  • 改善 Date 變數的偵測。
  • Date (ABAP 類型 DATS) 和 Time (ABAP 類型 TIMS) 維度公開為日期和時間,而不是文字值。 如需詳細資訊,請參閱 在 SAP BW中對具類型日期的支援。
  • 更好的例外狀況處理。 BAPI 呼叫中發生的錯誤現在已浮出水面。
  • BasXmlBasXmlGzip 模式中的欄折疊。 例如,如果產生的 MDX 查詢擷取 40 個數據行,但目前的選取範圍只需要 10 個,則此要求會傳遞至伺服器以擷取較小的語意模型。

更新現有的實作 1.0 報告

您可以變更現有的報表,以只在匯入模式中使用實作 2.0。

  1. 從 Power BI Desktop 中的現有報表中,選取 [變換資料],然後選取要更新的 SAP Business Warehouse 查詢。

  2. 以滑鼠右鍵點擊查詢,然後選取 進階編輯器

  3. 進階編輯器中,變更 SapBusinessWarehouse.Cubes 呼叫,如下所示:

  4. 使用下列範例作為參考,判斷查詢是否已經包含選項記錄。

    顯示具有選項記錄之純文字查詢的螢幕快照。

    如果是,請新增 [[Implementation 2.0]] 選項,然後移除任何 ScaleMeasures 選項:

    顯示一個將值 Implementation = 2.0 添加到純文本查詢中的螢幕快照。

    注意

    此實作中 ScaleMeasures 選項已被取代。 連接器現在一律會顯示未調整的值。

  5. 如果查詢尚未包含選項記錄,請新增它。 例如,變更下列條目:

    顯示已新增選項記錄之純文字查詢的螢幕快照。

    自:

    顯示新選項純文字查詢的螢幕快照,已新增的值是實作 = 2.0。

注意

SAP BW 連接器的實作 2.0 應該與第 1 版相容。 不過,由於不同的 SAP BW MDX 執行模式,可能會有一些差異。 若要解決任何差異,請嘗試在執行模式之間切換。

故障排除

本節提供 SAP BW 連接器的一些疑難解答情況和解決方案。 如需詳細資訊,請參閱 SAP Business Warehouse 連接器疑難解答

SAP BW 中的數值數據會傳回格式錯誤的數值數據

在此問題中,SAP BW 會傳回具有小數點而非逗號的數值數據。 例如,1,000,000 會顯示為 1,000,000。

SAP BW 會以逗號或句號作為小數分隔符傳回十進位數據。 若要指定 SAP BW 應用於小數分隔符的字元,Power BI Desktop 驅動程式會調用函數 BAPI_USER_GET_DETAIL。 此呼叫會傳回一個名為 DEFAULTS的結構,其中具有一個名為 DCPFM 的欄位,用於將 十進位格式 儲存為下列其中一個值:

  • ' ' (空格) = 小數點為逗號:N.NNN,NN
  • 'X' = 小數點為句點:N,NNN.NN
  • 'Y' = 小數點為 N:NNN NNN,NN

發生此問題時,特定使用者對 BAPI_USER_GET_DETAIL 的呼叫會失敗,該使用者取得格式錯誤的數據,並出現類似下列訊息的錯誤訊息:

 You are not authorized to display users in group TI:
     <item>
         <TYPE>E</TYPE>
         <ID>01</ID>
         <NUMBER>512</NUMBER>
         <MESSAGE>You are not authorized to display users in group TI</MESSAGE>
         <LOG_NO/>
         <LOG_MSG_NO>000000</LOG_MSG_NO>
         <MESSAGE_V1>TI</MESSAGE_V1>
         <MESSAGE_V2/>
         <MESSAGE_V3/>
         <MESSAGE_V4/>
         <PARAMETER/>
         <ROW>0</ROW>
         <FIELD>BNAME</FIELD>
         <SYSTEM>CLNTPW1400</SYSTEM>
     </item>

若要解決此錯誤,SAP 系統管理員必須授與 Power BI SAP BW 使用者執行 BAPI_USER_GET_DETAIL的許可權。 此外,請確認使用者的數據具有正確的 DCPFM 值。

需要與 SAP BEx 查詢相關的連線功能

您可以在 Power BI Desktop 中執行 BEx 查詢,方法是啟用 Release for External Access 属性,如下圖所示:

顯示啟用外部存取功能的螢幕快照。

在此問題中,Navigator 不會顯示數據預覽,而是顯示 對象參考未設定為物件實例 錯誤訊息。

SAP 使用者需要存取下列特定的 BAPI 函式模組,以取得元數據,並從 SAP BW 的 InfoProviders 擷取數據:

  • BAPI_MDPROVIDER_GET_CATALOGS
  • BAPI_MDPROVIDER_GET_CUBES
  • BAPI_MDPROVIDER_GET_DIMENSIONS
  • BAPI_MDPROVIDER_GET_HIERARCHYS
  • BAPI_MDPROVIDER_GET_LEVELS
  • BAPI_MDPROVIDER_GET_MEASURES
  • BAPI_MDPROVIDER_GET_MEMBERS
  • BAPI_MDPROVIDER_GET_VARIABLES
  • BAPI_IOBJ_GETDETAIL

若要解決此問題,請確認使用者可存取 MDPROVIDER 模組,並 BAPI_IOBJ_GETDETAIL

啟用追蹤

若要進一步解決這些或類似問題的疑難,您可以啟用追蹤:

  1. 在 Power BI Desktop 中,選取 [[檔案]>[選項和設定]>[選項]
  2. 在 [選項]中,選取 [診斷],然後在 [診斷選項]下選取 [啟用追蹤]。
  3. 嘗試在追蹤作用中時從 SAP BW 取得數據,並檢查追蹤檔案以取得詳細數據。

SAP BW 連線支援

下表描述 SAP BW 目前的 Power BI 支援。

產品 模式 認證 連接器 SNC 圖書館 支援
Power BI 桌面版 任何 使用者/密碼 應用程式伺服器 N/A 是的
Power BI 桌面版 任何 窗戶 應用程式伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI 桌面應用程式 任何 透過仿真的 Windows 應用程式伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI Desktop 任何 使用者/密碼 訊息伺服器 N/A 是的
Power BI Desktop 任何 窗戶 訊息伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI Desktop 任何 透過仿真的 Windows 訊息伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI 閘道 進口 與 Power BI Desktop 相同
Power BI 閘道 DirectQuery 使用者/密碼 應用程式伺服器 N/A 是的
Power BI 閘道 直接查詢 Windows 透過模擬 (固定使用者, 無 SSO) 應用程式伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI 閘道 DirectQuery 使用 Kerberos 的 SSO 來進行 DirectQuery 查詢選項 應用程式伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI 閘道 DirectQuery 使用者/密碼 訊息伺服器 N/A 是的
Power BI 閘道 直接查詢 Windows 透過模擬 (固定使用者, 無 SSO) 訊息伺服器 sapcrypto + gsskrb5/gx64krb5 是的
Power BI 閘道 DirectQuery 使用 Kerberos 的 SSO 來執行 DirectQuery 查詢選項 訊息伺服器 gsskrb5/gx64krb5
Power BI 閘道 DirectQuery 透過 Kerberos 使用 SSO 進行 DirectQuery 查詢選項 訊息伺服器 sapcrypto 是的