共用方式為


實作詳細資料

本文說明 Power Query SAP Business Warehouse 連接器實作 2 中可用的轉換資訊和特定功能。

重要

SAP Business Warehouse 連接器 1.0 版已被取代。 新的連線將會使用 SAP Business Warehouse 連接器的實作 2.0。 即將從連接器中移除所有 1.0 版的支援。 使用本文中的資訊來更新現有的 1.0 版報告,以便他們可以使用此連接器的實作 2.0。

實作 2.0 的新選項

實作 2.0 支援下列選項:

  • ExecutionMode 會指定用來在伺服器上執行查詢的 MDX 介面。 下列選項有效:

    • SapBusinessWarehouseExecutionMode.BasXml

    • SapBusinessWarehouseExecutionMode.BasXmlGzip

    • SapBusinessWarehouseExecutionMode.DataStream

      預設值是 SapBusinessWarehouseExecutionMode.BasXmlGzip

      當遇到大型數據集的高延遲時,使用 SapBusinessWarehouseExecutionMode.BasXmlGzip 可能會改善效能。

  • BatchSize 會指定要在執行 MDX 語句時擷取的數據列數目上限。 一小部分會在擷取大型數據集時轉譯成更多對伺服器的呼叫。 大量的數據列可能會改善效能,但可能會導致 SAP BW 伺服器上的記憶體問題。 預設值為 50000 個數據列。

  • EnableStructures 指出是否辨識特性結構。 此選項的預設值是 False。 影響可供選取的物件清單。 原生查詢模式不支援。

此實作中已淘汰 ScaleMeasures 選項。 行為現在與將 ScaleMeasures 設定為 false 相同,一律會顯示未調整的值。

實作 2.0 的其他改善

下列清單說明新實作隨附的一些其他改進:

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

將現有的報表變更為使用實作 2.0

只有在匯入模式中,才能將現有的報表變更為使用實作 2.0。 執行下列步驟:

  1. 開啟現有的報表,選取 功能區中的 [編輯查詢 ],然後選取要更新的 SAP Business Warehouse 查詢。

  2. 以滑鼠右鍵按下查詢,然後選取 [進階編輯器]。

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

    判斷查詢是否已經包含選項記錄,例如下列範例。

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

    若是如此,請新增 Implementation 2.0 選項,並在出現時移除 ScaleMeasures 選項,如下所示。

    此螢幕快照顯示具有加值實作 = 2.0 的純文本查詢。

    如果查詢尚未包含選項記錄,只要新增它即可。 針對下列選項:

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

    只要將它變更為:

    此螢幕快照顯示新選項的純文本查詢,其加值實作 = 2.0。

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

支援 SAP BW 中的具型別日期

SAP BW 連接器的實作 2.0 包含對具型別日期和時間的支援。 如果您查詢具有 ABAP 類型、DATS 或 TIMS 維度的報表,現在可以輸出為日期,而不是文字。

使用這項功能的限制如下:

  • 僅適用於 SAP BW 連接器的實作 2.0。
  • 僅適用於匯入模式。
  • 用來連線到 SAP BW 伺服器的帳戶應該有足夠的許可權來呼叫BAPI_IOBJ_GETDETAIL。
let
   Source = SapBusinessWarehouse.Cubes("sapbwtestserver", "00", "837", [ExecutionMode=SapBusinessWarehouseExecutionMode.BasXmlGzip, Implementation="2.0"]),
   #"$INFOCUBE" = Source{[Name="$INFOCUBE"]}[Data],
   #"$0D_DECU" = #"$INFOCUBE"{[Id="$0D_DECU"]}[Data],
   #"Added Items" = Cube.Transform(#"$0D_DECU",
   {
      {Cube.AddAndExpandDimensionColumn, "[0CALDAY]", {"[0CALDAY].[LEVEL01]"}, {"Calendar day.Calendar day Level 01"}},
      {Table.AddColumn, "Calendar day.Calendar day Level 01.Key", each Cube.AttributeMemberProperty([Calendar day.Calendar day Level 01], "[20CALDAY]")},
      {Cube.AddMeasureColumn, "Billed Quantity", "[Measures].[0D_INV_QTY]"}
   }) 
in
     #"Added Items"

您必須在 中新增金鑰,才能存取具類型的日期。 例如,如果有稱為 [0CALDAY] 的維度屬性,您必須新增索引鍵 [20CALDAY] 以取得具類型的值。

在上述範例中,這表示:

  • 行事曆日期。行事曆日層級 01 [0CALDAY] 將是文字(標題)。 (新增維度時預設新增。)
  • 行事曆日期。行事曆日層級 01.Key [20CALDAY] 將會是日期(必須手動選取)。

