Этот код у меня без проблем создал партии позиций и заполнил классификацию.
Code:
TYPE-POOLS: abap.
data: ls_mcha type MCHA,
ls_item type MEPOITEM,
ls_bncom type BNCOM,
lt_clb type table of CLBATCH,
ls_clb like line of lt_clb.
ls_item = im_item->get_data( ).
check ls_item-matnr is not initial and ls_item-werks is not initial and
ls_item-charg is initial.
ls_mcha-matnr = ls_item-matnr.
ls_mcha-werks = ls_item-werks.
ls_bncom-lifnr = l_mh-lifnr.
ls_bncom-bsart = l_mh-bsart.
ls_bncom-matnr = ls_item-matnr.
ls_bncom-werks = ls_item-werks.
ls_bncom-ebeln = ls_item-ebeln.
ls_bncom-ebelp = ls_item-ebelp.
ls_clb-atnam = 'ZCONTA'.
ls_clb-atwtb = '1234567890'.
append ls_clb to lt_clb.
CALL FUNCTION 'VB_CREATE_BATCH'
EXPORTING
YMCHA = ls_mcha
X_BNCOM = ls_bncom
KZCLA = '1'
XKCFC = abap_true
CLASS = 'ZMM023'
IMPORTING
YMCHA = ls_mcha
TABLES
CHAR_OF_BATCH = lt_clb
EXCEPTIONS
NO_MATERIAL = 1
NO_BATCH = 2
NO_PLANT = 3
MATERIAL_NOT_FOUND = 4
PLANT_NOT_FOUND = 5
STOLOC_NOT_FOUND = 6
LOCK_ON_MATERIAL = 7
LOCK_ON_PLANT = 8
LOCK_ON_BATCH = 9
LOCK_SYSTEM_ERROR = 10
NO_AUTHORITY = 11
BATCH_EXIST = 12
STOLOC_EXIST = 13
ILLEGAL_BATCH_NUMBER = 14
NO_BATCH_HANDLING = 15
NO_VALUATION_AREA = 16
VALUATION_TYPE_NOT_FOUND = 17
NO_VALUATION_FOUND = 18
ERROR_AUTOMATIC_BATCH_NUMBER = 19
CANCELLED = 20
WRONG_STATUS = 21
INTERVAL_NOT_FOUND = 22
NUMBER_RANGE_NOT_EXTERN = 23
OBJECT_NOT_FOUND = 24
ERROR_CHECK_BATCH_NUMBER = 25
NO_EXTERNAL_NUMBER = 26
NO_CUSTOMER_NUMBER = 27
NO_CLASS = 28
ERROR_IN_CLASSIFICATION = 29
INCONSISTENCY_IN_KEY = 30
OTHERS = 31
.
IF SY-SUBRC = 0.
ls_item-charg = ls_mcha-charg.
im_item->set_data( exporting IM_DATA = ls_item ).
ENDIF.