一.数据源增强介绍

我们常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们的要求,这个时候就要用到数据源的增强。
 
数据源增强分为结构增强和功能增强。
 
1)    结构增强:对于FM(功能模块Function Module)创建的数据源不存在结构增强,因为提取结构是由开发人员自定义的,只有当提取结构是系统自动生成时才需要结构增强这个功能。
 
2)    功能增强:当我们做了结构增强或者需要修改数据源里某些字段的数据时,可以通过功能增强来完成。
 
 
接下来我们分别介绍这两种数据源增强方式。

一.结构增强

1.     增强提取结构

事务代码:RSA6
进入事务代码RSA6,选中你需要增强的那个数据源,点击增强提取结构。

2.     添加字段并激活

填写需要增强的字段和类型长度,数量和金额填写计量单位,点击 激活。

使用事务代码:RSA3 
测试提取数据。

二.功能增强

1.     进入相应增强

事务代码:SMOD
进入事务代码SMOD,填写增强号“R SAP0001”,选择组件,点击显示。

表1 相关增强功能名

增强功能名 相应描述
EXIT_SAPLRSAP_001 事务数据相关增强
EXIT_SAPLRSAP_002 主数据属性增强
EXIT_SAPLRSAP_003 主数据文本相关增强, 只能用于BW版本1.2B,2.0A以后被002替换
EXIT_SAPLRSAP_004 层次结构增强

2.     编辑程序并激活

双击“ZXRSAU01”创建Include程序。

编写代码修改或者填充相关字段,点击 激活。

3.     通过BAdI实现

事务代码: SE19

创建一个BAdI Name: RSU5_SAPI_BADI。

Implementation Name: ZRSU5_SAPI_BADI。

填写描述,点击激活。

在Interface选项卡,会看到系统自动创建了一个class: ZCL_IM_RSU5_SAPI_BADI
双击这个class。

进入Class Interface界面,会看到有两个method:
DATA_TRANSFORM 用于一般数据的增强(事务数据,主数据和文本),
HIER_TRANSFORM 用于层次数据的增强。

双击method,就可以根据method的参数进行编码了。

为了便于管理,我们为每一个需要增强的数据源创建一个method,然后在方法DATA_TRANSFORM和HIER_TRANSFORM中动态调用。
 
示例代码:
METHOD IF_EX_RSU5_SAPI_BADI~DATA_TRANSFORM.
DATA: LV_METHOD TYPE SEOCMPNAME.
* check if any data is extracted
CHECK C_T_DATA IS NOT INITIAL.
* get method name for datasource
* add one character as methods can't start with a number
CONCATENATE 'M_' I_DATASOURCE INTO LV_METHOD.
* check whether method exist
SELECT SINGLE CMPNAME
INTO LV_METHOD
FROM SEOCOMPO
WHERE CLSNAME = 'ZCL_IM_RSU5_SAPI_BADI'
AND CMPNAME = LV_METHOD.
CHECK SY-SUBRC EQ 0.
* check method is implemented
CALL METHOD (LV_METHOD)
EXPORTING
      I_UPDMODE    = I_UPDMODE
      I_T_SELECT   = I_T_SELECT
      I_T_FIELDS   = I_T_FIELDS
CHANGING
      C_T_DATA     = C_T_DATA
      C_T_MESSAGES = C_T_MESSAGES.
ENDMETHOD.
建一个Static Method M_SFLIGHT(注意:这里我们以'M_' + 数据源名称作为 Method的名称,因为有些系统的数据源以数字开头,而Method不允许以数字开头) 点击 Parameters。

设置参数如下:

保存后,返回Method界面。

点击Code。

下面就跟SMOD一样,可以进行编码。

示例代码:
METHOD SFLIGHT.
FIELD-SYMBOLS: <S> TYPE ZOXHHD0148.
DATA: RATE TYPE P DECIMALS 2.
* map the data
LOOP AT C_T_DATA ASSIGNING <S>.
CHECK <S>-SEATSMAX IS NOT INITIAL.
CLEAR RATE.
*计算航班使用率
    RATE = <S>-SEATSOCC / <S>-SEATSMAX * 100.
IF RATE >= '90.00'.
      <S>-FLAG = 'X'. "使用率大于90%,打上标记
ENDIF.
ENDLOOP.
ENDMETHOD.
 
 
比较两种方式BAdI和出口: 建议使用BAdI的方式, 用户出口User Exit方式增强RSAP0001只能包含在一个项目中, 而BAdI方式可以为RSU5_SAPI_BADI创建多个Implementation,这样就可以为每个模块建一个Implementation,每个数据源建一个method,更加便于数据源增强管理。

