BAPI_SALESORDER_CHANGE数量和价格

2020-08-21 04:18发布

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

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


嗨!
我正在更新价格和数量,但它们没有更新我所期望的。 如果数量最初是10,而我想将其更新为5,我将得到15(它在我想要的数量上增加了数量),价格也相同。

我要填写以下字段:
请告诉我该怎么办?

参数:p_qty类型bapisditm-target_qty,
             p_price TYPE bapisditm-currency。


* Head
gs_order_headerx-updateflag ='U'。 *填写逻辑------------------------------------ gs_logic_switch-pricing ='B'。 gs_logic_switch-cond_handl ='X'。 *填写时间表-------------------------------- gt_schedules-req_qty = p_qty。 gt_schedules-itm_number ='10'。 附加gt_schedules。 清除gt_schedules。 *填充条件 gt_condition-itm_number ='10'。 gt_condition-currency ='TRY'。 gt_condition-cond_type ='ZTA'。 gt_condition-cond_value = p_price。 附加gt_condition。 清除gt_condition。 gt_conditionx-itm_number ='10'。 gt_conditionx-updateflag ='I'。 gt_conditionx-cond_value ='X'。 gt_conditionx-cond_type ='ZTA'。 gt_conditionx-currency ='X'。 附加gt_conditionx。 清除gt_conditionx。 *致电Bapi ---------------------------------------- 通话功能'BAPI_SALESORDER_CHANGE' 出口 salesdocument = p_vbeln order_header_in = gs_order_header order_header_inx = gs_order_headerx logic_switch = gs_logic_switch 桌子 返回= gt_return schedule_lines = gt_schedules CONDITIONS_IN = gt_condition CONDITIONS_INX = gt_conditionx 。 读取表gt_return with key type ='E'。 如果sy-subrc EQ 0。 通话功能" BAPI_TRANSACTION_ROLLBACK"。 讯息e003(zmessage)。 其他。 通话功能'BAPI_TRANSACTION_COMMIT' 出口 等待='X'。 使用p_vbeln的消息s002(zmessage)。 万一。

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

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


嗨!
我正在更新价格和数量,但它们没有更新我所期望的。 如果数量最初是10,而我想将其更新为5,我将得到15(它在我想要的数量上增加了数量),价格也相同。

我要填写以下字段:
请告诉我该怎么办?

参数:p_qty类型bapisditm-target_qty,
             p_price TYPE bapisditm-currency。


* Head
gs_order_headerx-updateflag ='U'。 *填写逻辑------------------------------------ gs_logic_switch-pricing ='B'。 gs_logic_switch-cond_handl ='X'。 *填写时间表-------------------------------- gt_schedules-req_qty = p_qty。 gt_schedules-itm_number ='10'。 附加gt_schedules。 清除gt_schedules。 *填充条件 gt_condition-itm_number ='10'。 gt_condition-currency ='TRY'。 gt_condition-cond_type ='ZTA'。 gt_condition-cond_value = p_price。 附加gt_condition。 清除gt_condition。 gt_conditionx-itm_number ='10'。 gt_conditionx-updateflag ='I'。 gt_conditionx-cond_value ='X'。 gt_conditionx-cond_type ='ZTA'。 gt_conditionx-currency ='X'。 附加gt_conditionx。 清除gt_conditionx。 *致电Bapi ---------------------------------------- 通话功能'BAPI_SALESORDER_CHANGE' 出口 salesdocument = p_vbeln order_header_in = gs_order_header order_header_inx = gs_order_headerx logic_switch = gs_logic_switch 桌子 返回= gt_return schedule_lines = gt_schedules CONDITIONS_IN = gt_condition CONDITIONS_INX = gt_conditionx 。 读取表gt_return with key type ='E'。 如果sy-subrc EQ 0。 通话功能" BAPI_TRANSACTION_ROLLBACK"。 讯息e003(zmessage)。 其他。 通话功能'BAPI_TRANSACTION_COMMIT' 出口 等待='X'。 使用p_vbeln的消息s002(zmessage)。 万一。
付费偷看设置
发送
8条回答
lukcy2020
1楼 · 2020-08-21 04:46.采纳回答

您好

这是您的完整代码吗?

我看到的是-您仅添加了计划行..您没有在修改现有行。

您需要获取项目行并也更新该数量。

或者您需要将值(p_qty)分配为公式(your_new_value-Existing_value)

  • 从销售订单中选择该行项目
  • 获取现有数量
  • 然后将新值分配为公式(p_qty-Existing_value)

请参考此链接-使用bapi更改销售订单的示例代码

http://codingthis.com/uncategorized/example-of-bapi_salesorder_change-in-sales-order-related-change/

野沐沐
2楼-- · 2020-08-21 04:36

我已解决但仍然是同样的问题。 谢谢您的纠正。
还有其他想法吗?

一周热门 更多>