2020-08-16 07:22发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨朋友,
面临问题,使用BAPI-BAPI_SALESORDER_CHANGE创建销售订单计划项目时,成功创建了计划行,但检入VBAP-KWMENG时数量增加了一倍。 例如,将数量传递给BAPI-20表示在运行BAPI之后,VBAP-KWMENG字段中的数量变为40。
您好
您需要验证该POSNR的IT_VBEP内部表,
VBEP具有-vbeln,posnr,etenr作为密钥。
您 需要以下语句的另一个键
READ TABLE it_vbep WITH KEY INTO DATA(is_vbep)vbeln = WALT-BELNR posnr = WALT-posnr二进制搜索。
还要添加ETENR密钥
请在运行BAPI之前和之后将您的代码和计划行的屏幕截图发布。
请同时发布屏幕截图,以便更容易了解发生了什么。
我不是经验丰富的开发人员,因此 如果某些问题似乎过于基本,请耐心等待:)
您确定要更新正确的计划行吗? 在SCHEDULE_LINES中,您具有ITM_NUMBER和SCHED_LINE,但似乎没有指定SCHED_LINE,您只是为特定订单商品的计划行设置了一些数量。
似乎您正在创建新的计划。 行,而不是修改现有行,请检查VBEP中的结果并发布订单项的计划行选项卡的屏幕截图。
您确定将正确的值传递给了 BAPI? 如果我是您,我会在执行BAPI更改之前放置一个断点,并检查传递给FM的内容。
您是否尝试在SE37中使用BAPI_SALESORDER_CHANGE和BAPI_TRANSACTION_COMMIT运行测试序列以检查是否 正确传递参数? 这可以帮助您消除问题出在程序中的某些变量上的可能性。
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-MATNR。 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。
您好Balaji
如果仅更改schdeule行,则仅将日程表行传递给bapi。 不要传递订单行
order_item_in = it_item_in []" order_item_inx = it_item_inx []"注释一下
问候,
Venkat
发布查询并进行进一步更新时,请添加内容 在"评论"下而不是在"答案"下,因为您不是在回答查询,而是仅提供成员要求的其他信息。此外,当您在"评论"下添加文字时,该文字会暗示您所要联系的人
最多设置5个标签!
您好
您需要验证该POSNR的IT_VBEP内部表,
VBEP具有-vbeln,posnr,etenr作为密钥。
您 需要以下语句的另一个键
还要添加ETENR密钥
请在运行BAPI之前和之后将您的代码和计划行的屏幕截图发布。
请同时发布屏幕截图,以便更容易了解发生了什么。
我不是经验丰富的开发人员,因此 如果某些问题似乎过于基本,请耐心等待:)
您确定要更新正确的计划行吗? 在SCHEDULE_LINES中,您具有ITM_NUMBER和SCHED_LINE,但似乎没有指定SCHED_LINE,您只是为特定订单商品的计划行设置了一些数量。
似乎您正在创建新的计划。 行,而不是修改现有行,请检查VBEP中的结果并发布订单项的计划行选项卡的屏幕截图。
您确定将正确的值传递给了 BAPI? 如果我是您,我会在执行BAPI更改之前放置一个断点,并检查传递给FM的内容。
您是否尝试在SE37中使用BAPI_SALESORDER_CHANGE和BAPI_TRANSACTION_COMMIT运行测试序列以检查是否 正确传递参数? 这可以帮助您消除问题出在程序中的某些变量上的可能性。
Veselina Peykova 我的代码-
您好Balaji
如果仅更改schdeule行,则仅将日程表行传递给bapi。 不要传递订单行
问候,
Venkat
发布查询并进行进一步更新时,请添加内容 在"评论"下而不是在"答案"下,因为您不是在回答查询,而是仅提供成员要求的其他信息。此外,当您在"评论"下添加文字时,该文字会暗示您所要联系的人
一周热门 更多>