1, 特征值相关性中的variant funciton
简单来说variant function就是一个函数,可以通过这个函数决定特征值。
Tcode CT04创建修改特征(Characteristic)时可以找到相关性(Object dependencies),如下图点击红框内按钮,
双击行,进入到编辑器中,
在编辑中,可以调用variant function,如下图,可以发现此处的调用和普通abap程序中调用function中的方式不一样,
输入输出参数在"()"中,其中等号左侧是特征,右侧是特征值变量,
上图中的,$self表示当前对象的特征实例(the instance currently being configured),
除了$self还有$root和$parent可以利用,$parent是上层对象的特征实例(the object immediately above SELF in the decomposition hierarchy),
$root是根对象的实例(the initial object (root of the decomposition))。
2, 通过CU65创建variant function
Tcode,CU65,输入variant function 名字zztest,然后回车,
输入描述后,点击Characteristics按钮指定特征,
并且指定输入参数和输出参数,
返回到上一屏幕,保存。
3, CU66创建同名Function
除了CU66,也可以在CU65中点击Function module按钮创建同名function,这个实际上就是通过SE37创建的那个Function
然后点击create按钮创建,
实际创建过程本示例就不累述了,只要输入参数,表参数以及例外按照下面列出的一摸一样就可以,
输入参数:
1 |
GLOBALS LIKE CUOV_00 |
Tables参数
1 2 |
QUERY LIKE CUOV_01 MATCH LIKE CUOV_01 |
query保存的是CU65中variant function指定的特征值
exceptions如下:
1 2 |
FAIL INTERNAL_ERROR |
激活保存。
4, CU66激活variant function
在tcode CU66中将status改成1 released,然后保存。
5, 相关函数
variant function 在SE37中同名函数中会调用一些特征值相关函数进行编码,
读取特征值函数, CUOV_GET_FUNCTION_ARGUMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
*..get value of input characteristic salesorganisation call function 'CUOV_GET_FUNCTION_ARGUMENT' exporting argument = 'CUSTOMER_WE_02' importing sym_val = p_vkorg tables query = query exceptions arg_not_found = 01. if sy-subrc <> 0. raise internal_error. endif. |
特征值设定函数, CUOV_SET_FUNCTION_ARGUMENT
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CALL FUNCTION 'CUOV_SET_FUNCTION_ARGUMENT' EXPORTING ARGUMENT = 'W_VKORG_02' VTYPE = 'CHAR' SYM_VAL = LV_LABEL * NUM_VAL = TABLES MATCH = MATCH EXCEPTIONS EXISTING_VALUE_REPLACED = 1 OTHERS = 2 . IF SY–SUBRC <> 0. * Implement suitable error handling here ENDIF. |
其他相关函数可以在函数组CUOV中找到。
以上。
1 条评论