转载地址:http://blog.sina.com.cn/s/blog_7ecc958c0102uxoy.html
SAP BW QUERY VARIABLES (BW增强变量)
About Variable:
1.Variable 是和InfoObject绑定的,可用于任何含有该IO的query中。
2.Variable有以下几种类型:
- Characteristic:用于限制Char。
- Text:用于在报表动态显示文本。
- Hierarchy:用于限制Hierarchy。
- Hieararchy Node:用于限制Hierarchy Node。
- Formula: 可以在公式中使用变量,让用户输入一个数,读取某个Char.的属性(例如Prduct的price属性)等来用于计算。
Offset的应用:设置偏移量
SAP BI Content内置了很多标准变量。当其无法满足需求时,有时仅仅需要设置下偏移量就可以满足需求了。
例如系统已经有了当前月份的变量,通过偏移就可以获得上N个月和下N个月的变量,无需增强。
定义Customer Exit Variables(BW 3.x ,BI7 类似)
客户出口变量可以通过程序来处理变量逻辑。定义过程如下:
1.在query designer中,右键单击要建立变量的characteristic,选择New variable.
2.设置为customer exit类型
3.进入CMOD,修改:Enhancement
Exp
RSR00001 BI: Enhancements for Global Variables in Reporting-->Function exit
EXIT_SAPLRRS0_001-->INCLUDE ZXRSRU01 。该Function Module 将在query运行时被调用多次。
3-1:调用前,系统将其他变量的当前值保存在内表
I_T_VAR_RANGE中。The table type is RRS0_T_VAR_RANGE, and row type RRS0_S_VAR_RANGE references structure RRRANGEEXIT.This structure has the following fields:
Field | Description |
VNAM | Variable name |
IOBJNM | InfoObject name |
SIGN | (I)ncluding |
OPT | Operators: EQ =, BT |
LOW | Characteristic value |
HIGH | Characteristic value of upper limit for intervals or node InfoObject for hierarchy nodes |
I_STEP
-
I_STEP = 1: Call is made directly before variable entry. - I_STEP = 2:
Call is made directly after variable entry. This step is only executed if the same variable is not input-ready and could not be filled for I_STEP = 1. - I_STEP = 3:
In this call, you can check the values of the variables. When an exception (RAISE) is triggered, the variable screen appears again. I_STEP = 2 is then also called again. -
I_STEP = 0: The enhancement is not called from the variable screen. The call can originate from the authorization check or from the monitor.
I_VNAM标识了当前要处理的变量。
3-3:完成变量的处理之后,应将变量的值写入E_T_RANGE。
Sample Code:
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA: L_S_VAR_RANGE TYPE RRRANGEEXIT.
CASE I_VNAM.
ENDCASE.
SAP Exit变量为我们编写customer exit变量提供了很好的参考。
1. SE16 查看表
RSZGLOBV
可以得到系统全部变量的列表,选择process type=SAP Exit,即可获得所有的SAP Exit变量列表
2. SE37 查看
RREX_VARIABLE_EXIT
或
RSVAREXIT_ *
可以找到SAP Exit变量的代码