2020-08-18 05:29发布
加入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
您好,克里希纳,
检查fm文档的这一部分:
去中心化WMS中的批次拆分
如果您从分布式系统中更改批次子项 在分散的WMS中进行外向交货,则该批子项目已存在于中央ERP系统中。
字段HIERARITEM和USEHIERITM为空。 系统在DELIV_ITEM字段中复制批次子项目。
如果您从分散式WMS中的分布式外向交货中更改批次主项目的数量,则该批次主项目已经存在于中央ERP系统中
字段HIERARITEM和USEHIERITM为空。 系统将批次子项目复制到DELIV_ITEM字段中。
如果您为分散式WMS中的分布式外向交货执行批次拆分,则那时中央ERP系统中仅存在批次主项目。/p>
例如,如果您创建两个批处理子项目,则将生成三个项目段ItemData传输到中央ERP系统:
批次主项目HIERARITEM的项目段为空。
交货数量和基本数量为空。
对于每个子项目,系统都会生成一个带有以下字段的项目段:
DELIV_ITEM包含
HIERARITEM包含批处理主要项目的编号。
USEHIERITM的值为1表示该子项目用作批处理子项目。
数量字段与批次子项目中的数量匹配。
中央ERP系统随后执行批次拆分,以进行分布式外向交货。
致谢
Ravi
你好桑德斯,
我已经解决了该问题,并且使用BAPI BAPI_OUTB_DELIVERY_CHANGE进行了批量拆分。 我已回复您的主题。 退房并奖励积分。
此致
Senthil G。
尝试一下。
报告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_item ='900002'。
ls_item_data-dlv_qty = 60。
ls_item_data-dlv_qty_imunit = 60。
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_item ='900002'。
打破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'。
*&--------------------------------------------- ------------------------ *
*&表格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。
ENDFORM。 " CREATE_BATCH
最多设置5个标签!
您好,克里希纳,
检查fm文档的这一部分:
去中心化WMS中的批次拆分
如果您从分布式系统中更改批次子项 在分散的WMS中进行外向交货,则该批子项目已存在于中央ERP系统中。
字段HIERARITEM和USEHIERITM为空。 系统在DELIV_ITEM字段中复制批次子项目。
如果您从分散式WMS中的分布式外向交货中更改批次主项目的数量,则该批次主项目已经存在于中央ERP系统中
字段HIERARITEM和USEHIERITM为空。 系统将批次子项目复制到DELIV_ITEM字段中。
如果您为分散式WMS中的分布式外向交货执行批次拆分,则那时中央ERP系统中仅存在批次主项目。/p>
例如,如果您创建两个批处理子项目,则将生成三个项目段ItemData传输到中央ERP系统:
批次主项目HIERARITEM的项目段为空。
交货数量和基本数量为空。
对于每个子项目,系统都会生成一个带有以下字段的项目段:
DELIV_ITEM包含
HIERARITEM包含批处理主要项目的编号。
USEHIERITM的值为1表示该子项目用作批处理子项目。
数量字段与批次子项目中的数量匹配。
中央ERP系统随后执行批次拆分,以进行分布式外向交货。
致谢
Ravi
你好桑德斯,
我已经解决了该问题,并且使用BAPI BAPI_OUTB_DELIVERY_CHANGE进行了批量拆分。 我已回复您的主题。 退房并奖励积分。
此致
Senthil G。
尝试一下。
报告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
一周热门 更多>