在 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 白皮书。 有关将 DirectQuery 与 SAP BW 配合使用的详细信息,请参阅 DirectQuery 和 SAP Business Warehouse (BW)。
重要
SAP BW 连接器版本 1.0 已弃用。 新连接使用 SAP BW 连接器的 Implementation 2.0。 将来将从连接器中删除对版本 1.0 的所有支持。 使用本文中的信息,将现有版本 1.0 的报表更新为使用 2.0 版本的连接器实现。
使用 SAP BW 连接器
按照以下步骤安装 SAP BW 连接器并连接到数据。
先决条件
SAP 连接器的实现 2.0 需要 SAP .NET 连接器 3.0 或 3.1。 可以从 SAP 下载 SAP .NET Connector 3.0 或 3.1。 访问下载需要有效的 S 用户登录。
.NET Framework 连接器提供 32 位和 64 位版本。 选择与 Power BI Desktop 安装版本匹配的版本。
安装时,在 可选安装步骤中,请确保选择 将程序集安装到 GAC。
注意
SAP BW Connector 的第一个版本需要 NetWeaver DLL。 当前版本不需要 NetWeaver DLL。
通过 Power BI Desktop 连接到 SAP BW 数据
若要使用 SAP BW 连接器连接到 SAP BW 数据,请执行以下步骤:
在 Power BI Desktop 中,选择“获取数据”。
在 获取数据 屏幕上,选择 数据库,然后选择 SAP Business Warehouse 应用服务器 或 SAP Business Warehouse 消息服务器。
选择 连接。
在下一个屏幕上,输入服务器、系统和客户端信息,以及是使用 导入 还是 DirectQuery 连接方法。 有关详细说明,请参阅:
注意
可以使用 SAP BW 连接器从 SAP BW 服务器多维数据集(默认值)导入数据,也可以使用 DirectQuery 连接到数据。 有关将 SAP BW 连接器与 DirectQuery 配合使用的详细信息,请参阅 DirectQuery 和 SAP Business Warehouse (BW)。
还可以选择 高级选项,然后选择 语言代码、自定义 MDX 语句 针对指定服务器运行,以及其他选项。 有关详细信息,请参阅使用高级选项。
选择“确定”可建立连接。
提供任何必要的身份验证数据,然后选择 Connect。 有关身份验证的详细信息,请参阅桌面应用中
身份验证。 如果没有指定自定义 MDX 语句,“导航器”屏幕会显示服务器上所有可用多维数据集的列表。 可以向下钻取并选择可用多维数据集中的项目,包括维度和度量值。 Power BI 显示开放分析接口公开的查询和多维数据集。
从服务器中选择一个或多个项时,导航器 显示输出表的预览。
导航器 对话框还提供以下显示选项:
- 仅选定的项。 默认情况下,导航器 显示所有项。 此选项可用于验证你选择的最后一组项。 或者,可以在预览区域中选择列名称以查看所选项目。
- 启用数据预览功能。 此值为默认值,并显示数据预览。 通过不再请求预览数据,取消选择此选项可减少服务器调用次数。
- 技术名称。 对于多维数据集中的对象,SAP BW 支持用户定义的技术名称。 多维数据集所有者可以公开多维数据集对象的这些友好名称,而不是只公开对象的物理名称。
选择所需的所有对象后,请选择以下选项之一:
- 加载 将输出表的整个行集加载到 Power BI Desktop 数据模型中。 此时将打开“报表”视图。 可以使用 表 或 模型 视图开始可视化数据,或进行进一步修改。
- “转换数据”用于打开包含数据的“Power Query 编辑器”。 在将整个行集引入 Power BI Desktop 数据模型之前,可以指定更多的数据转换和筛选步骤。
除了 SAP BW 多维数据集中的数据外,还可以从 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 报告
可以将现有报表更改为仅在导入模式下使用 Implementation 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 支持。
产品 | 模型 | 认证 | 连接器 | SNC 图书馆 | 支持 |
---|---|---|---|---|---|
Power BI Desktop | 任何 | 用户/密码 | 应用程序服务器 | N/A | 是的 |
Power BI Desktop | 任何 | Windows操作系统 | 应用程序服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI Desktop | 任何 | 通过模拟的 Windows | 应用程序服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI 桌面版 | 任何 | 用户/密码 | 消息服务器 | N/A | 是的 |
Power BI Desktop | 任何 | Windows | 消息服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI Desktop | 任何 | 通过模拟的 Windows | 消息服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI 网关 | 进口 | 与 Power BI Desktop 相同 | |||
Power BI 网关 | DirectQuery | 用户/密码 | 应用程序服务器 | N/A | 是的 |
Power BI 网关 | DirectQuery | 通过模拟的 Windows(固定用户、无 SSO) | 应用程序服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI 网关 | DirectQuery | 通过 Kerberos 使用 SSO 进行 DirectQuery 查询选项 | 应用程序服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI 网关 | DirectQuery | 用户/密码 | 消息服务器 | N/A | 是的 |
Power BI 网关 | DirectQuery | 通过模拟的 Windows(固定用户、无 SSO) | 消息服务器 | sapcrypto + gsskrb5/gx64krb5 | 是的 |
Power BI 网关 | DirectQuery | 通过 Kerberos 使用 SSO 进行 DirectQuery 查询选项 | 消息服务器 | gsskrb5/gx64krb5 | 不 |
Power BI 网关 | DirectQuery(直接查询) | 通过 Kerberos 使用 SSO 进行 DirectQuery 查询选项 | 消息服务器 | sapcrypto | 是的 |