bapi_inb_delivery_change修改数量

2020-08-24 19:40发布

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

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


全部

我正在尝试使用bapi_inb_delivery_change BAPI修改内向交货的交货数量。

我到了某种程度,我不知道发生了什么,BAPI返回错误代码004,消息类型为VLBAPI,我想某些信息丢失了,但是我不知道...

我附上我的代码:

TYPES:bapidlvdeadln的lty_dead类型标准表。

数据:lt_header_deadlines类型为lty_dead,

wa_header_deadlines TYPE bapidlvdeadln,

wa_header_control TYPE bapiibdlvhdrctrlchg,

it_return bapiret2的类型标准表,

wa_delivery类型bapiibdlvhdrchg-deliv_numb,

wa_header_data TYPE bapiibdlvhdrchg。

数据:item_data类似于bapiibdlvitemchg OCCURS 0。

数据:wa_item_data类似于bapiibdlvitemchg。

数据:item_control类似于bapiibdlvitemctrlchg OCCURS 0。

数据:wa_item_control类似于bapiibdlvitemctrlchg。

写入:sy-datum。

*限时消费

wa_header_deadlines-deliv_numb ='0180000600'。

wa_header_deadlines-timetype ='WSHDRLFDAT'。 "交货日期

wa_header_deadlines-timestamp_utc =20120909000000。" YYYYMMDDHHMMSS

wa_header_deadlines-timezone ='ALA'。 "西欧

APPEND wa_header_deadlines至lt_header_deadlines。

wa_header_data-deliv_numb ='0180000600'。

wa_header_control-deliv_numb ='0180000600'。

wa_header_control-deliv_date_flg ='X'。

*************************************************** ************************

*数据:ls_item类型bapiibdlvitemchg。

数据:ls_lips类型为LIPSVB。

*选择单个lfimg lgmng lfimg_flo lgmng_flo umvkz umvkn umrev

*从嘴唇上来

* INTO(wa_item_data-dlv_qty,wa_item_data-dlv_qty_imunit,wa_item_data-del_qty_flo,wa_item_data-dlv_qty_st_flo,

* wa_item_data-fact_unit_nom,wa_item_data-fact_unit_denom,wa_item_data-conv_fact)

从嘴唇选择单*到ls_lips

WHERE vbeln ='0180000600'

AND posnr ='000010'。

通话功能'MAP2E_LIPS_TO_BAPIIBDLVITEMCHG'

导出

LIPSVB = ls_lips

改变

BAPIIBDLVITEMCHG = wa_item_data

清除:wa_item_data。

wa_item_data-deliv_numb ='0180000600'。

wa_item_data-deliv_item ='000010'。

* wa_item_data-dlv_qty ='3000'。

* wa_item_data-dlv_qty_imunit ='3000'。

* wa_item_data-sales_unit ='KG'。

* wa_item_data-sales_unit_iso ='KG'。

* wa_item_data-base_uom ='KG'。

* wa_item_data-base_uom_iso ='KG'。

* wa_item_data-gross_wt ='3000'。

* wa_item_data-unit_of_wt ='KG'。

* wa_item_data-volume ='1500'。

* wa_item_data-volumeunit ='M3'。

APPEND wa_item_data到item_data。

清除:wa_item_control。

wa_item_control-deliv_numb ='0180000600'。

wa_item_control-deliv_item ='000010'。

wa_item_control-chg_delqty ='X'。

wa_item_control-VOLUME_FLG ='X'。

wa_item_control-NET_WT_FLG ='X'。

wa_item_control-GROSS_WT_FLG ='X'。

APPEND wa_item_control到item_control。

*************************************************** ***********************

通话功能'BAPI_INB_DELIVERY_CHANGE'

导出

header_data = wa_header_data

header_control = wa_header_control

交付= wa_delivery

表格

header_deadlines = lt_header_deadlines

item_data = item_data

item_control = item_control

return = it_return。

IF sy-subrc EQ 0。

调用功能'BAPI_TRANSACTION_COMMIT'。

ENDIF。


致谢


Jon

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

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


全部

我正在尝试使用bapi_inb_delivery_change BAPI修改内向交货的交货数量。

我到了某种程度,我不知道发生了什么,BAPI返回错误代码004,消息类型为VLBAPI,我想某些信息丢失了,但是我不知道...

