У меня логика выполнния следующая: (другого на тот момент придумать не смогла)
1) Выполнить CALL FUNCTION 'BAPI_OBJCL_GETCLASSES' для материала по 001 классу
2)Выполнить
Code:
DATA: BEGIN OF classification OCCURS 0,
classtype(3), " 13 Вид класса
classnumber(18), " 14 Номер класса
charname(30), " 15 Имя признака
charvalue(30), " 16 Значение признака
END OF classification.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = материал
objecttable = 'MARA'
classnum = classnum из пункта 1)
classtype = classtype из пункта 1)
TABLES
allocvaluesnum = numtab
allocvalueschar = chatab
allocvaluescurr = curtab
return = rettab.
LOOP AT chatab.
classification-classtype = alloclist-classtype.
classification-classnumber = alloclist-classnum.
classification-charname = chatab-charact.
classification-charvalue = chatab-value_neutral.
APPEND classification.
ENDLOOP.
3) затем пакетник:
Для экрана 0109
*******
Code:
" окно ввода конфигурации
PERFORM bdc_dynpro USING 'SAPLCEI0' '0109'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RCTMS-MWERT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.
LOOP AT classification WHERE classtype EQ '001'.
ADD 1 TO line. UNPACK line TO line.
CONCATENATE 'RCTMS-MNAME(' line ')' INTO fname1.
CONCATENATE 'RCTMS-MWERT(' line ')' INTO fname2.
PERFORM bdc_field USING fname1 classification-charname.
PERFORM bdc_field USING fname2 classification-charvalue.
ENDLOOP.
****
CALL TRANSACTION 'MM02'...