首页 > 其他分享 >BP 增强

BP 增强

时间:2023-05-29 16:12:33浏览次数:33  
标签:增强 gs but000 EEW yd lt BP ls

一、事务说明:

BUS1: 应用程序创建--- 

BUS23: 数据集创建----

BUS2:字段组创建----

BUS3:视图创建-----

BUS4:部分创建----

BUS5:屏幕创建----

BUS6:屏幕顺序(建立屏幕顺序)

BUS7: 事件处理(初始化,数据读取,数据准备,数据保存等)

BUSD:业务伙伴视图(绑定业务伙伴和应用程序,数据集,屏幕顺序关系)

 

二、示例:

增强实现标准版BUT000 增强和自定义表增强(数据保存自定义表),标准程序调用自定义程序子屏幕实现屏幕增强,本文示例,以函数组屏幕为例:

函数组:

屏幕9000: 

 逻辑流:

 

PBO:

  

PAI:

 

集成配置:

BUS1:

 BUS23:

 

BUS2: 字段组

分配字段:

 

BUS3: 创建视图,分配字段组

 屏幕PBO/PAI:

 

函数:ZMM_BUT000_PBO -- 数据读取

FUNCTION zmm_but000_pbo.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------

DATA:
    lt_but000   TYPE TABLE OF but000.

* step 1: request data from xo for dynpro structure
  "if gs_but000 is initial.
    cvi_bdt_adapter=>data_pbo(
      EXPORTING
        i_table_name = table_name_but000
      IMPORTING
        e_data_table = lt_but000[]
    ).
  "endif.

  IF lt_but000[] IS INITIAL.
    CLEAR gs_but000.
  ELSE.
    READ TABLE lt_but000 INTO gs_but000 INDEX 1.
  ENDIF.
ENDFUNCTION.

函数模块:ZMM_BUT000_PAI  --- 数据写入

FUNCTION zmm_but000_pai.
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------

DATA:
      lt_but000         TYPE TABLE OF but000.
  FIELD-SYMBOLS:
    <but000>          LIKE LINE OF lt_but000.

  CHECK cvi_bdt_adapter=>is_direct_input_active( ) = false.
* step 1: update xo memory from dypro structure
  cvi_bdt_adapter=>get_current_bp_data(
    EXPORTING
      i_table_name = table_name_but000
    IMPORTING
      e_data_table = lt_but000[]
  ).

  IF lt_but000[] IS INITIAL.
    IF gs_but000 IS NOT INITIAL.
      gs_but000-partner = cvi_bdt_adapter=>get_current_bp( ).
      APPEND gs_but000 TO lt_but000.
    ENDIF.
  ELSE.
    READ TABLE lt_but000 ASSIGNING <but000> INDEX 1.
*    <but000>-zbpmid = gs_but000-zbpmid.
    ASSIGN gs_but000 TO <but000>.
  ENDIF.

  cvi_bdt_adapter=>data_pai(
    i_table_name = table_name_but000
    i_data_new   = lt_but000[]
    i_validate   = false
  ).

ENDFUNCTION.

 

分配字段组:

 

BUS4:创建部分,分配视图

 

 

BUS5: 创建屏幕,分配部分

 

 

屏幕顺序处理:

 出现多个页签

 

 

 

业务伙伴视图分配,选择的伙伴视图分配,本例子选择FLVN00

数据集分配:

 应用程序分配:

 

配置完成目前状态BP界面可以看到页签,但是无法保存数据,需要定义事件

 

 

 

三、定义事件(BUS7)

 

函数模块:ZMM_BUT000_EVENT_DSAVB:

FUNCTION zmm_but000_event_dsavb .
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------


*CALL FUNCTION 'BUP_BUPA_BUT000_GET'
* IMPORTING
*   e_but000            = gs_but000
*          .

  but000-ztext = gs_but000-ztext.

  CALL FUNCTION 'BUP_BUPA_BUT000_COLLECT'
    EXPORTING
      i_subname = 'ZSBUT00_CUST'
      i_but000  = but000.


ENDFUNCTION.

 

函数模块:ZMM_BUT000_EVENT_ISDAT

FUNCTION ZMM_BUT000_EVENT_ISDAT .
*"----------------------------------------------------------------------
*"*"本地接口:
*"----------------------------------------------------------------------


CALL FUNCTION 'BUP_BUPA_BUT000_GET'
 IMPORTING
   e_but000            = gs_but000
          .

