如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段

简介: 假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE: 首先从数据库表VBKD里查找到SERV_DATE修改之前的值为2020年1月1日 使用如下代码,将这个字段的值改成2020年1月2日。

假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE:

首先从数据库表VBKD里查找到SERV_DATE修改之前的值为2020年1月1日

使用如下代码,将这个字段的值改成2020年1月2日。


REPORT zchange_so1.

DATA: lv_num        TYPE bapivbeln-vbeln,
      ls_doc_header TYPE bapisdhd1,
      lt_vbap       TYPE STANDARD  TABLE OF vbap.

lv_num = '0000000268'.

CALL FUNCTION 'SD_VBAP_READ_WITH_VBELN'
  EXPORTING
    i_vbeln          = lv_num
  TABLES
    et_vbap          = lt_vbap
  EXCEPTIONS
    record_not_found = 1
    OTHERS           = 2.

BREAK-POINT.

DATA: i_order_header_in  LIKE bapisdhd1 .
DATA: i_order_header_inx LIKE bapisdhd1x,
      lt_bapiret2        LIKE bapiret2   OCCURS 0 WITH HEADER LINE.

i_order_header_inx-updateflag = 'U'.
i_order_header_in-serv_date = '20200102' .
i_order_header_inx-serv_date = 'X'.


CALL FUNCTION 'SD_SALESDOCUMENT_CHANGE'
  EXPORTING
    salesdocument    = lv_num
    order_header_in  = i_order_header_in
    order_header_inx = i_order_header_inx
  TABLES
    return           = lt_bapiret2.

clear: lt_bapiret2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
  IMPORTING
     RETURN = lt_bapiret2.

BREAK-POINT.

执行之后,从输出参数lt_bapiret2里查看到这个Sales Order已经成功被更新了。

从后台数据库表VBKD里查看到这个字段的值也已经成功更新了:

要获取更多Jerry的原创文章,请关注公众号"汪子熙"。

相关文章
|
9月前
|
监控 安全
关于在执行 SAP ERP MM 模块 Post Goods Issue 时修改 Material Cost 的讨论
关于在执行 SAP ERP MM 模块 Post Goods Issue 时修改 Material Cost 的讨论
SAP QM QS41 试图维护Catalog为3的Code Group, 报错-You need to maintain catalog 3 (Usage Decisions) in Customi
SAP QM QS41 试图维护Catalog为3的Code Group, 报错-You need to maintain catalog 3 (Usage Decisions) in Customi
SAP QM QS41 试图维护Catalog为3的Code Group, 报错-You need to maintain catalog 3 (Usage Decisions) in Customi
SAP QM执行事务代码QE23为检验批录入结果,报错-No selected set exists for the inspection point 200 or plant NMDC-
SAP QM执行事务代码QE23为检验批录入结果,报错-No selected set exists for the inspection point 200 or plant NMDC-
SAP QM执行事务代码QE23为检验批录入结果,报错-No selected set exists for the inspection point 200 or plant NMDC-
|
数据库
LeetCode(数据库)- Drop Type 1 Orders for Customers With Type 0 Orders
LeetCode(数据库)- Drop Type 1 Orders for Customers With Type 0 Orders
93 0
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP MM ML81N为采购订单创建服务接收单,报错- No matching PO items selected -
SAP RETAIL WA03 基于分配表创建PO报错 - No work list could be selected –
SAP RETAIL WA03 基于分配表创建PO报错 - No work list could be selected –
SAP RETAIL WA03 基于分配表创建PO报错 - No work list could be selected –
SAP WM Movement Type 里的‘Ref.Stor.Type Search’字段用法初探
SAP WM Movement Type 里的‘Ref.Stor.Type Search’字段用法初探
SAP WM Movement Type 里的‘Ref.Stor.Type Search’字段用法初探
SAP SD 基础知识之Cash Sales和Rush Order的区别
SAP SD 基础知识之Cash Sales和Rush Order的区别
SAP SD 基础知识之Cash Sales和Rush Order的区别
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
如何为SAP Cloud for Customer Lead页面配置自定义的Source字段
如何为SAP Cloud for Customer Lead页面配置自定义的Source字段
如何为SAP Cloud for Customer Lead页面配置自定义的Source字段