SAP-ABAP-取枚举值及批次特征值描述
1、枚举值取得方法
有的字段是下拉框形式的,就是枚举类型,这个时候取到的值实际上是序列号1、2、3......,在ALV报表上显示就是数字,需要转成对应的值。
要取得这个枚举值,需要知道这个字段的域,这个域按如下方法去找,先找到这个字段





此时把这个域记下来,用于以下两种方法取枚举值。
第一、使用函数
DATA: lt_values TYPE TABLE OF dd07v, ls_value TYPE dd07v. CALL FUNCTION 'DD_DOMVALUE_TEXT_GET' EXPORTING DOMNAME = 域(用上面查到的) VALUE = 这里填枚举的序号 LANGU = '1 ' 这里是1代表ZH * BYPASS_BUFFER = ' ' IMPORTING DD07V_WA = lt_values * RC = .
取出来的是表,需要LOOP或者READ下取值,实际就是这个表里的

第二种、直接select去取值
先根据字段所在的主表取得对应的枚举序号,再使用下面的查询语句取得枚举序号对应的值。
SELECT SINGLE DDTEXT INTO LS_DATA-ZCPXHTY FROM DD07T WHERE DOMVALUE_L = LS_DATA-ZCPXHTY AND DOMNAME = 'ZD_CPXHTY' AND DDLANGUAGE = '1'.
2、批次特征值取得方法
"取特征值 DATA:LS_OBJEK TYPE CUOBN, LS_OBTAB TYPE TABELLE, LS_KLART TYPE KLASSENART, LS_CLASS TYPE KLASSE_D. DATA:LT_CLASS TYPE TABLE OF SCLASS, LT_OBJECTDATA TYPE TABLE OF CLOBJDAT. CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT' EXPORTING I_MATNR = LS_DATA-MATNR I_CHARG = LS_DATA-CHARG I_WERKS = LS_DATA-WERKS IMPORTING E_OBJEK = LS_OBJEK E_OBTAB = LS_OBTAB E_KLART = LS_KLART E_CLASS = LS_CLASS. CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS' EXPORTING CLASS = LS_CLASS CLASSTEXT = 'X' CLASSTYPE = LS_KLART * CLINT = 0 FEATURES = 'X' LANGUAGE = SY-LANGU OBJECT = LS_OBJEK OBJECTTABLE = LS_OBTAB * KEY_DATE = SY-DATUM INITIAL_CHARACT = 'X' * NO_VALUE_DESCRIPT = CHANGE_SERVICE_CLF = 'X' * INHERITED_CHAR = ' ' * CHANGE_NUMBER = ' ' TABLES T_CLASS = LT_CLASS T_OBJECTDATA = LT_OBJECTDATA * I_SEL_CHARACTERISTIC = * T_NO_AUTH_CHARACT = EXCEPTIONS NO_CLASSIFICATION = 1 NO_CLASSTYPES = 2 INVALID_CLASS_TYPE = 3 OTHERS = 4. IF SY-SUBRC <> 0. * Implement suitable error handling here ENDIF. SORT LT_OBJECTDATA BY ATNAM. READ TABLE LT_OBJECTDATA INTO DATA(LS_OBJECTDATA) WITH KEY ATNAM = 'Z_BATCH_DJ' BINARY SEARCH. READ TABLE LT_OBJECTDATA INTO DATA(LS_OBJECTDATA1) WITH KEY ATNAM = 'Z_BATCH_ZJGL' BINARY SEARCH. IF SY-SUBRC = 0. LS_DATA-ZDJ = LS_OBJECTDATA-AUSP1. ENDIF.
以上方法是先取得物料+工厂+批次的四个批次特征的参数
E_OBJEK
E_OBTAB
E_KLART
E_CLASS
用这四个参数填入另外一个函数里取批次特征值
会得到关于这个物料+工厂+批次的,也就是MSC3N里分类中的所有值

再根据对应的特征描述(或者特征编号,可以F1去看特征编号)取对应的值。

浙公网安备 33010602011771号