1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
"Получаем вид класса, номер, таблицу DATA(lv_klart) = VALUE tcla-klart( ). DATA(lv_class) = VALUE rmclf-class( ). DATA(lv_obtab) = VALUE tabelle( ). CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT' EXPORTING i_matnr = iv_matnr i_charg = iv_charg i_werks = iv_werks IMPORTING e_obtab = lv_obtab e_klart = lv_klart e_class = lv_class. "Формируем ключ DATA(lt_bapi_obj) = VALUE tt_bapi1003_object_keys( ( key_field = 'MATNR' value_int = iv_matnr ) ( key_field = 'WERKS' value_int = iv_werks ) ( key_field = 'CHARG' value_int = iv_charg ) ). DATA(lv_key) = VALUE bapi1003_key-object_long( ). DATA(lt_return) = VALUE bapirettab( ). CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY' EXPORTING objecttable = lv_obtab IMPORTING objectkey_conc_long = lv_key TABLES objectkeytable = lt_bapi_obj[] return = lt_return[]. CHECK lv_key IS NOT INITIAL. "Получаем признаки DATA(lt_class) = VALUE wrf_class_tty( ). DATA(lt_objdata) = VALUE cdesk_t_clobjdat( ). CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS' EXPORTING class = lv_class classtext = abap_true classtype = lv_klart object = lv_key objecttable = lv_obtab TABLES t_class = lt_class[] t_objectdata = lt_objdata[] EXCEPTIONS no_classification = 1 no_classtypes = 2 invalid_class_type = 3 OTHERS = 4. CHECK sy-subrc = 0. ev_value = VALUE #( lt_objdata[ atnam = iv_atnam ]-ausp1 OPTIONAL ). |
Так же на входе есть табличка I_SEL_CHARACTERISTIC, позволяющая ограничить список выбираемых признаков. На вход нужно подать список ATINN
Заметка взята с форума ссылка