创建销售订单时-计划行创建VBAP-KWMENG数量字段变双

2020-08-16 07:22发布

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

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


嗨朋友,

面临问题,使用BAPI-BAPI_SALESORDER_CHANGE创建销售订单计划项目时,成功创建了计划行,但检入VBAP-KWMENG时数量增加了一倍。 例如,将数量传递给BAPI-20表示在运行BAPI之后,VBAP-KWMENG字段中的数量变为40。

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

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


嗨朋友,

面临问题,使用BAPI-BAPI_SALESORDER_CHANGE创建销售订单计划项目时,成功创建了计划行,但检入VBAP-KWMENG时数量增加了一倍。 例如,将数量传递给BAPI-20表示在运行BAPI之后,VBAP-KWMENG字段中的数量变为40。

付费偷看设置
发送
13条回答
骆驼绵羊
1楼-- · 2020-08-16 07:48

您好

您需要验证该POSNR的IT_VBEP内部表,

VBEP具有-vbeln,posnr,etenr作为密钥。

您 需要以下语句的另一个键

 READ TABLE it_vbep WITH KEY INTO DATA(is_vbep)vbeln = WALT-BELNR
                                                  posnr = WALT-posnr二进制搜索。

还要添加ETENR密钥

callcenter油条
2楼-- · 2020-08-16 08:12

请在运行BAPI之前和之后将您的代码和计划行的屏幕截图发布。

hengyuye
3楼-- · 2020-08-16 08:01

请同时发布屏幕截图,以便更容易了解发生了什么。

我不是经验丰富的开发人员,因此 如果某些问题似乎过于基本,请耐心等待:)

您确定要更新正确的计划行吗? 在SCHEDULE_LINES中,您具有ITM_NUMBER和SCHED_LINE,但似乎没有指定SCHED_LINE,您只是为特定订单商品的计划行设置了一些数量。

似乎您正在创建新的计划。 行,而不是修改现有行,请检查VBEP中的结果并发布订单项的计划行选项卡的屏幕截图。

您确定将正确的值传递给了 BAPI? 如果我是您,我会在执行BAPI更改之前放置一个断点,并检查传递给FM的内容。

您是否尝试在SE37中使用BAPI_SALESORDER_CHANGE和BAPI_TRANSACTION_COMMIT运行测试序列以检查是否 正确传递参数? 这可以帮助您消除问题出在程序中的某些变量上的可能性。

追夢秋陽
4楼-- · 2020-08-16 08:01

Veselina Peykova 我的代码-

 is_shd_line-itm_number = walt-posnr。  " 000001
  is_shd_line-sched_line = walt-posnr + 2(4)。
  将walt-confdt + 6(4)walt-confdt + 3(2)walt-confdt + 0(2)连接到sch_date中。
  is_shd_line-req_date = sch_date。  "sy-datum。2020年6月18日
 * is_shd_line-DATE_TYPE ='1'。


   使用键vbeln = WALT-BELNR将表it_vbep读入数据(is_vbep)
                                                  posnr = WALT-posnr二进制搜索。
   如果sy-subrc EQ 0。
   is_shd_line-sched_type = is_vbep-ettyp。
   is_shd_line-req_qty = WALT-MENGE-IS_VBEP-DLVQTY_BU。
   is_shd_line-dlv_date = IS_VBEP-REQ_DLVDATE。  " sy-datum。
   万一。


   is_shd_line-tp_date = sy数据。
   is_shd_line-ms_date = sy-datum。
   is_shd_line-load_date = sy-datum。
   is_shd_line-gi_date = sy-datum。


   APPEND is_shd_line至it_shd_line。
   清除:is_shd_line。


  is_shd_linex-itm_number = WALT-posnr。
  is_shd_linex-updateflag ='U'。
  is_shd_linex-req_qty ='X'。
 * is_shd_linex-MS_DATE ='X'。
  APPEND is_shd_linex到it_shd_linex。
  清除:is_shd_linex。


   is_item_in-itm_number = WALT-posnr。
 * IS_ITEM_IN-MATERIAL = WALT-MAT​​NR。
   is_item_in-material_long = WALT-matnr。  " s4hana转换-百万
   APPEND is_item_in至it_item_in。
   清除:is_item_in。


   is_item_inx-itm_number = WALT-posnr。
   is_item_inx-updateflag ='X'。
 * IS_ITEM_INX-MATERIAL ='X'。
   is_item_inx-material_long ='X'。  " s4hana转换-百万
   APPEND is_item_inx至it_item_inx。
   清除:is_item_inx。


   lw_shd_ord = WALT-BELNR。
   is_headx-updateflag ='U'。
   is_switch-scheduling ='X'。


    刷新IT_RETURN []。
    通话功能'BAPI_SALESORDER_CHANGE'
    出口
    salesdocument = lw_shd_ord
    order_header_inx = is_headx
    逻辑开关= is_switch
    桌子
    返回= it_return []
    order_item_in = it_item_in []
    order_item_inx = it_item_inx []
    schedule_lines = it_shd_line
    schedule_linesx = it_shd_linex。


 
Doze时光
5楼-- · 2020-08-16 07:50

您好Balaji

如果仅更改schdeule行,则仅将日程表行传递给bapi。 不要传递订单行

 order_item_in = it_item_in []"
    order_item_inx = it_item_inx []"注释一下

问候,

Venkat

huskylover
6楼-- · 2020-08-16 08:10

发布查询并进行进一步更新时,请添加内容 在"评论"下而不是在"答案"下,因为您不是在回答查询,而是仅提供成员要求的其他信息。此外,当您在"评论"下添加文字时,该文字会暗示您所要联系的人

一周热门 更多>