BP 新增页签增强

作者:斌将军 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

# BP新增页签增强

原创 斌将军 [ 斌将军 ](javascript:void\(0\);)

__ _ _ _ _

**1**

**文档说明**

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

S4系统中,对供应商和客户的操作统一到BP中,当需要对主数据新增字段时,可以使用新增页签的办法,展示增强字段。

本文档以客户主数据增强为例,介绍BP新增页签增强。因为BP为供应商和客户共用,因此供应商的新增页签增强,也可以按照本文档实现,方法类似,注意区分。

**2**

**代码实现**

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

**2.1**

**增强表字段**

在KNA1表的INCL_EEW_KNA1结构中添加增强字段ZODRATE

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

在更新结构中也加入增强字段

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

BP各表新增字段的默认结构

• * * * * *

KNA1:INCL_EEW_KNA1,INCL_EEW_KNA1_XKNB1:INCL_EEW_KNB1,INCL_EEW_KNB1_XKNVV:INCL_EEW_KNVV,INCL_EEW_KNVV_XLFA1:INCL_EEW_LFA1,INCL_EEW_LFA1_XLFB1:INCL_EEW_LFB1,INCL_EEW_LFB1_XBUT000:INCL_EEW_BUT000-CL_EEW_BUT000,INCL_EEW_BUT000-CL_EEW_BUT000_X

**2.2**

**创建页签函数组**

创建函数组

函数组TOP

• * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION-POOL ZSD_09. "MESSAGE-ID ..

• INCLUDE LZSD_09D... " Local class definition

TABLES : kna1.CONSTANTS : table_name_kna1 TYPE fsbp_table_name VALUE 'KNA1'." tabnameCONSTANTS : false TYPE boole-boole VALUE ' '.DATA : gs_kna1 TYPE kna1."--------------------@斌将军--------------------

创建页签屏幕9001

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

9001

• * * * * * *

"--------------------@斌将军--------------------PROCESS BEFORE OUTPUT. MODULE status_9001.*PROCESS AFTER INPUT. MODULE user_command_9001."--------------------@斌将军--------------------

屏幕流

• * * * * * * *

"--------------------@斌将军--------------------MODULE status_9001 OUTPUT. CALL FUNCTION 'BUS_PBO'.ENDMODULE.MODULE user_command_9001 INPUT. CALL FUNCTION 'BUS_PAI'.ENDMODULE."--------------------@斌将军--------------------

函数模块:ZSD_09_EVENT_ISDAT

• * * * * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION zsd_09_event_isdat.*"-----------------------------------------------*"*"本地接口:*"----------------------------------------------- CALL FUNCTION 'CVIC_BUPA_KNA1_GET' IMPORTING e_kna1 = gs_kna1.

kna1-zodrate = gs_kna1-zodrate. "增强字段赋值

ENDFUNCTION."--------------------@斌将军--------------------

创建结构

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

函数模块:ZSD_09_EVENT_DSAVB

• * * * * * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION ZSD_09_EVENT_DSAVB.*"-----------------------------*"*"本地接口:*"-----------------------------

MOVE-CORRESPONDING gs_kna1 TO kna1. CALL FUNCTION 'CVIC_BUPA_KNA1_COLLECT' EXPORTING i_subname = 'ZSSDV002_KNA1' "附加结构 i_kna1 = kna1.

ENDFUNCTION."--------------------@斌将军--------------------

函数模块:ZSD_09_EVENT_XCHNG

• * * * * * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION zsd_09_event_xchng.*"-------------------------------*"*"本地接口:*" EXPORTING*" VALUE(E_XCHNG) TYPE BOOLE_D*"--------------------------------

IF gs_kna1-zodrate <> kna1-zodrate. e_xchng = 'X'. ENDIF. ENDFUNCTION."--------------------@斌将军--------------------

函数模块:ZSD_09_EVENT_DLVE1

• * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION zsd_09_event_dlve1.*"-------------------------------*"*"本地接口:*"-------------------------------

CLEAR gs_kna1-zodrate.

ENDFUNCTION."--------------------@斌将军--------------------

函数模块:ZSD_09_PAI

• * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION zsd_09_pai.*"-------------------------------*"*"本地接口:*"------------------------------- DATA: lt_kna1 TYPE TABLE OF kna1. FIELD-SYMBOLS: LIKE LINE OF lt_kna1.

CHECK cvi_bdt_adapter=>is_direct_input_active( ) = false. cvi_bdt_adapter=>get_current_bp_data( EXPORTING i_table_name = table_name_kna1 IMPORTING e_data_table = lt_kna1[] ). IF lt_kna1[] IS INITIAL. IF gs_kna1 IS NOT INITIAL. gs_kna1-kunnr = cvi_bdt_adapter=>get_current_customer( ). APPEND gs_kna1 TO lt_kna1. ENDIF. ELSE. READ TABLE lt_kna1 ASSIGNINGINDEX 1. -zodrate = gs_kna1-zodrate. ENDIF. cvi_bdt_adapter=>data_pai( i_table_name = table_name_kna1 i_data_new = lt_kna1[] i_validate = false ).
ENDFUNCTION.

"--------------------@斌将军--------------------

函数模块:ZSD_09_PBO

• * * * * * * * * * * * * * * * * * * *

"--------------------@斌将军--------------------FUNCTION ZSD_09_PBO.*"-----------------------------*"*"本地接口:*"-----------------------------DATA:lt_kna1 TYPE TABLE OF kna1. cvi_bdt_adapter=>data_pbo( EXPORTING i_table_name = table_name_kna1 IMPORTING e_data_table = lt_kna1[] ). IF lt_kna1[] IS INITIAL. CLEAR gs_kna1. ELSE. READ TABLE lt_kna1 INTO gs_kna1 INDEX 1. ENDIF. ENDFUNCTION."--------------------@斌将军--------------------

另外,可视情况而定,新增ZSD_09_DCHCK函数,增加逻辑判断,用于检查数据

**3**

**BP配置**

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

**3.1**

**注意事项**

新增页签涉及到配置,因此请在业务人员使用的配置client中进行,防止出现开发client和配置client中定制配置不一致,导致请求传输后覆盖业务人员配置的情况。

**3.2**

**配置过程**

** BUS1 **

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS23 **

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS2 **

新建字段组,保证编号没被使用

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

添加字段组结构

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS3 **

创建视图,引入函数组

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

选择创建的字段组

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS4 **

新增部分

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

关联视图

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS5 **

新增屏幕

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

关联部分,其中BUP009必输

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUS6 **

创建屏幕顺序ZBPA01

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

新增屏幕项目,其中项目编号,要保证没被占用

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

新增顺序种类

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

添加屏幕顺序

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

添加项目到标准屏幕顺序BUP001中

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

** BUSD **

对FLCU00和FLCU01两个视图分别执行数据集、调用应用程序、屏幕顺序三种配置

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

数据集

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

调用应用程序

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

屏幕顺序

BP 新增页签增强 - 封面图
BP 新增页签增强 - 封面图

重复步骤执行FLCU01

** BUS7 **

配置对应模块方法ISDAT

BP 新增页签增强 - 封面图.textContent = new Date().getFullYear();