but000-ztext = gs_but000-ztext.

ENDFUNCTION.

 

函数模块:ZMM_BUT000_EVENT_XCHNG

 FUNCTION zmm_but000_event_xchng.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  EXPORTING
*"     REFERENCE(E_XCHNG) TYPE  BOOLE_D
*"----------------------------------------------------------------------

IF gs_but000-ztext NE but000-ztext.
  e_xchng = abap_true.
ENDIF.

ENDFUNCTION.

四、 接着我们将添加BP的interfance效果图如下

 

五、在新界面(TCODE:BUS_HDRID)中增加一列

 

 同时在SM30(V_TBZJ1C)中去激活BP的对话框顺序

 

 

同时在SM30(V_TBZJ1)

 

 

六、 在业务伙伴视图 BUSD中维护:屏幕顺序 和 子标题ID

 

七、 由于是自定义字段,现在HANA更新自定义字段不会更新到KNA1表,所以需要写增强BADI

SE19 继承 PARTNER_UPDATE

 

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59   METHOD if_ex_partner_update~change_before_update.     DATA lt_but000_o TYPE TABLE OF but000 .   DATA lt_but000_n TYPE TABLE OF but000 .   DATA ls_but000 TYPE  but000 .     CALL FUNCTION 'BUPA_GENERAL_CALLBACK'    TABLES      et_but000_old = lt_but000_o      et_but000_new = lt_but000_n.     IF lt_but000_n IS NOT INITIAL.     LOOP AT lt_but000_n INTO ls_but000.     ENDLOOP.   ENDIF.     SELECT partner_guid, customer     INTO TABLE @DATA(lt_cvi_cust)     FROM cvi_cust_link     WHERE partner_guid = @ls_but000-partner_guid.     SELECT *     INTO TABLE @DATA(lt_kna1)     FROM kna1     FOR ALL ENTRIES IN @lt_cvi_cust     WHERE kunnr = @lt_cvi_cust-customer.     READ TABLE lt_kna1 ASSIGNING FIELD-SYMBOL(<fs_kna1>) INDEX 1.   IF sy-subrc = 0.     <fs_kna1>-yd_cusid        = ls_but000-yd_cusid       .     <fs_kna1>-yd_ussiccode    = ls_but000-yd_ussiccode   .     <fs_kna1>-yd_cusemployee  = ls_but000-yd_cusemployee .     <fs_kna1>-yd_cushierarchy = ls_but000-yd_cushierarchy.     <fs_kna1>-yd_anturnover   = ls_but000-yd_anturnover  .     <fs_kna1>-yd_ussicdesc    = ls_but000-yd_ussicdesc   .     <fs_kna1>-yd_cusnatduns   = ls_but000-yd_cusnatduns  .     <fs_kna1>-yd_cuswwduns    = ls_but000-yd_cuswwduns   .     <fs_kna1>-ygmaid          = ls_but000-ygmaid         .     <fs_kna1>-yename1         = ls_but000-yename1        .     <fs_kna1>-yename2         = ls_but000-yename2        .     <fs_kna1>-yeadstr2        = ls_but000-yeadstr2       .     <fs_kna1>-yeadstreet      = ls_but000-yeadstreet     .     <fs_kna1>-yeadhsnm        = ls_but000-yeadhsnm       .     <fs_kna1>-yeadpstcd       = ls_but000-yeadpstcd      .     <fs_kna1>-yeadcity        = ls_but000-yeadcity       .   *    MODIFY kna1 FROM <fs_kna1> .       CALL FUNCTION 'SD_CUSTOMER_MAINTAIN_ALL'      EXPORTING        i_kna1                   = <fs_kna1>      IMPORTING        e_kunnr                  = <fs_kna1>-kunnr *     TABLES *       T_UPD_TXT                = *     EXCEPTIONS               .     ENDIF.   ENDMETHOD.

通过上面的增强去更新KNA1表

对于配置已经结束,接下来记录下调用BAPI创建BP的时候如何处理

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 FROM FM_CHANGE_EEW USING US_ALV01 TYPE TY_ALV01.     DATA:LS_BUS000_EEW TYPE BUS000_EEW,                 LS_BUS000_EEW_X TYPE BUS000_EEW_X,               LT_RETURN TYPE BUS_BAPIRET2_T.           SELECT SINGLE PARTNER_GUID INTO LS_BUS000_EEW-PARTNR_GUID         FROM BUT000         WHERE PARTNER = US_ALV01-PARTNER.     CHECK SY-SUBRC = 0.       LS_BUS000_EEW-ZVBUND = US_ALV01-VBUND.     LS_BUS000_EEW_X-PARTNR_GUID =     LS_BUS000_EEW_X-ZTEST =  ‘X’.       CALL FUNCTION ‘BUPA_CENTRAL_CI_CHANGE’         EXPORTING         IS_BUS000_EEW = LS_BUS000_EEW         IS_BUS000_EEW_X = LS_BUS000_EEW_X         IMPORTING         ET_RETURN = LT_RETURN.

  