我附上我的代码:

TYPES:bapidlvdeadln的lty_dead类型标准表。

数据:lt_header_deadlines类型为lty_dead,

wa_header_deadlines TYPE bapidlvdeadln,

wa_header_control TYPE bapiibdlvhdrctrlchg,

it_return bapiret2的类型标准表,

wa_delivery类型bapiibdlvhdrchg-deliv_numb,

wa_header_data TYPE bapiibdlvhdrchg。

数据:item_data类似于bapiibdlvitemchg OCCURS 0。

数据:wa_item_data类似于bapiibdlvitemchg。

数据:item_control类似于bapiibdlvitemctrlchg OCCURS 0。

数据:wa_item_control类似于bapiibdlvitemctrlchg。

写入:sy-datum。

*限时消费

wa_header_deadlines-deliv_numb ='0180000600'。

wa_header_deadlines-timetype ='WSHDRLFDAT'。 "交货日期

wa_header_deadlines-timestamp_utc =20120909000000。" YYYYMMDDHHMMSS

wa_header_deadlines-timezone ='ALA'。 "西欧

APPEND wa_header_deadlines至lt_header_deadlines。

wa_header_data-deliv_numb ='0180000600'。

wa_header_control-deliv_numb ='0180000600'。

wa_header_control-deliv_date_flg ='X'。

*************************************************** ************************

*数据:ls_item类型bapiibdlvitemchg。

数据:ls_lips类型为LIPSVB。

*选择单个lfimg lgmng lfimg_flo lgmng_flo umvkz umvkn umrev

*从嘴唇上来

* INTO(wa_item_data-dlv_qty,wa_item_data-dlv_qty_imunit,wa_item_data-del_qty_flo,wa_item_data-dlv_qty_st_flo,

* wa_item_data-fact_unit_nom,wa_item_data-fact_unit_denom,wa_item_data-conv_fact)

从嘴唇选择单*到ls_lips

WHERE vbeln ='0180000600'

AND posnr ='000010'。

通话功能'MAP2E_LIPS_TO_BAPIIBDLVITEMCHG'

导出

LIPSVB = ls_lips

改变

BAPIIBDLVITEMCHG = wa_item_data

清除:wa_item_data。

wa_item_data-deliv_numb ='0180000600'。

wa_item_data-deliv_item ='000010'。

* wa_item_data-dlv_qty ='3000'。

* wa_item_data-dlv_qty_imunit ='3000'。

* wa_item_data-sales_unit ='KG'。

* wa_item_data-sales_unit_iso ='KG'。

* wa_item_data-base_uom ='KG'。

* wa_item_data-base_uom_iso ='KG'。

* wa_item_data-gross_wt ='3000'。

* wa_item_data-unit_of_wt ='KG'。

* wa_item_data-volume ='1500'。

* wa_item_data-volumeunit ='M3'。

APPEND wa_item_data到item_data。

清除:wa_item_control。

wa_item_control-deliv_numb ='0180000600'。

wa_item_control-deliv_item ='000010'。

wa_item_control-chg_delqty ='X'。

wa_item_control-VOLUME_FLG ='X'。

wa_item_control-NET_WT_FLG ='X'。

wa_item_control-GROSS_WT_FLG ='X'。

APPEND wa_item_control到item_control。

*************************************************** ***********************

通话功能'BAPI_INB_DELIVERY_CHANGE'

导出

header_data = wa_header_data

header_control = wa_header_control

交付= wa_delivery

表格

header_deadlines = lt_header_deadlines

item_data = item_data

item_control = item_control

return = it_return。

IF sy-subrc EQ 0。

调用功能'BAPI_TRANSACTION_COMMIT'。

ENDIF。


致谢


Jon

付费偷看设置
发送
3条回答
宇峰Kouji
1楼-- · 2020-08-24 20:12

不是"应该",而是去查看消息并查看其内容(数量一致性检查)。

Rob

骆驼绵羊
2楼-- · 2020-08-24 20:03

我也遇到了同样的问题。

如果要修改数量,则表wa_item_data不够完整。

请遵循以下链接

马丁

哎,真难
3楼-- · 2020-08-24 20:04

解决了,我看到了消息及其含义,我必须填写此链接上指示的值。

一周热门 更多>