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:40

您好

可能的UPDATEFLAGS:

  • U =变化
  • D =删除
  • 我=添加

尝试'U',希望它能正常工作。

渐行渐远_HoldOn
3楼-- · 2020-08-21 04:47

检查此行

 gt_conditionx-updateflag ='I'。  ?? 应该是U 
lukcy2020
4楼-- · 2020-08-21 04:55

谢谢您的建议,我已更改为

 gt_schedulesx-updateflag ='U'。
 gt_schedulesx-itm_number ='10'。
 gt_schedulesx-req_qty ='X'。
 附加gt_schedulesx。 清除gt_schedulesx。

*,但仍插入旧值
SAP浪
5楼-- · 2020-08-21 05:00

尝试在gt_schedules中传递计划行号(SCHED_LINE)。

太Q了
6楼-- · 2020-08-21 04:50

请阅读FM文档以获取更多信息,如下所示。

  • 仅指定应更改的字段
  • 通过在复选框中输入X选择这些字段
  • 在UPDATEFLAG字段中输入U
  • 更改数据时始终指定关键字段,包括复选框中
  • 在计划行数据中维护数量和日期

您可以更改

  • 标题,
  • 项目,
  • 计划行
  • 配置数据。

例如时间表行日期

将" U"移动到gs_order_headerx-updateflag。
     移动:posnr到gs_schedules-itm_number,
            到gs_schedulesX-itm_number,

            到gs_schedules-sched_line,
            到gs_schedulesX-sched_line,

            edatu TO gs_schedules-req_date,""日期更改
           'U'到gs_schedulesx-updateflag,
           'X'至gs_schedulesx-req_date。
     将gs_schedules附加到gt_schedules。
     将gs_schedulesx附加到gT_schedulesx。
 
Climb_Ma
7楼-- · 2020-08-21 04:47

谢谢您的链接,先生
我用该解决方案解决了定价问题,仍然是数量问题。 但我对此很满意

一周热门 更多>