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

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

S/4HANA

250 篇文章8 订阅

订阅专栏

假设我想修改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里查看到这个字段的值也已经成功更新了:

相关文章
|
SQL Java 程序员
记录:1221 - Incorrect usage of UNION and ORDER BY...【亲测有效】
记录:1221 - Incorrect usage of UNION and ORDER BY...【亲测有效】
369 0
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 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 RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
SAP SD 基础知识之Cash Sales和Rush Order的区别
SAP SD 基础知识之Cash Sales和Rush Order的区别
SAP SD 基础知识之Cash Sales和Rush Order的区别
如何利用BAPI SD_SALESDOCUMENT_CHANGE修改Sales Order的字段
假设我想修改S/4HANA里Sales Order抬头的Service Date字段SERV_DATE: 首先从数据库表VBKD里查找到SERV_DATE修改之前的值为2020年1月1日
使用函数BAPISDORDER_GETDETAILEDLIST读取S/4HANA中Sales Order行项目数据
事务码MM03查看物料主数据,如下图所示的行项目数据,包含物料ID,描述信息,数量,单价等等:
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
SAP Cloud for Customer Sales Order Requested Date的业务含义和实现
|
API 数据库 索引
SAP CRM索引数据库表CRMD_ORDER_INDEX的更新原理
SAP CRM索引数据库表CRMD_ORDER_INDEX的更新原理
110 0
SAP CRM索引数据库表CRMD_ORDER_INDEX的更新原理