LT01创建转储单

作者:斌将军 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, PP, WM, 仓库管理, 开发, 数据工程, 物料管理, 生产
LT01创建转储单 - 封面图
LT01创建转储单 - 封面图

** 1、LT01创建转储单 **

业务流程如下:采购订单——MIGO收货——虚拟仓位——LT01上架——实体仓位——LT01下架——虚拟仓位——MIGO发料——生产订单

LT01创建转储单 - 封面图
LT01创建转储单 - 封面图
LT01创建转储单 - 封面图
LT01创建转储单 - 封面图

** 2、参考代码 **

"--------------------@斌将军--------------------DATA: lt_ltap_creat TYPE TABLE OF ltap_creat, ls_ltap_creat TYPE ltap_creat.

DATA: lv_lgnum TYPE ltak-lgnum, lv_bwlvs TYPE ltak-bwlvs, lv_tanum TYPE ltak-tanum, lv_vltyp TYPE ltap-vltyp, " 源仓储类型 lv_vlber TYPE ltap-vlber, " 源发地仓储区 lv_vlpla TYPE ltap-vlpla, " 源发地仓储位 lv_nltyp TYPE ltap-nltyp, " 目的地仓储类型 lv_nlber TYPE ltap-nlber, " 目的地仓储区 lv_nlpla TYPE ltap-nlpla. " 目的地仓位 SELECT werks, lgort, lgnumFROM t320INTO TABLE @DATA(lt_t320)WHERE werks = gs_data-werks AND lgort = gs_data-lgort.IF sy-subrc EQ 0. SORT lt_t320 BY werks lgort. READ TABLE lt_t320 INTO DATA(ls_t320) WITH KEY werks = gs_data-werks                                lgort = gs_data-lgort BINARY SEARCH. IF sy-subrc EQ 0. lv_lgnum = ls_t320-lgnum. ENDIF.ENDIF. "上架仓储类型*SELECT* werks,* lgort,* lfdnr*INTO TABLE @DATA(lt_twlad)*FROM twlad*WHERE werks = gs_data_str-werks* AND lgort = gs_data_str-lgort.**IF sy-subrc EQ 0.* SORT lt_twlad BY werks lgort.* READ TABLE lt_twlad INTO DATA(ls_twlad) WITH KEY werks = gs_data-werks*                              lgort = gs_data-lgort BINARY SEARCH.* IF sy-subrc EQ 0.* lv_vltyp = ls_twlad-lfdnr. " 源仓储类型* ENDIF.*ENDIF. SELECT lgnum, lqnum, lgtypFROM lquaINTO TABLE @DATA(lt_lqua)FOR ALL ENTRIES IN @lt_lljpWHERE lgnum = @gs_data_str-lgnum AND lqnum = @gs_data_str-lqnum.

SORT lt_lqua BY lgnum lqnum.

lv_bwlvs = '999'. " 移动类型LOOP AT gt_item INTO ls_item. PERFORM matnr_input CHANGING ls_item-matnr. CLEAR ls_ltap_creat. ls_ltap_creat-matnr = ls_item-matnr. " 物料编号 ls_ltap_creat-werks = ls_item-werks. " 工厂 ls_ltap_creat-lgort = ls_item-lgort. " 存储地点 ls_ltap_creat-charg = ls_item-charg. " 批次编号 ls_ltap_creat-anfme = ls_item-menge. " 数量 ls_ltap_creat-altme = ls_item-meins. " 基本计量单位 READ TABLE lt_lqua INTO DATA(ls_lqua) WITH KEY lgnum = ls_item-lgnum lqnum = ls_item-lqnum BINARY SEARCH. IF sy-subrc EQ 0. ls_ltap_creat-vltyp = ls_lqua-lgtyp. " 源仓储类型 ENDIF. ls_ltap_creat-vlber = '001'. " 源发地仓储区 ls_ltap_creat-vlpla = ls_item-lgpla. " 源发地仓储位 ls_ltap_creat-nltyp = 'Y00'. " 目的地仓储类型 ls_ltap_creat-nlber = '001'. " 目的地仓储区 ls_ltap_creat-nlpla = 'Y00'. " 目的地仓位 APPEND ls_ltap_creat TO lt_ltap_creat.ENDLOOP. CALL FUNCTION 'L_TO_CREATE_MULTIPLE' EXPORTING i_lgnum = lv_lgnum i_bwlvs = lv_bwlvs* I_BETYP = ' '* I_BENUM = ' '* I_LZNUM = ' '* I_NIDRU = ' '* I_DRUKZ = ' '* I_NOSPL = ' '* I_UPDATE_TASK = ' ' i_commit_work = 'X' i_bname = sy-uname* I_KOMPL = 'X'* I_SOLEX = 0* I_PERNR = 0* I_MINWM = ' '* I_AUSFB = ' ' IMPORTING e_tanum = lv_tanum TABLES t_ltap_creat = lt_ltap_creat* T_LTAK =* T_LTAP_VB = EXCEPTIONS no_to_created = 1 bwlvs_wrong = 2 betyp_wrong = 3 benum_missing = 4 betyp_missing = 5 foreign_lock = 6 vltyp_wrong = 7 vlpla_wrong = 8 vltyp_missing = 9 nltyp_wrong = 10 nlpla_wrong = 11 nltyp_missing = 12 rltyp_wrong = 13 rlpla_wrong = 14 rltyp_missing = 15 squit_forbidden = 16 manual_to_forbidden = 17 letyp_wrong = 18 vlpla_missing = 19 nlpla_missing = 20 sobkz_wrong = 21 sobkz_missing = 22 sonum_missing = 23 bestq_wrong = 24 lgber_wrong = 25 xfeld_wrong = 26 date_wrong = 27 drukz_wrong = 28 ldest_wrong = 29 update_without_commit = 30 no_authority = 31 material_not_found = 32 lenum_wrong = 33 matnr_missing = 34 werks_missing = 35 anfme_missing = 36 altme_missing = 37 lgort_wrong_or_missing = 38 OTHERS = 39.IF sy-subrc <> 0. cs_return-type = 'E'. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO cs_return-message. EXIT.ENDIF."--------------------@斌将军--------------------
斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「LT01创建转储单.md」整理生成,仅用于内部技术分享与学习交流。