销售订单 BAPI 增强

作者:斌将军 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, SD, 开发, 销售分销
销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

**1、需求背景**

在销售订单批导时,需要调用BAPI:BAPI_SALESORDER_CREATEFROMDAT2维护成本中心字段

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

**2、增强实现**

BAPI中没有该字段,需要通过增强的方式导入。

通过BAPI的文档,可以看出,抬头部分和行项目字段分别要增强的结构如下

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

因为是抬头部分,所以要增强抬头结构,因为VBAK表本身有KOSTL字段,因此不用修改底表 BAPE_VBAK

BAPE_VBAKX表只用维护KOSTL的更新标识即可

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

修改VBAKKOZ结构

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

更新结构VBAKKOZX的KOSTL的组件类型必须用CHAR1

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

因此在源码中,此处通过组件类型去获取增强字段

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

BAPI传入参数

"--------------------@斌将军-------------------- DATA:LS_ZVBAK TYPE BAPE_VBAK, LS_ZVBAKX TYPE BAPE_VBAKX. LS_EXTEN TYPE BAPIPAREX, "扩展字段 LT_EXTEN TYPE STANDARD TABLE OF BAPIPAREX. "扩展字段

CLEAR :LS_ZVBAK,LS_ZVBAKX. LS_ZVBAK-VBELN = LS_IN-VBELN. LS_ZVBAK-KOSTL = LS_IN-ZRSV04. LS_ZVBAKX-VBELN = LS_IN-VBELN. LS_ZVBAKX-KOSTL = 'X'.

CLEAR: LS_EXTEN. LS_EXTEN-STRUCTURE = 'BAPE_VBAK'. LS_EXTEN-VALUEPART1 = LS_ZVBAK. APPEND LS_EXTEN TO LT_EXTEN.

CLEAR: LS_EXTEN. LS_EXTEN-STRUCTURE = 'BAPE_VBAKX'. LS_EXTEN-VALUEPART1 = LS_ZVBAKX. APPEND LS_EXTEN TO LT_EXTEN. "--------------------@斌将军--------------------

在出口处加入如下代码,将传入的参数进行传递。

根据测试情况,考虑是否需要增强USEREXIT_COBL_RECEIVE_VBAK出口,本例不用增强

销售订单 BAPI 增强 - 封面图
销售订单 BAPI 增强 - 封面图

以上就是销售订单BAPI调用时,增强字段的方法

斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「销售订单BAPI增强.md」整理生成,仅用于内部技术分享与学习交流。