Нужно использовать BAPI_OBJCL_CHANGE.
Чтобы не затирались предыдущие данные необходимо считывать предыдущие признаки при помощи BAPI_OBJCL_GETDETAIL.
Code:
DATA lv_objectkey TYPE bapi1003_key-object.
DATA lv_objecttable TYPE bapi1003_key-objecttable.
DATA lv_classnum TYPE bapi1003_key-classnum.
DATA lv_classtype TYPE bapi1003_key-classtype.
DATA lt_alloclist TYPE STANDARD TABLE OF bapi1003_alloc_list.
DATA lt_allocvalueschar TYPE STANDARD TABLE OF bapi1003_alloc_values_char.
DATA lt_allocvaluescurr TYPE STANDARD TABLE OF bapi1003_alloc_values_curr.
DATA lt_allocvaluesnum TYPE STANDARD TABLE OF bapi1003_alloc_values_num.
DATA lt_return TYPE STANDARD TABLE OF bapiret2.
lv_objectkey = iv_equnr.
lv_objecttable = 'EQUI'.
lv_classnum = 'CERTIFIC_OF_VEHICL'.
lv_classtype = '002'.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = lv_objectkey
objecttable = lv_objecttable
classnum = lv_classnum
classtype = lv_classtype
TABLES
allocvaluesnum = lt_allocvaluesnum
allocvalueschar = lt_allocvalueschar
allocvaluescurr = lt_allocvaluescurr
return = lt_return
.
LOOP AT lt_return INTO DATA(ls_return)
WHERE type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number RAISING error
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
ENDLOOP.
READ TABLE lt_allocvalueschar ASSIGNING FIELD-SYMBOL(<ls_allocvalueschar>)
WITH KEY charact = 'INTERNAL_ORDER'.
IF sy-subrc <> 0.
INSERT INITIAL LINE INTO TABLE lt_allocvalueschar ASSIGNING <ls_allocvalueschar>.
<ls_allocvalueschar>-charact = 'INTERNAL_ORDER'.
ENDIF.
<ls_allocvalueschar>-value_char = <ls_allocvalueschar>-value_neutral = is_aufk-aufnr.
SET UPDATE TASK LOCAL.
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = lv_objectkey
objecttable = lv_objecttable
classnum = lv_classnum
classtype = lv_classtype
TABLES
allocvaluesnumnew = lt_allocvaluesnum
allocvaluescharnew = lt_allocvalueschar
allocvaluescurrnew = lt_allocvaluescurr
return = lt_return
.
LOOP AT lt_return INTO ls_return
WHERE type CA 'AEX'.
MESSAGE ID ls_return-id TYPE ls_return-type NUMBER ls_return-number RAISING error
WITH ls_return-message_v1 ls_return-message_v2 ls_return-message_v3 ls_return-message_v4.
ENDLOOP.