0
点赞
收藏
分享

微信扫一扫

根据物料序列号获取最新的HU号码_SAP刘梦_新浪博客


DEMO代码

 


*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IF_EVENT) TYPE HUWBEVENT
*" TABLES
*" IT_DATA (自己定义)
*" ET_data(自己定义)
*"----------------------------------------------------------------------


DATA:lt_ser06 TYPE TABLE OF ser06.
DATA:ls_ser06 TYPE ser06.
DATA:ls_data LIKE LINE OF it_data.
DATA:lv_lines TYPE int4.

DATA:ls_tmp LIKE LINE OF it_data.
DATA:ls_edata LIKE LINE OF et_block.
DATA: it_move_to TYPE hum_data_move_to_t WITH HEADER LINE.
DATA: it_external_id TYPE hum_exidv_t WITH HEADER LINE.

DATA:is_imkpf TYPE imkpf.

DATA: l_subrc TYPE sysubrc,
wa_message TYPE huitem_messages,
it_message TYPE huitem_messages_t WITH HEADER LINE.

DATA: lv_mblnr TYPE mblnr.


DATA:hu_items TYPE hum_humseg_t.
DATA:ls_hu_item LIKE LINE OF hu_items.
FIELD-SYMBOLS: LIKE LINE OF hu_items.


CLEAR ls_tmp.
CLEAR lv_lines.
CLEAR lv_mblnr.

CHECK it_data[] IS NOT INITIAL.

SELECT * FROM ser06 INTO TABLE lt_ser06
FOR ALL ENTRIES IN it_data
WHERE exidv = it_data-exidv.


"去重
SORT it_data BY matnr sernr.
DELETE ADJACENT DUPLICATES FROM it_data COMPARING matnr sernr.

SORT it_data BY matnr werks lgort.

CLEAR it_external_id[]. REFRESH it_external_id.
CLEAR it_move_to[]. REFRESH it_move_to.

DATA:lv_count TYPE int4.

CLEAR lv_count.
LOOP AT it_data INTO ls_data .

lv_lines = lv_lines 1.
IF ls_tmp IS INITIAL."第一次
ls_tmp = ls_data.
ENDIF.

*&不同工厂库位 不同行项目
IF ls_tmp-matnr = ls_data-matnr
AND ls_tmp-werks = ls_data-werks
AND ls_tmp-lgort = ls_data-lgort.

it_external_id-exidv = ls_data-exidv.
APPEND it_external_id.

*&move-to HU_ITEMS
READ TABLE lt_ser06 INTO ls_ser06
WITH KEY exidv = ls_data-exidv.

CLEAR ls_hu_item.
ls_hu_item-venum = ls_ser06-venum.
ls_hu_item-vepos = ls_ser06-vepos.
*** ls_hu_item-quantity = 1. "no need

READ TABLE hu_items ASSIGNING
WITH KEY
venum = ls_hu_item-venum
vepos = ls_hu_item-vepos.

IF sy-subrc = 0.
* -quantity = -quantity 1.
ELSE.
APPEND ls_hu_item TO hu_items.
ENDIF.
ELSE.
CLEAR lv_mblnr.
it_move_to-lgort = ls_tmp-lgort.
it_move_to-werks = ls_tmp-werks.
it_move_to-matnr = ls_tmp-matnr.

it_move_to-hu_items = hu_items[].

APPEND it_move_to.

CLEAR hu_items[].

it_external_id-exidv = ls_data-exidv.
APPEND it_external_id.

*&move-to HU_ITEMS
READ TABLE lt_ser06 INTO ls_ser06
WITH KEY exidv = ls_data-exidv.

CLEAR ls_hu_item.
ls_hu_item-venum = ls_ser06-venum.
ls_hu_item-vepos = ls_ser06-vepos.
** ls_hu_item-quantity = 1."no need

READ TABLE hu_items ASSIGNING
WITH KEY
venum = ls_hu_item-venum
vepos = ls_hu_item-vepos.

IF sy-subrc = 0. ELSE.
APPEND ls_hu_item TO hu_items.
ENDIF.

*&g更新参考变量
ls_tmp = ls_data.
ENDIF." IF ls_tmp-matnr = ls_data-matnr


ENDLOOP." LOOP AT it_data INTO ls_data .


it_move_to-lgort = ls_data-lgort.
it_move_to-werks = ls_data-werks.
it_move_to-matnr = ls_data-matnr.

it_move_to-hu_items = hu_items[].
APPEND it_move_to.

CLEAR lv_mblnr.

is_imkpf-budat = sy-datum.
is_imkpf-bldat = sy-datum.

CLEAR lv_mblnr.
CLEAR ls_edata.

"清空变量
CALL FUNCTION 'SERIAL_INTTAB_REFRESH'
* EXPORTING
* OBJECTS_STATUS_REFRESH = ' '
.

CALL FUNCTION 'HU_CREATE_GOODS_MOVEMENT'
EXPORTING
if_event = if_event "'0023' "block '0022' "unblock
if_commit = space
is_imkpf = is_imkpf
it_move_to = it_move_to[]
it_external_id = it_external_id[]
IMPORTING
ef_posted = l_subrc "return
es_message = wa_message "export message
et_messages = it_message[]. "


READ TABLE it_message WITH KEY
msgid = 'HUGENERAL'
msgty = 'S'
msgno = '309'.
IF sy-subrc = 0.

lv_mblnr = it_message-msgv1.


ELSE.
ENDIF."

ENDFUNCTION.


根据物料序列号获取最新的HU号码_SAP刘梦_新浪博客_checkbox

举报

相关推荐

0 条评论