zoukankan      html  css  js  c++  java
  • BW出口变量增强

    英文好的可以直接看下面2个链接,第三个是经过翻译的,本文中很多也是直接从第三篇拷贝过来的。

    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/1d/ca10d858c2e949ba4a152c44f8128a/content.htm

    http://help.sap.com/saphelp_nw04s/helpdata/EN/1d/ca10d858c2e949ba4a152c44f8128a/frameset.htm

    用户出口增强,定义方法:

    1.在query designer中,右键单击要建立变量的characteristic,选择New variable.
    2.设置为customer exit类型
    3.进入CMOD,修改:Enhancement 添加出口 RSR00001 BI: Enhancements for Global Variables in Reporting-->Function exit EXIT_SAPLRRS0_001-->INCLUDE ZXRSRU01 。该Function Module 将在query运行时被调用多次。
     

    I_STEP 值说明: I_STEP = 1,Call is made directly before variable entry. 可用于预先填充选择变量。如果在这里对变量进行了操作,就没法在step2里边对该变量做修改了。

    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.

    这句话的意思就是如果你想触发step2,就必须在Bex Analyser上变量属性中去掉“变量已准备输入”,并且在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.

    检查变量,当抛出异常的时候,变量会被要求重新输入,当然step2也会被再次触发。

    "I_STEP = 0,The enhancement is not called from the variable screen. The call can originate from the authorization check or from the monitor.

    这个不会从变量输入触发,会被权限检查或者监视器触发。

    When the enhancement RSR00001 is called,the system passes the current values of the other variables in table I_T_VAR_RANGE. The table type is RRS0_T_VAR_RANGE, and row type RRS0_S_VAR_RANGE references structure RRRANGEEXIT.
     
    所有变量都回提前存放在 I_T_VAR_RANGE,类型是RRS0_T_VAR_RANGE,变量类型是RSR_S_RANGESID,提取结构是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

     
    Sample Code:
    In the following example, the current
    month is taken from an input-ready variable MONTH; this is then used to generate
    an interval that cumulates all months from January ('01') up to the current
    month. The customer exit variable CUMMONTH contains the interval as the
    value.
     
    DATA: L_S_RANGE TYPE RSR_S_RANGESID. 修改以后替换用户输入的变量
    DATA: L_S_VAR_RANGE TYPE RRRANGEEXIT.从I_T_VAR_RANGE读取的变量保存到该变量
    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)."将前4位付给low,比如200601的2006
    L_S_RANGE-LOW+4(2) = '01'. 将01付给5,6位,就是用01替换以前的月份
    L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW. "high value = input
    L_S_RANGE-SIGN = 'I'.
    L_S_RANGE-OPT = 'BT'. 操作是between
    APPEND L_S_RANGE TO E_T_RANGE. 将修改后的变量付给出口。
    ENDIF. ENDIF. ENDCASE.
  • 相关阅读:
    谷歌浏览器最新版下载链接
    第二章 算法——程序的灵魂
    第一章:程序设计和C语言
    C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
    面向对象之类的其他方法
    面向对象之反射、包装、(定制)
    PyCharm使用秘籍视频
    re模块(详解正则)
    ATM购物车程序项目规范(更新到高级版)
    音乐脚本
  • 原文地址:https://www.cnblogs.com/hanmos/p/2854426.html
Copyright © 2011-2022 走看看