交货单批次拆分(BAPI_OUTB_DELIVERY_CHANGE )并更改拣配数量,发货过账(WS_DELIVERY_UPDATE)
来源:互联网 发布:昆明达内大数据培训 编辑:程序博客网 时间:2024/05/02 01:07
*&---------------------------------------------------------------------*
*& Report ZVL02N_CHARGE
*&
*&---------------------------------------------------------------------*
*& 先调用 BAPI_OUTB_DELIVERY_CHANGE 对批次进行拆分(前提是 要拆分的 外向交货单 行项目 批次为 空)
*& 然后 调用 WS_DELIVERY_UPDATE 更新 交货数量和拣配数量
*&---------------------------------------------------------------------*
REPORT ZVL02N_CHARGE.
DATA : HEADER_DATA LIKE BAPIOBDLVHDRCHG. "Delivery header
DATA : HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG. "delivery header control
DATA : I_DELIVERY_NO LIKE BAPIOBDLVHDRCHG-DELIV_NUMB. "deliver number
DATA : TECHN_CONTROL LIKE BAPIDLVCONTROL. "TECHN_CONTROL
DATA : ITEM_DATA LIKE BAPIOBDLVITEMCHG OCCURS 0 WITH HEADER LINE. "ITEM_DATA delivery item
DATA : ITEM_CONTROL LIKE BAPIOBDLVITEMCTRLCHG OCCURS 0 WITH HEADER LINE. "ITEM_CONTROL
DATA : RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE. "Return
*Set Delivery Header data
I_DELIVERY_NO = '0080249529'.
HEADER_DATA-DELIV_NUMB = I_DELIVERY_NO.
TECHN_CONTROL-UPD_IND = 'U'.
HEADER_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_ITEM = '900001'.
ITEM_DATA-HIERARITEM = '40'. "The batch split record below delivery item hierary
ITEM_DATA-USEHIERITM = '1'.
ITEM_DATA-MATERIAL = 'W065B0X030601002'.
ITEM_DATA-BATCH = 'BCFA2907'.
ITEM_DATA-DLV_QTY = 4.
*ITEM_DATA-DLV_QTY_IMUNIT = 1000.
ITEM_DATA-FACT_UNIT_NOM = 1.
ITEM_DATA-FACT_UNIT_DENOM = 1.
APPEND ITEM_DATA.
CLEAR ITEM_DATA.
ITEM_DATA-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_ITEM = '900002'. "The batch split record below delivery item hierary
ITEM_DATA-HIERARITEM = '40'.
ITEM_DATA-USEHIERITM = '1'.
ITEM_DATA-MATERIAL = 'W065B0X030601002'.
ITEM_DATA-BATCH = 'BCFC1802'.
ITEM_DATA-DLV_QTY = 4.
ITEM_DATA-FACT_UNIT_NOM = 1.
ITEM_DATA-FACT_UNIT_DENOM = 1.
APPEND ITEM_DATA.
CLEAR ITEM_DATA.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '40'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '900001'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '900002'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = HEADER_DATA
HEADER_CONTROL = HEADER_CONTROL
DELIVERY = I_DELIVERY_NO
TECHN_CONTROL = TECHN_CONTROL
TABLES
ITEM_DATA = ITEM_DATA
ITEM_CONTROL = ITEM_CONTROL
RETURN = RETURN.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
DATA : I_VBKOK LIKE VBKOK. "Delivery header
DATA : I_VBPOK LIKE VBPOK OCCURS 0 WITH HEADER LINE. "Delivery Picking
DATA : V_ERROR.
I_VBKOK-VBELN_VL = '0080000066'.
I_VBKOK-WABUC = 'X'. "Post Good Issue Automatic
I_VBPOK-VBELN_VL = I_VBKOK-VBELN_VL. "Delivery NO
I_VBPOK-POSNR_VL = '900001'. "Delivery Item
I_VBPOK-VBELN = '1000000325'. "Sales Order "You must assign Sales order & Item number
I_VBPOK-POSNN = '10'. "Sales Order item
I_VBPOK-MATNR = 'WY-F-001'.
I_VBPOK-CHARG = '0000000001'.
I_VBPOK-LFIMG = 5. "Actual quantity delivered (in sales units)
I_VBPOK-LGMNG = 5. "Actual quantity delivered in stockkeeping units
APPEND I_VBPOK.
I_VBPOK-VBELN_VL = I_VBKOK-VBELN_VL. "Delivery NO
I_VBPOK-POSNR_VL = '900002'. "Delivery Item
I_VBPOK-VBELN = '1000000325'. "Sales Order
I_VBPOK-POSNN = '10'. "Sales Order item
I_VBPOK-MATNR = 'WY-F-001'.
I_VBPOK-CHARG = '0000000002'.
I_VBPOK-LFIMG = 5. "Actual quantity delivered (in sales units)
I_VBPOK-LGMNG = 5. "Actual quantity delivered in stockkeeping units
APPEND I_VBPOK.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = I_VBKOK
DELIVERY = I_VBKOK-VBELN_VL
UPDATE_PICKING = 'X' "Update Picking data
IMPORTING
EF_ERROR_IN_GOODS_ISSUE_0 = V_ERROR
TABLES
VBPOK_TAB = I_VBPOK.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
endif.
*& Report ZVL02N_CHARGE
*&
*&---------------------------------------------------------------------*
*& 先调用 BAPI_OUTB_DELIVERY_CHANGE 对批次进行拆分(前提是 要拆分的 外向交货单 行项目 批次为 空)
*& 然后 调用 WS_DELIVERY_UPDATE 更新 交货数量和拣配数量
*&---------------------------------------------------------------------*
REPORT ZVL02N_CHARGE.
DATA : HEADER_DATA LIKE BAPIOBDLVHDRCHG. "Delivery header
DATA : HEADER_CONTROL LIKE BAPIOBDLVHDRCTRLCHG. "delivery header control
DATA : I_DELIVERY_NO LIKE BAPIOBDLVHDRCHG-DELIV_NUMB. "deliver number
DATA : TECHN_CONTROL LIKE BAPIDLVCONTROL. "TECHN_CONTROL
DATA : ITEM_DATA LIKE BAPIOBDLVITEMCHG OCCURS 0 WITH HEADER LINE. "ITEM_DATA delivery item
DATA : ITEM_CONTROL LIKE BAPIOBDLVITEMCTRLCHG OCCURS 0 WITH HEADER LINE. "ITEM_CONTROL
DATA : RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE. "Return
*Set Delivery Header data
I_DELIVERY_NO = '0080249529'.
HEADER_DATA-DELIV_NUMB = I_DELIVERY_NO.
TECHN_CONTROL-UPD_IND = 'U'.
HEADER_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_ITEM = '900001'.
ITEM_DATA-HIERARITEM = '40'. "The batch split record below delivery item hierary
ITEM_DATA-USEHIERITM = '1'.
ITEM_DATA-MATERIAL = 'W065B0X030601002'.
ITEM_DATA-BATCH = 'BCFA2907'.
ITEM_DATA-DLV_QTY = 4.
*ITEM_DATA-DLV_QTY_IMUNIT = 1000.
ITEM_DATA-FACT_UNIT_NOM = 1.
ITEM_DATA-FACT_UNIT_DENOM = 1.
APPEND ITEM_DATA.
CLEAR ITEM_DATA.
ITEM_DATA-DELIV_NUMB = I_DELIVERY_NO.
ITEM_DATA-DELIV_ITEM = '900002'. "The batch split record below delivery item hierary
ITEM_DATA-HIERARITEM = '40'.
ITEM_DATA-USEHIERITM = '1'.
ITEM_DATA-MATERIAL = 'W065B0X030601002'.
ITEM_DATA-BATCH = 'BCFC1802'.
ITEM_DATA-DLV_QTY = 4.
ITEM_DATA-FACT_UNIT_NOM = 1.
ITEM_DATA-FACT_UNIT_DENOM = 1.
APPEND ITEM_DATA.
CLEAR ITEM_DATA.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '40'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '900001'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
ITEM_CONTROL-DELIV_NUMB = I_DELIVERY_NO.
ITEM_CONTROL-DELIV_ITEM = '900002'.
ITEM_CONTROL-CHG_DELQTY = 'X'.
APPEND ITEM_CONTROL.
CLEAR ITEM_CONTROL.
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
HEADER_DATA = HEADER_DATA
HEADER_CONTROL = HEADER_CONTROL
DELIVERY = I_DELIVERY_NO
TECHN_CONTROL = TECHN_CONTROL
TABLES
ITEM_DATA = ITEM_DATA
ITEM_CONTROL = ITEM_CONTROL
RETURN = RETURN.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
DATA : I_VBKOK LIKE VBKOK. "Delivery header
DATA : I_VBPOK LIKE VBPOK OCCURS 0 WITH HEADER LINE. "Delivery Picking
DATA : V_ERROR.
I_VBKOK-VBELN_VL = '0080000066'.
I_VBKOK-WABUC = 'X'. "Post Good Issue Automatic
I_VBPOK-VBELN_VL = I_VBKOK-VBELN_VL. "Delivery NO
I_VBPOK-POSNR_VL = '900001'. "Delivery Item
I_VBPOK-VBELN = '1000000325'. "Sales Order "You must assign Sales order & Item number
I_VBPOK-POSNN = '10'. "Sales Order item
I_VBPOK-MATNR = 'WY-F-001'.
I_VBPOK-CHARG = '0000000001'.
I_VBPOK-LFIMG = 5. "Actual quantity delivered (in sales units)
I_VBPOK-LGMNG = 5. "Actual quantity delivered in stockkeeping units
APPEND I_VBPOK.
I_VBPOK-VBELN_VL = I_VBKOK-VBELN_VL. "Delivery NO
I_VBPOK-POSNR_VL = '900002'. "Delivery Item
I_VBPOK-VBELN = '1000000325'. "Sales Order
I_VBPOK-POSNN = '10'. "Sales Order item
I_VBPOK-MATNR = 'WY-F-001'.
I_VBPOK-CHARG = '0000000002'.
I_VBPOK-LFIMG = 5. "Actual quantity delivered (in sales units)
I_VBPOK-LGMNG = 5. "Actual quantity delivered in stockkeeping units
APPEND I_VBPOK.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = I_VBKOK
DELIVERY = I_VBKOK-VBELN_VL
UPDATE_PICKING = 'X' "Update Picking data
IMPORTING
EF_ERROR_IN_GOODS_ISSUE_0 = V_ERROR
TABLES
VBPOK_TAB = I_VBPOK.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
endif.
0 0
- 交货单批次拆分(BAPI_OUTB_DELIVERY_CHANGE )并更改拣配数量,发货过账(WS_DELIVERY_UPDATE)
- WS_DELIVERY_UPDATE 修改数量、过账日期并发货过账
- WS_DELIVERY_UPDATE 修改数量、过账日期并发货过账
- WS_DELIVERY_UPDATE 修改数量、过账日期并发货过账
- 【南京】根据销售订单创建交货单并自动拣配、过账发货程序
- BAPI 更改交货单 & 更改捡配 'BAPI_OUTB_DELIVERY_CHANGE'
- ABAP中,利用函数WS_DELIVERY_UPDATE进行VL02N发货过账时获取凭证号(mblnr)
- 外向交货单发货过账BAPI:WS_DELIV…
- 外向交货单发货过账BAPI:BAPI_OUT…
- 发货过账(vl02n)bapi 及冲销
- 批次拆分和合并
- SAP-BAPI-将指定的交货单发货过账(指定账期和出货仓位)
- 更新交货单捡配数量
- sap-abap-交货出口-交货单保存前设定所有行项发货仓位且过账前检查是否仓位一致
- SAP外向交货单中的批次拆分应用于免费货物的小问题
- bapi BAPI_OUTB_DELIVERY_CHANGE 修改交货单中的序列号
- 交货单过账后添加文本
- 冲销已过账外向交货单
- webview加载页面--
- 最毁人的跳槽八大传闻
- #android#通知Notification
- Java异常
- 关于beta分布的理解
- 交货单批次拆分(BAPI_OUTB_DELIVERY_CHANGE )并更改拣配数量,发货过账(WS_DELIVERY_UPDATE)
- iOS及Mac开源项目和学习资料【超级全面】
- C语言结构体中的函数指针
- windows 下 CMD 查询本机开了哪些端口 并查看开启端口的软件
- 正则表达式语法和示例
- 大数据工具/框架
- JSP
- 关于spring配置中the prefix "tx" for element "tx:annotation-driven" is not bound 问题的处理
- WPF DataGridComboBox绑定enum