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_EXIT 或RSVAREXIT_ * 可以找到SAP Exit变量的代码
分享到:
相关推荐
m_range.SetHorizontalAlignment(Var); m_range.SetVerticalAlignment(Var); ``` 设置单元格的水平和垂直对齐方式为居中。这里使用的是 COM 自动化对象模型中的 `SetHorizontalAlignment` 和 `SetVerticalAlignment...
COleVariant varIndex(1, VT_I4); COleDispatchDriver worksheet; workbooks.GetProperty(_T("Item"), varIndex, &worksheet); // 写入单元格 worksheet.GetProperty(_T("Range"), COleVariant(_T("A1")), &range);...
其中,\(\mathbf{Y}_t\) 是一个包含所有变量的向量,\(c\) 是常数项,\(A_i\) 是系数矩阵,\(p\) 是滞后阶数,\(\mathbf{Y}_{t-i}\) 表示变量在时刻 \(t-i\) 的值,\(\mathbf{\epsilon}_t\) 是误差项,假设它们是...
var range_all = document.body.createTextRange(); range_all.moveToElementText(textBox); // 计算光标开始位置 for (start = 0; range_all.compareEndPoints("StartToStart", range) > 0; start++) { range_all....
COleVariant rangeVar(1, VT_I4); // 选择整篇文档 LPDISPATCH rangeDispatch = doc.Invoke(DISPATCH_PROPERTYGET, NULL, (VARIANT*)&vResult, NULL, NULL, _T("Range"), &rangeVar); CString content = ...
eig_pairs = [(np.abs(eigenvalues[i]), eigenvectors[:,i]) for i in range(len(eigenvalues))] eig_pairs.sort(key=lambda x: x[0], reverse=True) # 选取前 num_components 个特征向量 matrix_w = np.hstack...
for i in range(1, 202202011201): fibonacci(i) print(count) ``` 试题 B: 小蓝做实验 问题描述:小蓝很喜欢科研,他最近做了一个实验得到了一批实验数据,一共是两百万个正整数。如果按照预期,所有的实验数据 ...
var dStart = new Date(tDate.setHours(tStart[0], tStart[1])); var dStop = new Date(tDate.setHours(tStop[0], tStop[1])); var events = cal.getEventsForDay(dStart); for (var j = 0; j ; j++) { // ...
for i in range(5) for j in ['a', 'b']} ``` #### 1.3 约束条件 约束条件通过`add_constr`方法添加到模型中,可以使用`LinExpr`类来定义线性表达式。约束条件可以是等式或不等式形式。 ```python # 定义线性...
cout<<j<<"x"<<i<<"="<<i*j<<"\t"; } cout; } return 0; } ``` 3. C#: C#是微软开发的一种面向对象的编程语言,常用于Windows应用和游戏开发。C#实现九九乘法表,可以使用Console.WriteLine和嵌套循环: ```...
- **ksh**:Korn shell,版本93t。 - **libstdc++**:C++标准模板库的不同版本。 - **libaio** 和 **libaio-devel**:异步I/O库及其开发包。 - **libgcc**:GCC运行时支持库。 - **make**:自动化构建系统。 - **...
return sum([t[i] for i in assignment]) ``` 7. 字典序排列 题目要求输出n个元素的字典序为k的排列。 解答:可以使用回溯法或动态规划解决。Python回溯法实现如下: ```python def permute(n, k): def backtrack...
logformat squidcombined %>a %m %U %>p %b %T %>s %I %O access_log /var/log/squid/access.log squidcombined ``` ### 四、缓存策略 1. **缓存容量**:根据硬件资源设定缓存大小: ```conf cache_dir ufs ...
Embedded: You can use RaptorDB inside your application as you would any other DLL, and you don't need to install services or run external programs. NoSQL: A grass roots movement to replace relational...
The DFM Programming Environment is one of the many unique concepts of the Genesis 2000 system. Unlike any existing tool, the DFM Programming Environment (DFMPE) enables any user with elementary ...
- VLOOKUP函数:在表格的列中查找指定值并返回相应行的其他单元格值,语法为`VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])`,lookup_value是要查找的值,table_array是查找范围,col_index_...
获得时间所代表的微秒 var n1 = new Date("2004-10-10".replace(/-/g, "/")).getTime() 窗口是否关闭 win.closed checkbox扁平 ; clip:rect(5px 15px 15px 5px)"> 获取选中内容 document.selection....
ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"], Validate : function(theForm, mode){ var obj = theForm || event.srcElement; var count = obj.elements.length; this.ErrorMessage.length = 1; this....
for i in range(10): t = TestThread(i, sem) t.start() ``` 在这个例子中,我们创建了一个名为 `TestThread` 的线程类,每个线程在开始执行前都会调用 `sem.acquire()` 来获取信号量。如果信号量的计数值大于0...