BP新增页签增强

1

文档说明

8cdab5c02f20206260ffecdf699e4af9.png

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

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

2

代码实现

e28ac5d8e23ff2a5ca2e98bb35bfa5ac.png

2.1

增强表字段

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

de88363f6446110f1fab76f829a8a60a.png

32286c99df93be634c766b85873c04e1.png

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

9db78d614ddbe0525450dbb2ab62a275.png

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

KNA1:INCL_EEW_KNA1,INCL_EEW_KNA1_X
KNB1:INCL_EEW_KNB1,INCL_EEW_KNB1_X
KNVV:INCL_EEW_KNVV,INCL_EEW_KNVV_X
LFA1:INCL_EEW_LFA1,INCL_EEW_LFA1_X
LFB1:INCL_EEW_LFB1,INCL_EEW_LFB1_X
BUT000: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'." tabname
CONSTANTS : false TYPE boole-boole VALUE ' '.
DATA : gs_kna1 TYPE kna1.
"--------------------@斌将军--------------------

 创建页签屏幕9001

a6f47fd6f59353f8aa4b9c542591e812.png

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.
"--------------------@斌将军--------------------

创建结构

5d8ba4bc3e2c2fc4a69df3c94699f3b4.png

函数模块: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配置

730e74c24829098288bcbcd96c94f38c.png

3.1

注意事项

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

3.2

配置过程

BUS1

1204e304b5cadcff998154b6e4b2cf17.png

7928f01bed77f4088f471ff7cd88bd60.png

BUS23

031788d4b3821f0677f48289d8405ab7.png

BUS2

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

c1850b02cf7519b0b7de4a83fdf24a48.png

添加字段组结构

500eb72860c39eccacd455769444d77b.png

BUS3

创建视图,引入函数组

72a06af430fb32a30914a7b929339ea8.png

选择创建的字段组

02eebb2ffd12a27fdd809e873229a781.png

BUS4

新增部分

3f64299141703b25b252c346ece27f67.png

关联视图

0ceb3c782f33a1ef3ff8ddc16a6b946a.png

BUS5

新增屏幕

af777be88ee6974fa22708ff0f86fde4.png

关联部分,其中BUP009必输

701d8b0017f3dc580e790b300c5806fe.png

BUS6

创建屏幕顺序ZBPA01

04c877cf273a1aebfe5197ebec26a279.png

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

3d6818da9e1206b7aa74f1353445ea70.png

新增顺序种类

f31f168fbf0be18cb0e1c77920a7414b.png

添加屏幕顺序

07e96b53d3ed7194ec0ce1e1c5ca0457.png

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

961a0bb6b725555e3c5bddba70e5eb0b.png

BUSD

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

a2b63ce035af7bc1219029b2bd1e9b2b.png

 数据集

0a7bcbf685daa0b46e21a96693c9993e.png

调用应用程序

63d9475661f7b8e6407fcbb4f9edc0f8.png

屏幕顺序

d8305cccaea7a8d0c7c7f2065cc82de0.png

重复步骤执行FLCU01

BUS7

配置对应模块方法ISDAT

ec8abfc602dbaf0aac6b4f9bd411704b.png

配置对应模块方法DSAVB

b35d4d54904431ae2fc6c4a475190375.png

配置对应模块方法XCHNG

55746d54a927a27d420c7f0e1a573469.png

配置对应模块方法DLVE1

8664ccc49ad378a9dccd2a7cf434b61e.png

3.3

SPRO配置

路径如下

75cd1dce7b6806813b803a3d29b939dd.png

分别进入FLCU00和FLCU01中

72ba5c46ad7e7d302f8e135d7cbf959f.png

设置FLCU00中字段状态

16cbce7c859017af193417e8d8446daf.png

FLCU01中字段状态

4eed901e9ffb041c8afab94bbae82eaa.png

效果展示

fd2ad6506998f6bef19469044f8f3ea3.png

4

结语

9313ff21487c185f57f41f67468eae41.png

以上就是BP新增页签的介绍,希望对您有所帮助。

在总结过程中,该篇文档给予了极大的帮助和借鉴

https://zhuanlan.zhihu.com/p/621051472

—— 希望本篇文章对您有所帮助 ——

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值