- 浏览: 458289 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
yuan_bin1990:
您好,请问下demo如何运行啊,准备研究研究,但不知道入口啊。 ...
ssh2(struts2+spring2.5+hibernate3.3)自动生成代码程序 -
luyulong:
[b][/b][i][/i][ ...
jQuery进度条插件 jQuery progressBar -
txin0814:
mark..
读取文件目录 -
vurses:
[align=center][color=red][size= ...
include 与 jsp:include区别 -
Roshan2:
http://lijiejava.iteye.com/blog ...
Spring AOP 入门实例
前言:我们经常会遇到系统标准的数据源,或者我们自建的数据源无法满足要求的情况,这个时候在数据源中添加几个相关的字段,可能就能满足我们的要求,这个时候就要用到数据源的增强。下面介绍的两种增强方法都是发生在数据源提取数据结束以后将要写到结果表的时候。
准备工作(自建数据源)
1)RSO2 创建一个简单的数据源:SFLIGHT 业务数据
选择一个应用程序组件,填写文本信息,直接到数据库SFLIGHT取数,点击保存
继续点击 保存
填写短文本,及要增加的字段 (在此我们增加了一个字段FLAG,对于容量>=90%的航班,我们打算以FLAG为‘X’标记),然后点击 激活附加结构
RSA3 测试提取一下
ALV GRID查看一下提取结果
可以看到最后一个字段 标识,现在为空(例如第一条,占用374,容量385,使用率97.14%大于90%,但是现在标识仍然为空)
方法一:用户出口(User Exit)
1)CMOD 创建一个新项目 BW
2)填写短文本,保存,点击Enhancement assignments (增强分配)
3)分配增强“RSAP0001”(注:这个增强是固定的,每个系统都一样),保存,点击 组件
可知:001用于事务数据的数据源
002用于主数据或文本的数据源
003只能用于BW版本1.2B,2.0A以后被002替换
004用于层次的数据源
5)双击一个用户出口,进入Function Module界面
6)这个FM中,只是INCLUDE了一个程序,这个程序现在是不存在的,双击 ZXRSAU01
7)不要理会系统警告,回车
8)点击 是
INCLUEDE程序ZXRSAU01创建成功,下面就可以根据FM的输入输入参数进行CODING
*&------------------------------------------------------------------*
*& 包括 ZXRSAU01
*&------------------------------------------------------------------*
FIELD-SYMBOLS: <S> LIKE ZOXHHD0148.
DATA: RATE TYPE P DECIMALS 2.
*判断数据名称
CASE I_DATASOURCE.
WHEN 'SFLIGHT'.
*只有数据源为 SFLITH 时,才执行以下代码
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.
ENDCASE.
RSA3 测试提取,结果如下:
方法二:BAdI
1)SE19
2)创建一个Implementation 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的参数进行CODING了
为了便于管理,我们为每一个需要增强的数据源创建一个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
设置参数(只比DATA_TRANSFORM的参数少了一个I_DATASOURCE)如下:
保存后,返回Method界面
点击Code
下面就跟CMOD一样了,可以进行CODING了
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.
RSA3 测试提取,结果如下:
比较: 建议使用BAdI的方式, User Exit方式增强RSAP0001只能包含在一个项目中, 而BAdI方式可以为RSU5_SAPI_BADI创建多个Implementation,这样就可以为每个模块建一个Implementation,每个数据源建一个method,更加便于管理.
发表评论
-
在 Message Broker中使用 SAP JCO 连接 SAP 系统
2011-08-10 11:02 2120http://www.ibm.com/developerwor ... -
在Java中调用BAPI或RFC(转)
2011-08-10 10:55 2760JCo是一个高性能的,基于JNI的中间件,它实现了SAP的RF ... -
Java和SAP的三种数据通信方式 RFC IDOC XI
2011-08-10 10:38 3782JAVA与SAP数据交互的方式总结RFC方式:Java程序直接 ... -
BW增量更新的理解(时间戳)
2011-08-09 17:53 1720在BW中,存在两种数据抽取方式,完全更新与增量更新,完全更 ... -
SAP BW 邮件发送监控策略
2011-08-09 17:53 1573SAP BW 邮件发送监控策略 ... -
BW与ECC系统连接设置
2011-08-09 17:51 2353第一步:分配逻辑系统 SCC4先查看逻辑系统->S ... -
如何查找DataSource和table的mapping?
2011-08-09 17:48 1535相信,大家在使用BI Content的时候,经常需要查找Dat ... -
Delta中不得不看的几个表
2011-08-09 17:47 855Delta中不得不看的几个表: RODELTAMT 说明每 ... -
BW中如何进行数据监控?
2011-08-04 19:12 1109这周轮到我值班,要凌 ... -
总结InfoCube的优势分析及维度选择技巧
2011-08-04 17:58 767一直以来,infocube都是一个很纠结的东西。 作为 ... -
总结InfoCube的优势分析及维度选择技巧
2011-08-04 17:55 1079一直以来,infocube都是一个很纠结的东西。 作为 ... -
BW:监控 TCODE
2011-08-04 17:38 1084SM21: 检查系统日誌 ST22: abap DUMP ... -
BW:对于非法字符的控制
2011-08-04 17:35 1092其实这也是个老生常 ... -
BW学习——权限
2011-08-02 21:32 1348根据顾问的要求,学习了BW权限。要点如下: 1,BW的权 ... -
偶尔会被人问到的Cube的几个数字
2011-08-02 21:05 8611. 事实表:最多能够容纳233个key figures ... -
SAP学习日志--SAP中常用且重要的数据库表
2011-08-02 21:00 1479MARA - Material Master: General ... -
BW数据源深入研究【转自WKingChen的博客】
2011-08-02 19:21 1609DataSource是BW中非常重要的部分,一个合格的BW顾问 ... -
SAP BW 例程(Routine)【开始例程、关键值或特性的例程、结束例程】
2011-08-01 13:42 3661定义 可以使用例程定义关键值或特性的复杂的转换规则. ... -
BW之R3数据源及PSA
2011-07-31 15:23 2457BW数据源主要有R3、文件 ... -
理解BW数据模型 - DSO模型
2011-07-31 13:55 2144DSO的用法有很多,比 ...
相关推荐
SAP BW 数据源介绍及增强;SAP BW 数据源介绍及增强
SAP BW 0FI_ACDOCA_10 0FI_GL_14 0FI_AR_4 0FI_AP_4 2LIS_11_VAHDR 2LIS_11_VAITM 2LIS_12_VCHDR 2LIS_12_VCITM 2LIS_13_VDHDR 2LIS_13_VDITM ...常用的业务数据源对应底表统计,各字段对应的ECC底表统计
SAP BW常用数据源和InfoCube
BW之自定义数据源_安全间隔BW之自定义数据源_安全间隔BW之自定义数据源_安全间隔BW之自定义数据源_安全间隔
目录预览: MM Data Sources Tables -Purchasing -Inventory Management SD Data sources Tables FI DATASOURCES Tables -Cost Center Accounting 部分正文 MM Data Sources Tables Purchasing ...
BW数据抽取时,各业务模块对应后台数据源及相关表的整理和加工。
SAP_BW数据源整理
BW生产机数据不能成功提取数据源数据处理[归纳].pdf
BW-SAP系统-源数据-增强.xlsx
BW发票清单缺少,后勤数据源的增量队列的处理问题。
SAP BW WAD制作中报表字符串截取的两种方法及区别详解
本文档收录了sap中常用的数据源的详细说明及表格组成
后勤数据的上载对于BW系统来说比较复杂,特别是库存数据的上载更为明显,以下是Lib对于库存数据上载的说明和简单示例,供大家参考。
BW中自定义数据源的Delta机制.doc
SAP_BW_oracle源系统创建。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
【SAP_BW笔记】一般数据源制作指导手册
本文档详细介绍了如何通过RSO2制作数据源,对数据源的制作对初学者来说是很重要的
SAP BW 数据仓库.pptx ,建立数据仓库的核心
Architecture for Extracting the Custom Hierarchies from SAP R3 System into BW System