场景:采购收货质检放行的时候,发现存在有些做QA11的时候,进入到TR-ZONE中,没有进入到指定的仓位
解决方案:前端通过LU04进入,可以查看到一些未清的记账更改通知单,点击工具栏上的创建转储单,这个时候就会创建转储单进行过账处理掉了,从TR-ZONE中释放出来,进入到指定的仓位
程序处理的话,需要使用BAPI: L_TO_CREATE_POSTING_CHANGE
代码示例:
*&---------------------------------------------------------------------*
*& Report ZWMR315
*&
*&---------------------------------------------------------------------*
*&
*&WMS-LU01确认未清过帐更改凭证
*&---------------------------------------------------------------------*REPORT zwmr315.
TABLES: lubu.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lgnum FOR lubu-lgnum NO INTERVALS OBLIGATORY, "仓库s_bdatu FOR lubu-bdatu OBLIGATORY, "过帐日期s_bwart FOR lubu-bwart, "移动类型s_ubnum FOR lubu-ubnum. "过帐凭证
SELECTION-SCREEN END OF BLOCK b1.AT SELECTION-SCREEN.START-OF-SELECTION.PERFORM frm_get_data.
*&---------------------------------------------------------------------*
*& Form FRM_GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_get_data .DATA: lt_lubu TYPE TABLE OF lubu,ls_lubu TYPE lubu,i_lgnum TYPE ltak-lgnum,i_ubnum TYPE ltak-ubnum,e_tanum TYPE ltak-tanum,t_lubqu TYPE TABLE OF lubqu,ls_lubqu TYPE lubqu,t_ltap_vb TYPE TABLE OF ltap_vb,ls_ltap_vb TYPE ltap_vb,t_ltak TYPE TABLE OF ltak_vb,ls_ltak TYPE ltak_vb.SELECT * INTO TABLE lt_lubuFROM lubuWHERE lgnum IN s_lgnumAND bdatu IN s_bdatuAND bwart IN s_bwartAND ubnum IN s_ubnumAND statu = ''.LOOP AT lt_lubu INTO ls_lubu.CLEAR: i_lgnum,i_ubnum,e_tanum,t_lubqu,ls_lubqu,t_ltap_vb,ls_ltap_vb,t_ltak,ls_ltak.i_lgnum = ls_lubu-lgnum.i_ubnum = ls_lubu-ubnum.CALL FUNCTION 'L_TO_CREATE_POSTING_CHANGE'EXPORTINGi_lgnum = i_lgnumi_ubnum = i_ubnum
* I_LUBUI = ' '
* i_squit = 'X'
* I_NIDRU = ' '
* I_DRUKZ = ' '
* I_LDEST = ' '
* I_UPDATE_TASK = ' 'i_commit_work = 'X'i_bname = sy-uname
* I_SOLEX = 0
* I_PERNR = 0IMPORTINGe_tanum = e_tanumTABLESt_lubqu = t_lubqut_ltap_vb = t_ltap_vbt_ltak = t_ltakEXCEPTIONSforeign_lock = 1tp_completed = 2xfeld_wrong = 3ldest_wrong = 4drukz_wrong = 5tp_wrong = 6squit_forbidden = 7no_to_created = 8update_without_commit = 9no_authority = 10i_ubnum_or_i_lubu = 11bwlvs_wrong = 12material_not_found = 13manual_to_forbidden = 14bestq_wrong = 15sobkz_missing = 16sobkz_wrong = 17meins_wrong = 18conversion_not_found = 19no_quants = 20t_lubqu_required = 21le_bulk_quant_not_selectable = 22quant_not_selectable = 23quantnumber_initial = 24kzuap_or_bin_location = 25date_wrong = 26nltyp_missing = 27nlpla_missing = 28lgber_wrong = 29lenum_wrong = 30menge_wrong = 31menge_to_big = 32open_tr_kzuap = 33lock_exists = 34double_quant = 35quantity_wrong = 36OTHERS = 37.IF sy-subrc <> 0.
* Implement suitable error handling hereENDIF.WRITE: / i_lgnum, i_ubnum, e_tanum.ENDLOOP.ENDFORM. " FRM_GET_DATA