zoukankan      html  css  js  c++  java
  • 第四代增强 增强基本概念

    The basic concepts in the Enhancement Framework are:

    增强框架中的基本概念是:

    增强选项:被增强对象中的位置,您可以在其中进行增强。 增强选项可以是显式和隐式的。

    增强点:作为显式增强选项的容器。增强点分为2种类型:Object Plug-in (BAdI),只能作为BADI的容器;Source Code Plug-In,只能作为源代码增强的容器

    增强实现元素:这些元素包含实际增强功能,例如,要添加的源代码。

    增强实现:作为隐式和显式增强选项的增强实现元素的容器。

    增强选项分为两类:
    隐式增强选项由增强框架提供,不需要开发人员做任何特定准备,它们不必属于容器(增强点)。ENHANCEMENT-SECTION;ENHANCEMENT-Point.
    显式增强选项必须被事先被开发人员插入到源代码中。 必须通过增强点让其他的开发人员知道。  NEW BADI.

    可用通过如下方式定义显式增强:

    在ABAP程序中明确标记源代码点或节。 为了增强,可以通过源代码插件增强或替换它们。
    在ABAP程序中包含业务加载项(BAdI)。 然后,这些程序通过具有预定义接口的对象插件得到增强。
    显式增强选项由增强点管理,并通过增强实现进行增强。

    ENHANCEMENT-POINT ze_point1 SPOTS ze_point_test2 .
    *$*$-Start: ZE_POINT1---------------------------------------------------------------------------$*$*
    ENHANCEMENT 1  ze_co_aaa.    "active version
    *
    ENDENHANCEMENT.
    *$*$-End:   ZE_POINT1---------------------------------------------------------------------------$*$*
    
    ENHANCEMENT-SECTION ze_section SPOTS ze_point_test2 .
      gv_i = gv_i + 1.
    
    END-ENHANCEMENT-SECTION.
    
      GET BADI gr_newbad.
      CALL BADI gr_newbadi->showtimes
        IMPORTING
          string = DATA(gv_string)
        RECEIVING
          time   = DATA(gv_i).

    框架提供了隐式增强选项。它们总是存在,不需要增强点。它们也通过增强实现得到增强。隐式增强选项包括:

    • Specific options in ABAP programs - such as the end of the program - which can be enhanced by source code plug-ins. There are implicit enhancement points at the beginning and the end of each form, function module, method (of a global or local class) and the end of a report or include and each local structure. As for methods of local classes, you can enhance parameters of all types. There are also implicit options to add something in a defining section of a global class or to add the whole section (for example, a protected section) if it does not exist.
    • Parameter interfaces of function modules which can be enhanced with new optional parameters.
    • New methods, attributes, and events, which can be added to global classes. Each method of a global class offers pre-, post- and overwrite exits and options to add new optional parameters.
    • Enhancement of a Web Dynpro object you have a lot of different implicit enhancement options offered by the framework. There are enhancement options for:
      • UI elements
      • Pre- and post-methods of Web Dynpro methods
      • New methods
      • New navigation paths
      • New actions
      • New attributes
      • New nodes that hold the data for the UI elements.

    下图显示了增强点和增强实现的概述。 左侧部分显示了增强点的相关术语以及它们之间的关系。 它仅适用于显式增强选项。 隐式增强选项不需要增强点。
    右侧部分显示了增强实现的相关术语以及它们之间的关系。 这适用于显式和隐式增强选项的增强实现。
    在实现方面,所有实现元素,无论它们是否增强隐式或显式增强选项都属于其他容器。

    定义侧的容器和实现侧的容器以特定的基数分配给彼此。

    分组增强功能
    所有显式增强选项和所有增强实现元素都必须是容器的一部分。这是由框架的工具强制执行的。增强选项及其实现不得归为一类,因为它们属于不同的开发阶段。
    在增强框架中,有定义端增强选项的容器和实现端实现的容器:
    简单的容器
    这些只能包含增强选项或增强实现元素。这些容器不能嵌套。一个基本容器只能容纳一种类型的元素。例如,一个简单的容器不能同时保存BAdI和增强选项。
    复合容器
    为了为嵌套结构腾出空间,有复合容器可以容纳基本容器和其他复合容器。这些复合容器可以包含用于不同增强类型的基本容器。由于这些复合容器可以嵌套,因此您可以构建一个真正满足项目需求的结构。一个简单的结构如下所示:

    从头开始创建增强功能时,始终必须先创建相应的容器。 这类似于创建方法。 方法始终是类的一部分。 同样,没有独立的BAdI。 每个BAdI都是增强点的一部分,它是作为传输对象的点。 这就是为什么你不能建立一个新的BAdI,只是忘记了你可能习惯使用经典BAdI的方式。 也不可能首先构建BAdI并在以后处理它如何适应容器的结构。 构建BAdI时,必须从一开始就将BAdI放在相关结构中。 但只有简单的容器才是强制性的。 工具不强制执行复合增强点和复合增强实现。

  • 相关阅读:
    React生命周期, 兄弟组件之间通信
    React组件式编程Demo-用户的增删改查
    React之this.refs, 实现数据双向绑定
    CCF CSP 201812-4 数据中心
    CCF CSP 201812-4 数据中心
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    PAT 顶级 1020 Delete At Most Two Characters (35 分)
    Codeforces 1245C Constanze's Machine
    Codeforces 1245C Constanze's Machine
    CCF CSP 201712-4 行车路线
  • 原文地址:https://www.cnblogs.com/weixiaopeng/p/enhanc_concept.html
Copyright © 2011-2022 走看看