FORM fnnn_hu_goods_movement USING p_i_hu TYPE t_i_hu
p_i_huit TYPE t_i_huit
p_werks TYPE t001l-werks
p_lgort TYPE t001l-lgort
p_bldat TYPE mkpf-bldat
p_budat TYPE mkpf-budat
CHANGING p_posted TYPE sysubrc
p_wa_msg_move TYPE huitem_messages
p_i_msg_move TYPE huitem_messages_t.
DATA : l_huwbevent TYPE huwbevent VALUE '0026'."'0006'.
DATA : i_move TYPE hum_data_move_to_t,
wa_move TYPE hum_data_move_to.
DATA : wa_huit TYPE t_wa_huit.
DATA : wa_exidv TYPE hum_exidv,
i_exidv TYPE hum_exidv_t.
DATA : wa_mkpf TYPE imkpf.
DATA : wa_items TYPE hum_humseg,
i_items TYPE hum_humseg_t.
DATA : prev_hu TYPE t_wa_huit-venum.
DATA : l_count TYPE i VALUE 1.
* sort p_i_huit by venum vepos.
LOOP AT p_i_hu INTO wa_hu.
LOOP AT p_i_huit INTO wa_huit WHERE venum = wa_hu-venum .
IF l_count = 1.
wa_move-matnr = wa_huit-matnr.
wa_move-werks = p_werks.
wa_move-charg = wa_huit-charg.
wa_move-lgort = wa_huit-umlgo.
wa_move-sobkz = wa_huit-sobkz.
wa_move-sonum = wa_huit-sonum.
wa_move-huwbevent = l_huwbevent.
wa_move-bwart = 'Z11'."'311'.
ENDIF.
wa_items-venum = wa_huit-venum.
wa_items-vepos = wa_huit-vepos.
APPEND wa_items TO i_items.
CLEAR wa_items.
l_count = l_count + 1.
ENDLOOP.
l_count = 1.
wa_move-hu_items = i_items.
APPEND wa_move TO i_move.
CLEAR i_items.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_huit-exidv
IMPORTING
output = wa_exidv-exidv.
APPEND wa_exidv TO i_exidv.
CLEAR : wa_move,wa_exidv.
ENDLOOP.
wa_mkpf-bldat = p_bldat.
wa_mkpf-budat = p_budat.
CALL FUNCTION 'HU_PACKING_REFRESH'.
CALL FUNCTION 'HU_CREATE_GOODS_MOVEMENT'
EXPORTING
if_event = l_huwbevent
* IF_SIMULATE = ' '
* IF_COMMIT = ' '
if_tcode = 'VLMOVE'
is_imkpf = wa_mkpf
it_move_to = i_move
* IT_INTERNAL_ID =
it_external_id = i_exidv
IMPORTING
ef_posted = p_posted
es_message = p_wa_msg_move
et_messages = p_i_msg_move.
* ES_EMKPF =
* CHANGING
* CT_IMSEG =
.
IF NOT p_posted = 1.
* MB_CREATE.. ist fehlgeschlagen - Sperren löschen
ROLLBACK WORK.
ELSE.
COMMIT WORK AND WAIT.
ENDIF.
ENDFORM. " FNNN_HU_GOODS_MOVEMENT