You need the data of the warehouse order you are processing right now, for example the exception code entered on the screen (Pick Denial).
DATA l_data TYPE abap_func_parmbind.
DATA lt_exc_tab TYPE /scwm/tt_rf_exc.
DATA l_exc TYPE /scwm/s_rf_exc.
DATA l_confirm TYPE /scwm/s_rf_ordim_confirm.
DATA lo_confirm_ref TYPE REF TO /scwm/s_rf_ordim_confirm.
lt_data = /scwm/cl_rf_bll_srvc=>get_data( ).
READ TABLE lt_data INTO l_data WITH KEY name = 'ORDIM_CONFIRM'.
lo_confirm_ref ?= l_data-value.
l_confirm = lo_confirm_ref->*.
lt_exc_tab[] = l_confirm-exc_tab[].
LOOP AT lt_exc_tab INTO l_exc
WHERE iprcode = 'BIDP'. * It's a partial Pick Denial
ENDLOOP.
.....
CALL METHOD /scwm/cl_wm_packing=>get_instance
IMPORTING
es_hu_main = l_hu_main
eo_instance = lo_instance.
DATA lo_hu TYPE /scwm/s_huhdr_int.
CREATE OBJECT l_obj_hu.
DATA lt_ini_huhdr TYPE /scwm/tt_huhdr_int.
CALL METHOD l_obj_hu->init_pack
EXPORTING
iv_badi_appl = lo_instance->gv_badi_appl
iv_lgnum = is_mat_lgnum-lgnum
IMPORTING
et_huhdr = lt_ini_huhdr
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
ENDIF.
lp_mat =pmat_guid. * Packing Material
ls_param-lgnum = is_mat_lgnum-lgnum. * the warehouse number
ls_param-appl = lo_instance->gv_badi_appl.
ls_huhdr_create-pmat_guid = lp_mat.* Packing Material
CALL METHOD l_obj_hu->/scwm/if_pack_bas~create_hu
EXPORTING
iv_pmat = lp_mat
* iv_huident =
* is_hu_create =
* iv_nohuident =
i_location = ls_create-vlpla
* iv_loghu =
RECEIVING
es_huhdr = lo_hu
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
ENDIF.
CALL METHOD l_obj_hu->/scwm/if_pack~save
EXPORTING
iv_commit = 'X'
iv_wait = 'X'
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
ENDIF.
.
* For reading delivery data using QUERY-method: prerequisite: docid is available
DATA lt_docid TYPE /scwm/dlv_docid_item_tab.
DATA l_docid TYPE /scwm/dlv_docid_item_str.
DATA lt_items TYPE /scwm/dlv_item_out_prd_tab.
DATA l_item TYPE /scwm/dlv_item_out_prd_str.
DATA lt_headers TYPE /scwm/dlv_header_out_prd_tab.
DATA l_header TYPE /scwm/dlv_header_out_prd_str.
DATA ls_include TYPE /scwm/dlv_query_incl_str_prd.
ls_include-item_product_ext = 'X'.
ls_include-HEAD_REFDOC = 'X'.
ls_include-HEAD_PARTYLOC =
ls_include-ITEM_REFDOC =
*ls_include-item_sapext =
ls_include-item_partyloc =
ls_include-ITEM_hierarchy =
ls_include-ITEM_PARTYLOC = 'X'.
gv_docid = is_load_list-hd_gen-docid.
gv_dlv = /scwm/cl_dlv_management_prd=>get_instance( ).
l_docid-docid = is_load_list-hd_gen-docid.
* l_docid-itemid = is_item-itemid.
l_docid-doccat = is_load_list-hd_gen-doccat.
APPEND l_docid TO lt_docid.
* Get instance of the delivery.
TRY.
CALL METHOD gv_dlv->query
EXPORTING
it_docid = lt_docid
is_include_data = ls_include
IMPORTING
et_items = lt_items
et_headers = lt_headers.
CATCH /scdl/cx_delivery .
EXIT.
ENDTRY.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
8 | |
6 | |
5 | |
4 | |
4 | |
4 | |
4 | |
4 | |
3 | |
2 |