若要在匯入模式中手動新增密鑰,只要展開 [屬性 ] 並選取密鑰即可。

在 Power Query 導覽器中選取 Key 屬性。

索引鍵數據行的類型為日期,而且可用於篩選。 篩選此資料行將會折疊至伺服器。

支援 SAP BW 功能

下表列出使用 Power Query SAP BW 連接器時,未完全支援或行為不同的 SAP BW 功能。

功能 描述
本機計算 BEX 查詢中定義的本機計算將會變更透過 Bex Analyzer 等工具顯示的數位。 不過,它們不會反映在透過公用 MDX 介面從 SAP 傳回的數位中。

因此,Power Query 中看到的數位不一定符合 SAP 工具中對應視覺效果的數位。

例如,從將匯總設定為 Cumulat 的 BEx 查詢連接到查詢 Cube 時,Power Query 會取回基數,忽略該設定。 然後,分析師可以在本機套用執行的總和計算,例如 Power BI,但若未完成此動作,就必須謹慎地解譯數位。
彙總 在某些情況下(特別是在處理多個貨幣時),SAP 公用介面傳回的匯總數位不符合 SAP 工具所顯示的數位。

因此,Power Query 中看到的數位不一定符合 SAP 工具中對應視覺效果的數位。

例如,在 Bex Analyzer 中,不同貨幣的總計會顯示為 “*”,但 SAP 公用介面會傳回總計,而沒有任何資訊表示這類匯總數位毫無意義。 因此,Power Query 會顯示數位(例如$、EUR 和 AUD)。
貨幣格式設定 任何貨幣格式設定(例如$2,300 或 4000 AUD)不會反映在 Power Query 中。
量值單位 量值單位(例如,230 KG)不會反映在 Power Query 中。
索引鍵與文字(短、中、長) 對於 CostCenter 之類的 SAP BW 特性,導覽器會顯示單一專案成本中心層級 01。 選取此專案將會在欄位清單中包含成本中心的預設文字。 此外,[索引鍵] 值、[簡短名稱]、[中名稱] 和 [長名稱] 值可用於選取特性的 [屬性] 節點(如果在 SAP BW 中維護的話)。

請注意,這隻適用於匯入連線模式。 針對 DirectQuery 模式,數據集中只會包含預設文字。
屬性 特性的屬性將可用於在特性的 [屬性] 中選取。 這隻適用於匯入連線模式。 若為 DirectQuery 模式,將無法使用屬性。
特性的多個階層 在 SAP 中,特性可以有多個階層。 然後在 BEx Analyzer 之類的工具中,當查詢中包含特性時,用戶可以選取要使用的階層。

在 Power BI 中,您可以在欄位清單中看到各種階層,做為相同維度上的不同階層。 不過,從相同維度上兩個不同的階層中選取多個層級,會導致 SAP 傳回空白數據。
處理不完全的階層 SAP BW 支援不完全的階層,其中層級可能會遺漏,例如:

   Continent
      美洲
         加拿大
         USA
   未指派
      澳洲

在 Power BI 中,這會在遺漏層級出現 [空白] :

   Continent
      美洲
         加拿大
         USA
   未指派
      (空白)
         澳洲
縮放比例/反向符號 在 SAP 中,關鍵數位可以有一個縮放比例(例如 1000)定義為格式化選項,這表示所有顯示器都會依該因數縮放。

它同樣可以設定反轉正負號的屬性集。 在 Power BI 中使用這類重要數位(在視覺效果中或計算的一部分),會導致使用未調整的數位(且符號不會反轉)。 基礎縮放比例無法使用。 在 Power BI 視覺效果中,軸上顯示的縮放單位 (K,M,B) 可以控制為視覺格式設定的一部分。
層級以動態方式顯示/消失的階層 一開始連線到 SAP BW 時,會擷取階層層級的相關信息,導致字段清單中的一組字段。 這是快取的,如果層級集變更,則一組字段在叫用 Refresh 之前不會變更。

這隻能在Power BI Desktop 中使用。 這類重新整理,以反映層級的變更,無法在發佈之後的 Power BI 服務 中叫用。
默認篩選 BEX 查詢可以包含預設篩選,SAP Bex Analyzer 會自動套用。 這些不會公開,因此 Power Query 中的對等用法預設不會套用相同的篩選。
隱藏的索引鍵數位 BEX 查詢可以控制關鍵數位的可見度,而隱藏的查詢不會出現在 SAP BEx Analyzer 中。 這不會透過公用 API 反映,因此這類隱藏的關鍵數位仍會出現在欄位清單中。 不過,它們接著可以在Power Query 中隱藏。
數值格式設定 任何數值格式設定(小數位置數、小數點等等)都不會自動反映在 Power Query 中。 不過,接著可以在Power Query 中控制這類格式設定。
階層版本控制 SAP BW 允許維護不同版本的階層,例如,2007 年與 2008 年的成本中心階層。 Power Query 中只會提供最新版本,因為公用 API 不會公開版本的相關信息。
時間相依階層 使用 Power Query 時,時間相依階層會在目前日期進行評估。
貨幣轉換 SAP BW 支援以 Cube 中保留的費率為基礎的貨幣轉換。 公用 API 不會公開這類功能,因此無法在 Power Query 中使用。
排序順序 特性的排序順序(依文字或索引鍵)可以在 SAP 中定義。 此排序順序不會反映在Power Query中。 例如,月可能會顯示為「四月」、「八月」等等。