自定义字段在创建BP得同时能够更新KNA1表

 

 

SE18 CVI_CUSTOM_MAPPER

 

 

 

 

 

 

 

 

 

 

 

 

标签:增强,gs,but000,EEW,yd,lt,BP,ls
From: https://www.cnblogs.com/fSap/p/17440714.html

相关文章

  • ABAP 增强查找工具
    *&---------------------------------------------------------------------**&ReportZ_BARRY_FIND_EXIT_BADI*&---------------------------------------------------------------------**&*&---------------------------------------------------......
  • webpack的工作流程(附带部分源码分析)
    @目录webpack的工作流程webpack的准备阶段本阶段流程和钩子modules和chunks的生成阶段module解析解析流程chunks生成文件生成阶段模板hash更新模板渲染chunk生成文件总结webpack的工作流程说明工作流程之前,先抛出两个结论:webpack的核心功能,是抽离成很多个内部插件来实现......
  • webpack-loader-使用babel-loader转换处理高级的js语法
    webpack只能打包处理一部分高级的JavaScript语法。对于那些webpack无法处理的高级js语法,需要借助于babel-loader进行打包处理。例如webpack无法处理下面的JavaScript代码://定义装饰器函数functioninfo(target){target.info='Personinfo.'}//定义一个普通的类@info......
  • BBP002面包板电源模块如何使用(A版)
    今天我们介绍一款比较好用的面包板电源模块BBP002,该款面包板电源模块具有升压稳压功能,只需一根type-c线就可以解决面包板不同电压输出的问题。该模块的型号为BBP002,某宝搜一下BBP002能找到。模块采用一输入三输出的模式,一输入指根据使用功率不同采用不同的输入方式,对于小功率......
  • Webpack and Babel — What are they, and how to use them with React
    摘抄自:https://medium.com/@agzuniverse/webpack-and-babel-what-are-they-and-how-to-use-them-with-react-5807afc82ca8WebpackandBabel—Toolswecan’tcodewithoutWe’llbeconfiguringbothoftheseforourReactproject,sofirsthere’saquickexplanation......
  • 音频处理数据增强实验与代码分享
    对音频(audio)信号做数据增强(DataAugmentation)可以有多重方式,这里通过sox库、soundfile库、librosa库进行实验,希望可以帮助到有需要的人。可用于深度学习音频处理实验的数据预处理。音高变换增强(PitchShiftAugmentation)音高变化增强,是围绕频率轴的±5%范围内的随机滚动。环绕式......
  • webpack相关
    npm是第三方包管理器,npminit之后会生成一个package.json文件,里面展示了项目中依赖的第三方包信息。下载完node之后,npmjiu自动下载好了。npmipackageName-S(-S是--save的缩写,依赖会保存在package.json文件的dependencies里面,意思是这个包在生产环境中需要,用户会用到这个......
  • 字节码增强版的反射, jdk是操作读取我们的字节码文件
    javasissit生成类库 类池子创建,类池制造类,然后制造方法,将方法加到类里面,然后生成class, 再到jvm内存中获取哦  反射获取所有的方法      ......
  • webpack报错处理:The extension in the request is mandatory for it to be fully spe
    完整的报错提示如下:BREAKINGCHANGE:Therequest'./module2'failedtoresolveonlybecauseitwasresolvedasfullyspecified(probablybecausetheoriginisstrictEcmaScriptModule,e.g.amodulewithjavascriptmimetype,a'*.mjs'file,or......
  • 安全可信 | 增强级认定!天翼云政务云通过云计算服务安全评估
       近日,天翼云与中国电信安徽分公司联合承建的安徽省省级政务云平台顺利通过云计算服务安全评估(增强级)认证。这标志着天翼云的政务云安全水平和成熟度已经通过国家权威机构认证,能够满足政府政务应用上云的高安全要求。 《云计算服务安全评估办法》是由国家互联网信息办公室......