BAPI_SALESORDER_CHANGE 修改销售订单

1.修改定价条件时 LOGIC_SWITCH-cond_handl = 'X'. "更改,否则插入(即使 condx-updateflag = 'U'也不行

2.修改数量是改计划行,不是item的数量

3.即便只修改价格,lt_cond的单位还是要传,否则价格会增加10倍

4.可以修改va32 计划协议

5.修改项目时,要传 order_item_inx-updateflag     =  'U'. 否则报一些奇怪的错,如:项目类别XX不存在等等

 

demo

修改销售订单

  DATA:

   IS_ORDER_HEADER_INX TYPE BAPISDH1X,

   IT_RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE,

   IT_SCHEDULE_LINES TYPE TABLE OF BAPISCHDL WITH HEADER LINE,

   IT_SCHEDULE_LINESX TYPE TABLE OF BAPISCHDLX WITH HEADER LINE.

 

  IS_ORDER_HEADER_INX-UPDATEFLAG = 'U'.         "UPDATE

 

  LOOP AT IT_CHANGES.

    IT_SCHEDULE_LINES-ITM_NUMBER = IT_CHANGES-POSNR.

    IT_SCHEDULE_LINES-SCHED_LINE = 1.

    IT_SCHEDULE_LINES-SCHED_TYPE = IT_CHANGES-ETTYP.

    APPEND IT_SCHEDULE_LINES.

 

    IT_SCHEDULE_LINESX-UPDATEFLAG = 'U'.

    IT_SCHEDULE_LINESX-ITM_NUMBER = IT_CHANGES-POSNR.

    IT_SCHEDULE_LINESX-SCHED_LINE = 1.

    IT_SCHEDULE_LINESX-SCHED_TYPE = 'X'.

    APPEND IT_SCHEDULE_LINESX.

 

    AT END OF VBELN.

 

      CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

        EXPORTING

          SALESDOCUMENT    = IT_CHANGES-VBELN

          ORDER_HEADER_INX = IS_ORDER_HEADER_INX

        TABLES

          RETURN           = IT_RETURN

          SCHEDULE_LINES   = IT_SCHEDULE_LINES

          SCHEDULE_LINESX  = IT_SCHEDULE_LINESX.

 

      CALL FUNCTION 'OXT_MESSAGE_TO_POPUP'

        EXPORTING

          IT_MESSAGE = IT_RETURN[].

 

    ENDAT.

  ENDLOOP.

 

  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

    EXPORTING

      WAIT = 'X'.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值