您無法在 Power Query 中變更此排序順序。
技術名稱 在導覽器中,特性/量值名稱(描述)和技術名稱都可以使用 [顯示選項] 選取器來顯示。 欄位清單包含特性/量值名稱(描述)。
用戶語言設定 用來連線到 SAP BW 的地區設定會設定為連線詳細數據的一部分,而且不會反映最終報表取用者的地區設定。
文字變數 SAP BW 允許功能變數名稱包含變數的佔位元元(例如“$YEAR$ Actuals”),然後由選取的值取代。 例如,如果已為變數選取 2016 年,則欄位會顯示為 BEx 工具中的 “2016 Actuals”。

Power Query 中的數據行名稱不會根據變數值而變更,因此會顯示為 “$YEAR$ Actuals”。 不過,您可以在 Power Query 中變更資料行名稱。
客戶結束變數 客戶 Exit 變數不會由公用 API 公開,因此 Power Query 不支援。

效能考量

下表提供改善 SAP BW 數據載入和重新整理效能的建議摘要清單。

建議 描述
限制特性和屬性 (屬性) 選取 將數據從 SAP BW 載入 Power Query 所需的時間會隨著數據集的大小而增加,也就是扁平化結果集中的數據行和數據列數目。 若要減少數據行數目,請只選取您最終想要在報表或儀錶板中看到的導覽器中的特性和屬性。
利用參數 使用篩選/參數有助於減少結果集的大小,這可大幅改善查詢運行時間。

搭配大型維度使用參數時特別有價值,其中有許多成員,例如客戶、數據或文件編號。
限制索引鍵數字的數目 從 BEx 查詢 / BW 模型選取許多重要數據,在查詢執行期間可能會對效能造成重大影響,因為花費在載入單位的元數據上的時間。 只包含Power Query 中所需的重要資料。
將非常大的查詢分割成多個較小的查詢 針對 InfoCubes 或 BEx 查詢進行非常大的查詢,分割查詢可能很有説明。 例如,一個查詢可能會取得關鍵數據,而另一個查詢(或其他數個查詢)則會取得特性數據。 您可以在 Power Query 中聯結個別查詢結果。
避免虛擬提供者 (MultiProviders 或 InfoSets) VirtualProviders 類似於沒有持續性記憶體的結構。 在許多案例中,它們很有用,但可能會顯示較慢的查詢效能,因為它們代表實際數據的額外層。
避免在 BEx 查詢中使用導覽屬性 具有導覽屬性的查詢必須執行額外的聯結,相較於具有相同物件與特性的查詢,才能到達值。
使用 RSRT 監視並針對執行緩慢的查詢進行疑難解答 您的 SAP 管理員 可以使用 SAP BW 中的查詢監視器(交易 RSRT)來分析 SAP BW 查詢的效能問題。 如需詳細資訊,請檢閱 SAP 附注1591837。
避免受限制的索引鍵數位和導出的索引鍵數位 這兩者都是在查詢執行期間計算,而且可能會降低查詢效能。
請考慮使用累加式重新整理來改善效能 Power BI 會使用每次重新整理來重新整理完整的數據集。 如果您正在處理大量數據,則重新整理每個重新整理時的完整數據集可能不是最佳。 在此案例中,您可以使用累加式重新整理,因此您只會重新整理數據子集。 如需詳細資訊,請移至 Power BI 中的累加式重新整理。

Office 分析的比較 (AFO)

Office 分析工具與 Power Query SAP Business Warehouse 連接器之間有基本差異,因此數據輸出可能會有所不同。 AFO 不會使用 MDX,而是使用 SAP 所開發的專屬通訊協定,此通訊協定不適用於第三方,例如 Power Query SAP Business Warehouse 連接器。 SAP 只會認證使用 MDX 介面的連接器。 AFO 使用多維度查詢策略,以不同的方式巡覽數據,而Power Query SAP Business Warehouse 連接器需要扁平化數據,才能將其表示為數據表。 因此,即使它是相同的數據,它仍會查詢、表示,最終以不同的方式輸出。

另請參閱