使用 BAdI Provider

学习目标

  • 解释 BAdI Provider 的用途

BAdI Provider 概览

BAdI Provider 是 SAP BW/4HANA 中的一种 InfoProvider,可以通过 ABAP 实现来定义。BAdI Provider 取代了带 ABAP 函数模块的 VirtualProvider。

没有用于创建 BAdI Provider 的图形化编辑器。它通过 BAdI RSO_BADI_PROVIDER(事务 SE18)创建。

当执行基于此类 InfoProvider 的 BW 查询时,数据管理器(Data Manager)会调用 BAdI 实现中的方法。这一基于 ABAP 的运行时遵循 SAP BW VirtualProvider 的实现模式。

不过,在 SAP BW∕4HANA 中建模虚拟场景时,SAP 建议使用 Open ODS View 或 SAP HANA 计算视图来执行这些场景。如果需要程序逻辑,请利用带 SQLScript 的 SAP HANA 计算视图,以通过 SAP HANA 运行时确保最佳的集成与性能。BAdI Provider 提供的是仅在 ABAP 中执行的虚拟数据模型,因此只有当你确实需要这种运行时时,才考虑使用它。

BAdI Provider 详细信息

BAdI Provider 的显著特征:

  • BAdI Provider 基于信息对象。不支持字段。

  • BAdI Provider 可以分配给一个 InfoArea。这样就能在 BW Modeling Tools 的仓库树中显示它。如果未分配 InfoArea,它会显示在 NODESNOTCONNECTED 下。

  • BAdI Provider 可以用于 CompositeProvider,但仅限 UNION 场景。不支持 JOIN 场景。

  • BAdI Provider 本身未集成到 SAP BW/4HANA TLOGO 框架中。RSO_BADI_PROVIDER BAdI 的实现需要在 SAP BW/4HANA ABAP 传输系统中手动管理

  • 要使用 BAdI Provider,你需要权限对象 S_RS_BDPR。

  • 组件:BW4-ME-BDPR

  • 检查报表:RSO_CHECK_BADI_PROV

提示

SAP BW/4HANA 的财务内容提供了一个模板 BAdI Provider:

FI-GL Balance Sheet Reporting (3BVBFIGL01)。

。你可以查看此资源以获取更多信息:

https://help.sap.com/docs/SAP_BW4HANA_CONTENT/06e872f914a44d77b6c692b0273ca400/7ff81abb93d948fd94848e1d017b81da.html?locale=en-US

BAdI RSO_BADI_PROVIDER 为你提供接口 IF_RSO_BADI_PROV,其中包含以下方法:

  • GET_INFOPROVIDER_NAMES

  • GET_INFOPROVIDER_FIELDS

  • GET_METADATA_TIMESTAMP

  • GET_DATA_TIMESTAMP

  • RUNTIME_DEFINE

  • RUNTIME_READ

  • GET_RUNTIME_PROPERTIES

本课其余配图

IntroBADIProv_image_LJ

BADIprovider_image_LJ