使用BAPI_OUTB_DELIVERY_CHANGE进行批量拆分?

2020-08-18 05:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 有人像我们在 VL...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

有人像我们在 VL02N 中所做的那样,使用 BAPI_OUTB_DELIVERY_CHANGE 完成了批量拆分。

要在VL02N中自动化批次拆分过程,我有两个选择:

1)VL02N的BDC

2)使用BAPI_OUTB_DELIVERY_CHANGE

BAPI_OUTB_DELIVERY_CHANGE是否可以满足我的要求。

需要有价值的输入。

谢谢

subba

9条回答
蓋茨
2020-08-18 05:40

尝试一下。

报告z_delivery_batch_split。

DATA:header_data类似于bapiibdlvhdrchg,

header_control类似bapiibdlvhdrctrlchg,

交付类似bapiibdlvhdrchg-deliv_numb,

ls_return类似bapiret2,

bapiibdlvitemchg的item_data类型表,

bapiibdlvitemctrlchg的item_control类型表,

ls_item_data类似bapiibdlvitemchg,

ls_item_control类似于bapiibdlvitemctrlchg,

返回具有非唯一键类型的bapiret2的类型表。

header_data-deliv_numb ='1800005005'。

header_control-deliv_numb ='1800005005'。

delivery ='1800005005'。

ls_item_data-deliv_numb ='1800005005'。

ls_item_data-deliv_item ='900001'。

ls_item_data-material ='000000000020067722'。

PERFORM create_batch更改ls_item_data-batch。

ls_item_data-hieraritem ='000010'。

ls_item_data-usehieritm ='1'。

ls_item_data-dlv_qty = 80。

ls_item_data-dlv_qty_imunit = 80。

ls_item_data-fact_unit_nom ='1'。

ls_item_data-fact_unit_denom ='1'。

ls_item_data-sales_unit ='EA'。

ls_item_data-base_uom ='EA'。

APPEND ls_item_data到item_data。

ls_item_data-deliv_numb ='1800005005'。

ls_item_data-deliv_item ='900002'。

ls_item_data-material ='000000000020067722'。

PERFORM create_batch更改ls_item_data-batch。

ls_item_data-hieraritem ='000010'。

ls_item_data-usehieritm ='1'。

ls_item_data-dlv_qty = 60。

ls_item_data-dlv_qty_imunit = 60。

ls_item_data-fact_unit_nom ='1'。

ls_item_data-fact_unit_denom ='1'。

ls_item_data-sales_unit ='EA'。

ls_item_data-base_uom ='EA'。

APPEND ls_item_data到item_data。

ls_item_control-deliv_numb ='1800005005'。

ls_item_control-deliv_item ='900001'。

ls_item_control-chg_delqty ='X'。

APPEND ls_item_control到item_control。

ls_item_control-deliv_numb ='1800005005'。

ls_item_control-deliv_item ='900002'。

ls_item_control-chg_delqty ='X'。

APPEND ls_item_control到item_control。

打破cgavin。

通话功能'BAPI_INB_DELIVERY_CHANGE'

导出

header_data = header_data

header_control = header_control

交付=交付

* TECHN_CONTROL = TECHN_CONTROL

表格

* HEADER_PARTNER = HEADER_PARTNER

* HEADER_PARTNER_ADDR = HEADER_PARTNER_ADDR

* HEADER_DEADLINES = HEADER_DEADLINES

item_data = item_data

item_control = item_control

* ITEM_SERIAL_NO = ITEM_SERIAL_NO

* EXTENSION1 = EXTENSION1

* EXTENSION2 = EXTENSION2

return = return

* TOKENREFERENCE = TOKENREFERENCE

* HANDLING_UNIT_HEADER = HANDLING_UNIT_HEADER

* HANDLING_UNIT_ITEM = HANDLING_UNIT_ITEM

* PARTIAL_GR_OBJECTS = PARTIAL_GR_OBJECTS

READ TABLE返回

INTO ls_return

WITH TABLE KEY type ='E'。

如果sy-subrc = 0。

消息ID ls_return-id类型ls_return-type NUMBER ls_return-number with ls_return-message_v1 ls_return-message_v2

ls_return-message_v3 ls_return-message_v4。

ENDIF。

通话功能'BAPI_TRANSACTION_COMMIT'

导出

等待='X'。

打破cgavin。

*&--------------------------------------------- ------------------------ *

*&表格CREATE_BATCH

*&--------------------------------------------- ------------------------ *

*文字

* ---------------------------------------------- ------------------------ *

* <-P_LS_ITEM_DATA_BATCH文本

* ---------------------------------------------- ------------------------ *

FORM create_batch更改p_ls_item_data_batch。

数据:ls_bncom类型bncom。

ls_bncom-matnr = ls_item_data-material。

ls_bncom-werks ='C333'。

ls_bncom-lgort ='3000'。

选择单个mtart

来自玛拉

INTO ls_bncom-mtart

matnr = ls_bncom-matnr。

通话功能'VB_NEXT_BATCH_NUMBER'

导出

matnr = ls_bncom-matnr

werks = ls_bncom-werks

check_batch ='X'

check_material =''

message_when_auto =''

x_bncom = ls_bncom

lock_batch =''

导入

new_charg = p_ls_item_data_batch

例外情况

no_material = 1

no_plant = 2

material_not_found = 3

plant_not_found = 4

no_batch_handling = 5

batch_exist = 6

no_number = 7

非法批次编号= 8

interval_not_found = 9

object_not_found = 10

interval_overflow = 11

error_automatic_batch_number = 12

取消= 13

automatic_batch_num_not_active = 14

其他= 15。

如果sy-subrc = 0。

通话功能'BAPI_TRANSACTION_COMMIT'

导出

等待='X'。

ENDIF。

ENDFORM。 " CREATE_BATCH

一周热门 更多>