BP 供应商主数据新增页签增强

作者:斌将军 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, MM, 开发, 物料管理
BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图

**1**

**文档说明**

BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图

** 之前发表过BP客户主数据的页签增强,本篇文档介绍BP供应商主数据公司视图下新增页签增强 **

BP客户主数据新增页签增强

斌将军,公众号:斌将军 [ BP新增页签增强

](https://mp.weixin.qq.com/s?__biz=Mzg5OTg3ODg2MQ==&mid=2247485893&idx=1&sn=30eb855b5b7678bd040807219bfb1503&chksm=c04dd367f73a5a71c2d7a210c21c46222cba2fbc62b39a346d07269cd81610ebcc88fd597d27&scene=21#wechat_redirect)

与上篇文章相比,因为在公司视图下新增,代码有些区别,本篇文章也只介绍代码方面的实现,配置方面仍可以参考《 BP客户主数据新增页签增强

》中的配置,只要注意区分客户和供应商即可,本文章不在赘述。

除此之外,在屏幕中画输入框时,放弃使用全局结构GS_LFB1-ZXX定义,而是参照了表LFB1-ZXX进行定义,将表字段对应的域值也显示为搜索帮助,更加方便使用。

**2**

**实现过程**

BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图

增强字段

BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图

ZMM19_PBO

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

DATA:lt_lfb1  TYPE TABLE OF lfb1,       lv_lifnr TYPE lfb1-lifnr,       lv_bukrs TYPE lfb1-bukrs. lv_lifnr = cvi_bdt_adapter=>get_current_vendor( ).  lv_bukrs = cvi_bdt_adapter=>get_current_company_code( ).  IF lv_bukrs IS INITIAL.    CLEAR:lfb1.  ELSE.    cvi_bdt_adapter=>data_pbo(    EXPORTING      i_table_name = table_name_lfb1    IMPORTING      e_data_table = lt_lfb1[]  ). READ TABLE lt_lfb1 INTO lfb1 WITH KEY lifnr = lv_lifnr bukrs = lv_bukrs.    IF sy-subrc EQ 0.      gs_lfb1 = lfb1.    ELSE.      CLEAR:gs_lfb1,lfb1.    ENDIF. ENDIF.ENDFUNCTION."--------------------@斌将军--------------------

ZMM19_PAI

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

DATA: lt_lfb1  TYPE TABLE OF lfb1,        lv_lifnr TYPE lfb1-lifnr,        lv_bukrs TYPE lfb1-bukrs.

FIELD-SYMBOLS:  LIKE LINE OF lt_lfb1.

CHECK cvi_bdt_adapter=>is_direct_input_active( ) = false.  CHECK cvi_bdt_adapter=>get_current_company_code( ) IS NOT INITIAL.

"公司代码  lv_lifnr = cvi_bdt_adapter=>get_current_vendor( ).  lv_bukrs = cvi_bdt_adapter=>get_current_company_code( ). cvi_bdt_adapter=>get_current_bp_data(    EXPORTING      i_table_name = table_name_lfb1    IMPORTING      e_data_table = lt_lfb1[]  ).  IF lt_lfb1[] IS INITIAL.    IF lfb1 IS NOT INITIAL.      lfb1-lifnr = lv_lifnr.      lfb1-bukrs = lv_bukrs.      IF lfb1-lifnr IS NOT INITIAL AND lfb1-bukrs IS NOT INITIAL.        APPEND lfb1 TO lt_lfb1.      ENDIF.    ENDIF.  ELSE.    READ TABLE lt_lfb1 ASSIGNING  WITH KEY lifnr = lv_lifnr bukrs = lv_bukrs.    IF sy-subrc EQ 0.      <lfb1>-zgmp = lfb1-zgmp.    ENDIF. ENDIF. cvi_bdt_adapter=>data_pai(    i_table_name = table_name_lfb1    i_data_new   = lt_lfb1[]    i_validate   = false  ). ENDFUNCTION."--------------------@斌将军--------------------

ZMM19_EVENT_DSAVB

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

DATA:lt_lfb1      TYPE TABLE OF lfb1,       ls_lfb1      TYPE lfb1,       ls_lfb1_temp TYPE lfb1,       lv_lifnr     TYPE lfb1-lifnr,       lv_bukrs     TYPE lfb1-bukrs. lv_bukrs = cvi_bdt_adapter=>get_current_company_code( ).  ls_lfb1 = lfb1.  CHECK ls_lfb1 IS NOT INITIAL. MOVE-CORRESPONDING gs_lfb1 TO ls_lfb1_temp.  ls_lfb1_temp-bukrs = lv_bukrs.  ls_lfb1_temp-zgmp = lfb1-zgmp."  APPEND ls_lfb1_temp TO lt_lfb1. CALL FUNCTION 'CVIV_BUPA_LFB1_COLLECT'    EXPORTING      i_subname = 'ZMMS_LFB1' "附加结构    TABLES      t_lfb1    = lt_lfb1. lv_lifnr = cvi_bdt_adapter=>get_current_vendor( ).  READ TABLE lt_lfb1 INTO ls_lfb1 WITH KEY lifnr = lv_lifnr bukrs = lv_bukrs.  IF sy-subrc EQ 0.    lfb1 = ls_lfb1.    gs_lfb1 = lfb1.  ENDIF. ENDFUNCTION."--------------------@斌将军--------------------

ZMM19_EVENT_ISDAT

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

CALL FUNCTION 'CVIV_BUPA_LFB1_GET' IMPORTING e_lfb1 = gs_lfb1.

lfb1-zgmp = gs_lfb1-zgmp. "增强字段赋值

ENDFUNCTION.

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

ZMM19_EVENT_XCHNG

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

IF gs_lfb1-zgmp <> lfb1-zgmp. e_xchng = 'X'. ENDIF. ENDFUNCTION."--------------------@斌将军--------------------

ZMM19_EVENT_DLVE1

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

CLEAR:gs_lfb1,lfb1.

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

创建屏幕

此处参照表LFB1画输入框,可以自动将字段的域值作为搜索帮助

BP 供应商主数据新增页签增强 - 封面图
BP 供应商主数据新增页签增强 - 封面图

屏幕流

"--------------------@斌将军--------------------*&--------------------------------------------*& Module STATUS_9001 OUTPUT*&--------------------------------------------*&*&--------------------------------------------MODULE status_9001 OUTPUT. CALL FUNCTION 'BUS_PBO'.

DATA:lv_bukrs TYPE lfb1-bukrs. lv_bukrs = cvi_bdt_adapter=>get_current_company_code( ). LOOP AT SCREEN. IF screen-name+0(4) = 'LFB1'. IF lv_bukrs = '3060'." screen-active = '1'. ELSE. screen-active = '0'. ENDIF. MODIFY SCREEN. ENDIF. ENDLOOP.ENDMODULE.*&--------------------------------------------*& Module USER_COMMAND_9001 INPUT*&--------------------------------------------* text*---------------------------------------------MODULE user_command_9001 INPUT. CALL FUNCTION 'BUS_PAI'.ENDMODULE.

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

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

斌将军

关于作者:斌将军

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

来源说明:本文内容由「BP供应商主数据新增页签增强.md」整理生成,仅用于内部技术分享与学习交流。