написал программу для упаковки ео коробки входящей поставки в ео контейнера.
Работает, но если потом попробовать распаковать в транзакции hupast, то сохранить не получится, выдает ошибку.
В чем может быть проблема ?
Я подозреваю, что не заполняются глобальные таблицы в начале, но на сдн столько примеров и почти все невнятные,
что я полностью запутался. Вот код :
*&---------------------------------------------------------------------*
*& Report ZWMS_INB_KOROB_PACK2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZWMS_INB_KOROB_PACK2.
tables:VEKP,likp.
data:
korob_venum like vekp-venum,
upak_venum like vekp-venum,
korob_exidv like vekp-exidv,
upak_exidv like vekp-exidv.
parameters: exidvu type vekp-exidv.
parameters: exidvk type vekp-exidv.
select single * from vekp where
exidv eq exidvk
and status ne '0060'.
if sy-subrc ne 0.
write 'Номер короба не найден' .
exit.
endif.
select single * from vekp where
exidv eq exidvu
and status ne '0060'.
if sy-subrc ne 0.
write 'Номер ИУ не найден' .
exit.
endif.
upak_exidv = exidvu .
korob_exidv = exidvk .
select single * from vekp where exidv eq upak_exidv
and status ne '0060'.
if sy-subrc eq 0.
upak_venum = vekp-venum.
endif.
select single * from vekp where exidv eq korob_exidv
and status ne '0060'.
if sy-subrc eq 0.
korob_venum = vekp-venum.
endif.
perform
pallet_pick_nest using korob_exidv
korob_venum
upak_exidv
upak_venum .
Write 'ИУ упакована'.
*http://scn.sap.com/thread/688386
FORM pallet_pick_nest USING p_pallet_exidv TYPE exidv
p_pallet_venum TYPE venum
p_parcel_exidv TYPE exidv
p_parcel_venum TYPE venum.
DATA: ls_s_pithu TYPE vsep_s_pithu.
DATA: lt_exidv TYPE hum_exidv_t,
lt_header TYPE hum_hu_header_t.
DATA: lv_error TYPE c.
DATA: lv_vbkok_wa TYPE vbkok.
* 1. Initialize internal tables of function group
CALL FUNCTION 'HU_PACKING_REFRESH'.
IF sy-subrc EQ 0.
REFRESH lt_exidv.
APPEND p_pallet_exidv TO lt_exidv.
APPEND p_parcel_exidv TO lt_exidv.
CALL FUNCTION 'HU_GET_HUS'
EXPORTING
it_hus = lt_exidv
IF_LOCK_HUS = 'X'
IMPORTING
et_header = lt_header
EXCEPTIONS
no_hu_found = 1
OTHERS = 3.
IF sy-subrc NE 0.
break sy-uname.
EXIT.
ELSE.
* 5. Perform Packing
ls_s_pithu-exidv = p_pallet_exidv.
ls_s_pithu-venum = p_pallet_venum.
ls_s_pithu-velin = 3.
ls_s_pithu-sub_hu_venum = p_parcel_venum.
ls_s_pithu-sub_hu_exidv = p_parcel_exidv.
ls_s_pithu-quantity = 1.
ls_s_pithu-veanz = 1.
ls_s_pithu-lgnum = 'SK1'.
* break sy-uname.
CALL FUNCTION 'HU_PACKING_AND_UNPACKING'
EXPORTING
is_packing_request = ls_s_pithu
IMPORTING
es_p_request = ls_s_pithu
EXCEPTIONS
missing_data = 1
hu_not_changeable = 2
not_possible = 3
serial_nr = 4
OTHERS = 99.
IF sy-subrc NE 0.
* PERFORM f_retreive_msgno.
break sy-uname.
EXIT.
ELSE.
* 6. Post HU changes
CALL FUNCTION 'HU_PACKING_UPDATE'
EXPORTING
if_synchron = 'X'.
COMMIT WORK AND WAIT.
ENDIF. "'HU_PACKING_AND_UNPACKING'
ENDIF. "HU_GET_HUS
ENDIF. "Lock delivery successful
ENDFORM. " pallet_pick_nest