补充: 数据源相关事务代码

表2 数据源开发常用事务码

事务代码 描述
RSA5 激活标准数据源
SBIW 激活LO数据源
RSO2 自定义数据源
RSA6 数据源结构增强
SMOD 数据源功能增强
RSA3 测试数据源
SE37 创建数据源功能块
SE19 BAdI编辑器
(Business Add-In Builder)

SAP BW数据源增强管理相关推荐

  1. BW顾问进阶:SAP BW后勤数据源抽取机制

    SAP BW后勤数据增量机制      目录 1.    概述.... 4 1.1后勤数据抽取的两种机制 1.1.1初始化抽取 1.1.2增量抽取 1.2 SAP逻辑工作单元 1.3更新模式及方法介绍 ...

  2. SAP BW查看数据源提取方法

    终于知道如何查看数据源来源了,之前困扰了很久,一直想知道SAP BW中DATASOURCE是如何获取数据. 事实上DATASOURCE都是根据数据结构(ExtractStruct.)所定义的字段获取字 ...

  3. SAP用户出口(exit)问题--数据源增强

    SAP用户出口(exit)问题 数据源增强 sap的用户出口总共有三代: 第一代 sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强都需要修改sap的标准代码 ...

  4. SAP BW QUERY VARIABLES (BW增强变量)

    转载地址:http://blog.sina.com.cn/s/blog_7ecc958c0102uxoy.html SAP BW QUERY VARIABLES (BW增强变量) About Vari ...

  5. 标准数据源增强与新建一般数据源-待续

    文章目录 1.标准数据源增强 1. 客户出口 CMOD 1.1 创建维护append:添加字段 1.2 function exit 功能出口 2 .BAdI 2. RSO2创建一般数据源 2.1 Fu ...

  6. 所有归类于 ‘SAP BW’ 分类的日志

    BW:SAP STMS配置 1.SM59,删除所有包含STMS的连接 2.STMS,Overview-System,删除所有配置 3.登陆至Client 000 UserName SAP* PassW ...

  7. SAP BW/4 HANA亮点解析

    SAP BW/4 HANA亮点解析 http://mp.weixin.qq.com/s/SIPSWDo95pXKGjG66z6iHw 2016 年 8 月 31 日SAP正式向全球推出了新一代的数据仓 ...

  8. SAP BW实施实时报表的方法(流式处理链)

    最近,我的一位客户询问我实施实时报告的可能方法.在准备过程中,我的研究还涵盖了"流式处理链",结果令人惊讶 版本适用:SAP BW 7.5 和 SAP BW/4HANA(任何版本) ...

  9. SAP BW学习之基础知识篇

    目录 1.信息对象 2.原系统 3.数据源 4.转换 5.数据流 6.DTP 7.导航属性 8.DSO数据存储对象 (1)DSO的四种类型: (2)DSO和CUBE的区别: (3)数据存储: (4)创 ...

最新文章

  1. 基于TerraDeveloper的三维GIS开发研究
  2. k2677场效应管参数引脚_场效应管参数大全2.doc
  3. python 正则表达式基础
  4. tkinter笔记:画布canvas
  5. formal method第10课
  6. rtx3080 pytorch cuda_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?|显卡|amd|RTX3080...
  7. logrus 输出多个文件_Logrus源码阅读(1)基本用法
  8. mysql语句中多表查询_6.MySql中的SQL语句(五):多表查询
  9. python语法_元组
  10. Leetcode刷题修炼手册
  11. 空间应用统计分析(回归分析)
  12. 软件开发工作量/费用估算
  13. python selenium+firefox对网页截长图
  14. 第十一章 第三将 项目风险管理
  15. linux runtime pm机制的深入理解
  16. 波长传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  17. 终于可以在html上自动显示汉字拼音了
  18. Android指纹解锁
  19. 微信小程序支付(基于Java实现微信JSAPI支付):支付,提现,退款
  20. 日记 | STM32串口显示YL-69土壤湿度

热门文章

  1. Wireshark 【OSI三层】抓包过滤规则和显示过滤规则实例
  2. 6行代码解决golang TCP粘包
  3. kali下Wreckuests | DDOS Atacks With HTTP-Flood
  4. error while loading shared libraries的解決方法
  5. 迁移到云端,千万别犯这3个大错误!
  6. nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)
  7. ubuntu apache 完全删除
  8. 给网页上加广告的一点感受
  9. .net core引用错误的Entity Framework而导致不能正常迁移数据的解决办法
  10. 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级