SAP BW数据源增强管理
一.数据源增强介绍
我们常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们的要求,这个时候就要用到数据源的增强。
数据源增强分为结构增强和功能增强。
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数据源增强管理相关推荐
- BW顾问进阶:SAP BW后勤数据源抽取机制
SAP BW后勤数据增量机制 目录 1. 概述.... 4 1.1后勤数据抽取的两种机制 1.1.1初始化抽取 1.1.2增量抽取 1.2 SAP逻辑工作单元 1.3更新模式及方法介绍 ...
- SAP BW查看数据源提取方法
终于知道如何查看数据源来源了,之前困扰了很久,一直想知道SAP BW中DATASOURCE是如何获取数据. 事实上DATASOURCE都是根据数据结构(ExtractStruct.)所定义的字段获取字 ...
- SAP用户出口(exit)问题--数据源增强
SAP用户出口(exit)问题 数据源增强 sap的用户出口总共有三代: 第一代 sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强都需要修改sap的标准代码 ...
- SAP BW QUERY VARIABLES (BW增强变量)
转载地址:http://blog.sina.com.cn/s/blog_7ecc958c0102uxoy.html SAP BW QUERY VARIABLES (BW增强变量) About Vari ...
- 标准数据源增强与新建一般数据源-待续
文章目录 1.标准数据源增强 1. 客户出口 CMOD 1.1 创建维护append:添加字段 1.2 function exit 功能出口 2 .BAdI 2. RSO2创建一般数据源 2.1 Fu ...
- 所有归类于 ‘SAP BW’ 分类的日志
BW:SAP STMS配置 1.SM59,删除所有包含STMS的连接 2.STMS,Overview-System,删除所有配置 3.登陆至Client 000 UserName SAP* PassW ...
- SAP BW/4 HANA亮点解析
SAP BW/4 HANA亮点解析 http://mp.weixin.qq.com/s/SIPSWDo95pXKGjG66z6iHw 2016 年 8 月 31 日SAP正式向全球推出了新一代的数据仓 ...
- SAP BW实施实时报表的方法(流式处理链)
最近,我的一位客户询问我实施实时报告的可能方法.在准备过程中,我的研究还涵盖了"流式处理链",结果令人惊讶 版本适用:SAP BW 7.5 和 SAP BW/4HANA(任何版本) ...
- SAP BW学习之基础知识篇
目录 1.信息对象 2.原系统 3.数据源 4.转换 5.数据流 6.DTP 7.导航属性 8.DSO数据存储对象 (1)DSO的四种类型: (2)DSO和CUBE的区别: (3)数据存储: (4)创 ...
最新文章
- 基于TerraDeveloper的三维GIS开发研究
- k2677场效应管参数引脚_场效应管参数大全2.doc
- python 正则表达式基础
- tkinter笔记:画布canvas
- formal method第10课
- rtx3080 pytorch cuda_最不值得买的高端显卡!RTX3080从真香变成了鸡肋?|显卡|amd|RTX3080...
- logrus 输出多个文件_Logrus源码阅读(1)基本用法
- mysql语句中多表查询_6.MySql中的SQL语句(五):多表查询
- python语法_元组
- Leetcode刷题修炼手册
- 空间应用统计分析(回归分析)
- 软件开发工作量/费用估算
- python selenium+firefox对网页截长图
- 第十一章 第三将 项目风险管理
- linux runtime pm机制的深入理解
- 波长传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 终于可以在html上自动显示汉字拼音了
- Android指纹解锁
- 微信小程序支付(基于Java实现微信JSAPI支付):支付,提现,退款
- 日记 | STM32串口显示YL-69土壤湿度
热门文章
- Wireshark 【OSI三层】抓包过滤规则和显示过滤规则实例
- 6行代码解决golang TCP粘包
- kali下Wreckuests | DDOS Atacks With HTTP-Flood
- error while loading shared libraries的解決方法
- 迁移到云端,千万别犯这3个大错误!
- nginx+tomcat+resin+jdk一键自动化安装脚本(4--resin安装脚本)
- ubuntu apache 完全删除
- 给网页上加广告的一点感受
- .net core引用错误的Entity Framework而导致不能正常迁移数据的解决办法
- 编译安装 PHP 扩展 - 含 swoole 扩展安装和升级