SAP Business Warehouse 连接器的版本 1.0 已弃用。 新连接将使用 SAP Business Warehouse 连接器的实现 2.0。 在不久的将来,对 1.0 版的所有支持都将从连接器中删除。 使用本文中的信息更新现有版本 1.0 报表,以便它们可以使用此连接器的实现 2.0。
Implementation 2.0 的新选项
Implementation 2.0 支持以下选项:
ExecutionMode 指定用于执行服务器查询的 MDX 接口。 以下选项是有效的:
SapBusinessWarehouseExecutionMode.BasXml
SapBusinessWarehouseExecutionMode.BasXmlGzip
SapBusinessWarehouseExecutionMode.DataStream
默认值为
SapBusinessWarehouseExecutionMode.BasXmlGzip
。
使用
SapBusinessWarehouseExecutionMode.BasXmlGzip
可在大数据集出现高延迟的情况下提高性能。
BatchSize 指定执行 MDX 语句时一次检索的最大行数目。 检索大数据集时,少量的行会转换为较多的服务器调用。 大量的行可能会提高性能,但可能导致 SAP BW 服务器的内存问题。 默认值为 50000 行。
EnableStructures 指示是否识别出特征结构。 此选项的默认值为 false。 影响可选择的对象列表。 本机查询模式下不支持。
此实现已弃用 ScaleMeasures 选项 。 现在,此行为与将 ScaleMeasures 设置为 false 相同,始终显示不成比例的值。
Implementation 2.0 的其他改进
以下列表介绍了新实现的一些其他改进:
改进的性能。
可检索几百万行数据,通过批大小参数微调。
可切换执行模式。
支持压缩模式。 对高延迟连接或大型数据集特别有用。
Date
变量检测改进。
将
Date
(ABAP 类型 DATS) 和
Time
(ABAP 类型 TIMS 分别) 维度公开为日期和时间,而不是文本值。 详细信息:
支持 SAP BW 中的键入日期
更好的异常处理。 现在,显示 BAPI 调用中发生的错误。
BasXml 和 BasXmlGzip 模式下的列折叠。 例如,如果生成的 MDX 查询检索 40 列,但当前选择仅需要 10 列,此请求将传递到服务器,以检索较小的数据集。
更改现有报表以使用 Implementation 2.0
仅在“导入”模式下,才能更改现有报表以使用 Implementation 2.0。 执行以下步骤:
打开现有报表,选择功能区中的“编辑查询” ,然后选择要更新的 SAP Business Warehouse 查询。
右键单击查询,选择“高级编辑器” 。
在“高级编辑器” 中,按如下所示更改
SapBusinessWarehouse.Cubes
调用:
确定查询是否已包含选项记录,如以下示例。
如果是,请添加
Implementation 2.0
选项,然后删除该
ScaleMeasures
选项(如果存在),如下所示。
如果查询不包含选项记录,请添加。 对于以下选项:
只需将其更改为:
已尽一切努力使 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。
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]"}
#"Added Items"
需要将密钥添加到 中才能访问键入的日期。 例如,如果有名为 [0CALDAY] 的维度属性,则需要添加键 [20CALDAY] 以获取类型化值。
在上面的示例中,这意味着:
日历日。日历日级别 01 [0CALDAY] 将为文本 (标题) 。 (添加维度时默认添加。)
日历日。日历日级别 01.Key [20CALDAY] 将是一个日期 (必须手动选择) 。
若要在导入模式下手动添加密钥,只需展开
“属性”
并选择密钥。
键列的类型为 date,可用于筛选。 筛选此列将折叠到服务器。
对 SAP BW 功能的支持
下表列出了使用 Power Query SAP BW 连接器时不受完全支持或行为不同的所有 SAP BW 功能。
BEX 查询中定义的本地计算将更改通过 Bex 分析器等工具显示的数字。 但是,它们不会反映在通过公共 MDX 接口从 SAP 返回的数字中。
因此,Power Query中显示的数字不一定与 SAP 工具中相应视觉对象的数字匹配。
例如,从将聚合设置为 culated (的 BEx 查询连接到查询多维数据集时,) Power Query将返回基数,而忽略该设置。 然后,分析人员可以在本地应用正在运行的总和计算(例如 Power BI),但如果未执行此操作,则需要谨慎对待数字的解释方式。
在某些情况下, (特别是在处理多种货币) 时,SAP 公共接口返回的聚合数字与 SAP 工具显示的聚合数字不匹配。
因此,Power Query中显示的数字不一定与 SAP 工具中相应视觉对象的数字匹配。
例如,不同货币的总和在 Bex Analyzer 中显示为“*”,但 SAP 公共接口将返回总计,没有任何信息表明此类聚合数字毫无意义。 因此,Power Query将显示聚合 ($、EUR 和 AUD) 的数字。
任何货币格式 (例如,2,300 美元或 4000 澳元) 不会反映在Power Query中。
例如,度量单位 (230 KG) 不反映在Power Query中。
键与文本(短、中、长)
对于成本中心等 SAP BW 特征,导航器将显示单个项成本中心级别 01。 选择此项将在字段列表中包括成本中心的默认文本。 此外,还可以在“属性”节点中选择“键值”、“短名称”、“中等名称”和“长名称”值,以便在 SAP BW) 中维护特征 (。
请注意,这仅适用于导入连接模式。 对于 DirectQuery 模式,数据集中只会包含默认文本。
特征的属性可在特性的“属性”中选择。 这仅适用于导入连接模式。 对于 DirectQuery 模式,属性将不可用。
特性的多个层次结构
在 SAP 中,某一特性可以具有多个层次结构。 在 BEx 分析器等工具中,当特性包含在查询中时,用户可以选择要使用的层次结构。
在 Power BI 中,可以在字段列表中将各种层次结构视为同一维度上的不同层次结构。 但是,从位于同一维度的两个不同层次结构中选择多个级别将导致 SAP 返回空数据。
不规则层次结构的处理
SAP BW 支持不规则的层次结构,其中级别可能会丢失,例如:
Continent
美洲
加拿大
美国
未分配
澳大利亚
在 Power BI 中,在缺失级别显示 (空白) :
Continent
美洲
加拿大
美国
未分配
(空白)
澳大利亚
缩放系数/反转符号
在 SAP 中,关键数字可以有一个比例系数 (例如,1000) 定义为格式设置选项,这意味着所有显示器都将按该因子缩放。
同样,它可以具有反转符号的属性设置。 在 Power BI 中使用此类关键数字 (视觉对象,或作为计算) 的一部分,将导致 (使用未缩放的数字,并且符号不会) 反转。 基础缩放系数不可用。 在 Power BI 视觉对象中,轴(K、M、B)上显示的缩放单元可作为视觉对象格式的一部分进行控制。
级别动态显示/消失的层次结构
最初连接到 SAP BW 时,将检索关于层次结构级别的信息,从而导致字段列表中出现一组字段。 这是缓存的,如果级别集更改,则在调用 Refresh 之前,字段集不会更改。
这仅在 Power BI Desktop 中可行。 发布后,无法在Power BI 服务中调用此类刷新以反映对级别所做的更改。
默认筛选器
BEX 查询可以包含默认筛选器,SAP Bex 分析器将自动应用该筛选器。 这些不会公开,因此默认情况下,Power Query 中的等效用法不会应用相同的筛选器。
隐藏的键数字
BEX 查询可以控制关键数字的可见性,隐藏的图形不会显示在 SAP BEx 分析器中。 这不会通过公共 API 反映出来,因此此类隐藏的关键数字仍会显示在字段列表中。 但是,它们可以隐藏在Power Query中。
任何数字格式 (小数位数、小数点等) 不会自动反映在Power Query中。 但是,可以在Power Query控制此类格式设置。
层次结构版本控制
SAP BW 允许维护层次结构的不同版本,例如 2007 年与 2008 年的成本中心层次结构。 Power Query中仅提供最新版本,因为公共 API 不会公开有关版本的信息。
依赖于时间的层次结构
使用Power Query时,将在当前日期评估与时间相关的层次结构。
SAP BW 基于多维数据集中保留的汇率支持币种转换。 此类功能不会由公共 API 公开,因此在 Power Query 中不可用。
可以在 SAP 中定义特性的排序顺序(按文本或按键)。 此排序顺序不会反映在Power Query中。 例如,月份可能显示为 “April”、“Aug”等。
无法在 Power Query 中更改此排序顺序。
在导航器中,可以使用“显示选项”选择器显示特征/度量值名称 (说明) 和技术名称。 字段列表包含特征/度量值名称 (说明) 。
最终用户语言设置
用于连接到 SAP BW 的区域设置设置为连接详细信息的一部分,并且不会反映最终报表使用者的区域设置。
SAP BW 允许字段名称包含变量(例如“$YEAR$ Actuals”)的占位符,占位符会随后替换为所选值。 例如,如果为该变量选择 2016 年,则在 BEx 工具中该字段显示为“2016 Actuals”。
Power Query中的列名不会根据变量值而更改,因此会显示为“$YEAR$ Actuals”。 但是,可以在Power Query中更改列名。
客户退出变量
客户退出变量不由公共 API 公开,因此不受Power Query支持。
限制特性和属性 (属性) 选择
将数据从 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 中的增量刷新
。
与 Analysis for Office (AFO) 的比较
分析 office (AFO) 工具与 Power Query SAP Business Warehouse 连接器之间存在根本差异,因此数据输出可能会有所不同。 AFO 不使用 MDX,而是使用 SAP 开发的专有协议,该协议不适用于第三方,例如Power Query SAP Business Warehouse 连接器。 SAP 仅认证使用 MDX 接口的连接器。 AFO 使用多维查询策略,该策略以不同的方式导航数据,而Power Query SAP Business Warehouse 连接器需要平展数据,以便将其表示为表。 因此,即使数据相同,也会以不同的方式查询、表示并最终输出。
SAP Business Warehouse 应用程序服务器
SAP Business Warehouse 消息服务器
SAP BW 的导入与DirectQuery