销售订单BAPI增强

一、需求背景

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

二、增强实现

 BAPI中没有该字段,需要通过增强的方式导入。通过BAPI的文档,可以看出,抬头部分和行项目字段分别要增强的结构

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

BAPE_VBAK   

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

VBAKKOZ  

 VBAKKOZX的KOSTL的组件类型必须用CHAR1或CHAR01

 

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

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出口,本例不用增强

 

定期更文,欢迎关注

posted @ 2021-11-18 09:35  斌将军  阅读(978)  评论(0编辑  收藏  举报