在 Power BI Desktop 中使用 SAP Business Warehouse 連接器
您可以使用 Power BI Desktop 來存取 SAP Business Warehouse (SAP BW) 資料。 SAP BW 連接器實作 2.0 版已較 1.0 版大幅改善效能和功能。
如需有關 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 連接器 3.0 或 3.1。 您可以從 SAP 下載 SAP .NET 連接器 3.0 或 3.1 (英文)。 想要存取下載就需要有效的 S 使用者登入。
.NET Framework 連接器有 32 位元和 64 位元版本。 請選擇符合您 Power BI Desktop 安裝版本的版本。
當您安裝時,在 [選用設定] 步驟中,確定您已選取 [將組件安裝到 GAC]。
注意
SAP BW 連接器的第一個版本需要 NetWeaver DLL。 目前的版本不需要 NetWeaver DLL。
在 Power BI Desktop 中連線到 SAP BW 資料
若要使用 SAP BW 連接器連線到 SAP BW 資料,請遵循下列步驟:
在 Power BI Desktop 中,選取 [取得資料]。
在 [取得資料] 畫面上,選取 [資料庫],然後選取 [SAP Business Warehouse 應用程式伺服器] 或 [SAP Business Warehouse 訊息伺服器]。
選取 Connect。
在下一個畫面上,輸入伺服器、系統和用戶端資訊,以及是要使用 [匯入] 還是 [DirectQuery] 連線方法。 如需詳細指示,請參閱:
注意
您可以使用 SAP BW 連接器從預設的 SAP BW 伺服器 Cube 匯入資料,也可以使用 DirectQuery 連線到資料。 如需搭配 DirectQuery 使用 SAP BW 連接器的詳細資訊,請參閱 DirectQuery 和 SAP Business Warehouse (BW) (部分機器翻譯)。
您也可以選取 [進階選項],然後選取 [語言代碼]、要針對指定伺服器執行的自訂 [MDX 陳述式],以及其他選項。 如需詳細資訊,請參閱使用進階選項 (部分機器翻譯)。
選取 [確定] 以建立連線。
提供任何必要的驗證資料,然後選取 [連線]。 如需驗證的詳細資訊,請參閱使用資料來源進行驗證 (部分機器翻譯)。
如果您未指定自訂 MDX 陳述式,[導覽] 畫面會顯示伺服器上所有可用 Cube 的清單。 您可以向下切入並從可用的 Cube 中選取項目,包括維度和量值。 Power BI 會顯示 Open Analysis Interfaces (英文) 所公開的查詢和 Cube。
當您從伺服器選取一或多個項目時,[導覽] 會顯示輸出資料表的預覽。
[導覽] 對話方塊也會提供下列顯示選項:
- 僅限選取的項目。 根據預設,[導覽器] 會顯示所有項目。 此選項適用於驗證所選取的一組最終項目。 或者,您也可以在預覽區域中選取資料行名稱,以檢視所選取的項目。
- 啟用資料預覽。 此值為預設值,並且會顯示資料預覽。 取消選取此選項,可藉由不再要求預覽資料來減少伺服器呼叫次數。
- 技術名稱。 SAP BW 支援 Cube 內物件的使用者定義「技術名稱」。 Cube 擁有者可以公開 Cube 物件的這些易記名稱,而不是只公開物件的實體名稱。
選取您需要的所有物件後,請選擇下列其中一個選項:
- 載入,可將輸出資料表的整組資料列載入到 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
- DataStream
預設值為 BasXmlGzip。 此模式可改善效能以實現低延遲或大量的查詢。
批次大小會指定在執行 MDX 陳述式時,一次擷取的資料列數目上限。 值較小表示在擷取大型語意模型時,會對伺服器進行更多呼叫。 值較大或許能改善效能,但也可能會造成 SAP BW 伺服器發生記憶體問題。 預設值為 50000。
啟用特性結構會變更導覽顯示特性結構的方式。 這個選項的預設值為 false (或取消核取)。 此選項會影響可供選取的物件清單,且不受原生查詢模式支援。
其他改善
下列清單描述其他實作 2.0 改善:
- 效能較佳。
- 能夠擷取數百萬個資料列的資料,以及透過批次大小參數進行微調。
- 能夠切換執行模式。
- 支援壓縮模式,這對高延遲連線或大型語意模型特別有用。
- 已改善
Date
變數的偵測。 Date
(ABAP 類型DATS
)和Time
(ABAP 類型TIMS
) 維度會公開為日期和時間,而不是文字值。 如需詳細資訊,請參閱 SAP BW 中的具類型日期支援 (部分機器翻譯)。- 較佳的例外狀況處理。 現在會顯示 BAPI 呼叫中發生的錯誤。
BasXml
和BasXmlGzip
模式中的資料行折疊。 例如,如果產生的 MDX 查詢擷取 40 個資料行,但目前的選取範圍只需要 10 個,則此要求會傳遞到伺服器以擷取較小的語意模型。
更新現有的實作 1.0 報表
您可以變更現有報表,以便只在匯入模式下使用實作 2.0。
從 Power BI Desktop 中的現有報表中,選取功能區中的 [資料轉換],然後選取要更新的 SAP Business Warehouse 查詢。
以滑鼠右鍵按一下查詢並選取 [進階編輯器]。
在 [進階編輯器] 中,變更
SapBusinessWarehouse.Cubes
呼叫,如下所示:判斷查詢是否已經包含選項記錄,例如下列範例:
如果是,請新增
[Implementation 2.0]
選項,並移除任何ScaleMeasures
選項:注意
ScaleMeasures
選項在此實作中已被取代。 連接器現在一律會顯示未調整的值。如果查詢尚未包含選項記錄,請加以新增。 例如,變更下列項目:
變更為:
注意
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 查詢,如下圖所示:
導覽不會顯示資料預覽
在這個問題中,[導覽] 不會顯示資料預覽,而是會顯示「物件參考未設定為物件的執行個體」錯誤訊息。
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
的存取權。
啟用追縱
若要進一步針對這些問題或類似問題進行疑難排解,您可以啟用追蹤功能:
- 在 Power BI Desktop 中,選取 [檔案]>[選項及設定]>[選項]。
- 在 [選項] 中,選取 [診斷],然後選取 [診斷選項] 下的 [啟用追蹤]。
- 嘗試在追蹤功能已啟用的情況下從 SAP BW 取得資料,並檢查追蹤檔案以取得更多詳細資料。
SAP BW 連線支援
下表描述 SAP BW 目前的 Power BI 支援。
Products | 模式 | 驗證 | 連接器 | SNC 程式庫 | 支援 |
---|---|---|---|---|---|
Power BI Desktop | 任意 | 使用者/密碼 | 應用程式伺服器 | N/A | Yes |
Power BI Desktop | 任意 | Windows | 應用程式伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Desktop | 任意 | Windows 透過模擬 | 應用程式伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Desktop | 任意 | 使用者/密碼 | 訊息伺服器 | N/A | Yes |
Power BI Desktop | 任意 | Windows | 訊息伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Desktop | 任意 | Windows 透過模擬 | 訊息伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Gateway | Import | 與 Power BI Desktop 相同 | |||
Power BI Gateway | DirectQuery | 使用者/密碼 | 應用程式伺服器 | N/A | Yes |
Power BI Gateway | DirectQuery | Windows 透過模擬 (固定使用者,無 SSO) | 應用程式伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Gateway | DirectQuery | 透過 Kerberos 使用 SSO 進行 DirectQuery 查詢選項 | 應用程式伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Gateway | DirectQuery | 使用者/密碼 | 訊息伺服器 | N/A | Yes |
Power BI Gateway | DirectQuery | Windows 透過模擬 (固定使用者,無 SSO) | 訊息伺服器 | sapcrypto + gsskrb5/gx64krb5 | Yes |
Power BI Gateway | DirectQuery | 透過 Kerberos 使用 SSO 進行 DirectQuery 查詢選項 | 訊息伺服器 | gsskrb5/gx64krb5 | No |
Power BI Gateway | DirectQuery | 透過 Kerberos 使用 SSO 進行 DirectQuery 查詢選項 | 訊息伺服器 | sapcrypto | Yes |