zoukankan      html  css  js  c++  java
  • BEx Query Designer中的变量及其增强

    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 [ ] or (E)xcluding [ ]

    OPT

    Operators: EQ =, BT [ ], LE <=, LT <, GE >=, GT >, CP, and so on

    LOW

    Characteristic value

    HIGH

    Characteristic value of upper limit for intervals or node InfoObject for hierarchy nodes

     3-2:每次调用时,系统会传递参数值给Function Module。其中,比较重要的参数如下:

    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.  
         WHEN 'CUMMONTH'.
            IF I_STEP = 2. "after the popup
                READ TABLE I_T_VAR_RANGE INTO L_S_VAR_RANGE WITH KEY VNAM = 'MONTH'.
                IF SY-SUBRC = 0.
                        CLEAR L_S_RANGE.
                        L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4)."low value, for example, 200601
                        L_S_RANGE-LOW+4(2) = '01'.
                        L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW. "high value = input
                        L_S_RANGE-SIGN = 'I'.
                        L_S_RANGE-OPT = 'BT'.
                       APPEND L_S_RANGE TO E_T_RANGE.
                    ENDIF.
            ENDIF.
    ENDCASE.

    查看SAP Exit变量

    SAP Exit变量为我们编写customer exit变量提供了很好的参考。
    1. SE16 查看表 RSZGLOBV 可以得到系统全部变量的列表,选择process type=SAP Exit,即可获得所有的SAP Exit变量列表
    2. SE37 查看 RREX_VARIABLE_EXITRSVAREXIT_ * 可以找到SAP Exit变量的代码
  • 相关阅读:
    之前的博客
    用struts2 s2-045漏洞拿站记录
    修改BlackLowKey皮肤样式,增加占屏比
    SpringBoot自动配置原理
    CAS无锁技术
    CAS单点登录原理解析
    死锁与活锁的区别,死锁与饥饿的区别
    jvm问题
    jdk动态代理的实现原理
    抽象工厂
  • 原文地址:https://www.cnblogs.com/hanmos/p/2584911.html
Copyright © 2011-2022 走看看