7250573 what the new enhancement framework is for

Upload: arkadev-chakrabarti

Post on 01-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    1/15

    What the New Enhancement Framework Is For –

    Its Basic Structure and Elements For Beginners

    Thomas Weiss 

    Business Card

    Company: S! "!osted on #an$ %&' %(() (%:(% * in B!'

    Beginner

    Introduction

    Has it ever occurred to you while looking at some complex technology, that you are lost

    as to what the technology is actually for? Have you ever had doubts as to whether the

    complex technology was created exclusively for the entertainment of the developers? I

    confess that this thought crossed my mind when I first faced the huge complexity of thenew Enhancement Framework.

    ut after a second look I found that nothing could have been further from the truth. !he

    "complexity" of this framework has a clear function, and the basic structure that serves to

    accomplish this function is actually pretty simple. In this weblog I want to explain what itis exactly that the new Enhancement Framework, packaged with #et$eaver %.&, provides

    the software developer. !he Enhancement Framework is about resolving an old conflict

    in software development' standard software solutions versus proprietary solutions. $hatthe Enhancement Framework does is to combine the advantages of both the standard

    (easily maintainable) with the proprietary solutions (more flexible) while avoiding the

    drawbacks of both standard software (lack of flexibility) and customi*ed software(upgrade issues).

    +t the core of this framework is a simple structure consisting of a hook or an

    enhancement option and an implementation element you can attach there. ou may

    already understand that enhancements are preferable to modifications. !o take fulladvantage of what enhancements over modifications offer, you will need the new

    Enhancement Framework. Its purpose' to offer you the ability to enhance the -+

    standard software and to organi*e these enhancement options and their respectiveimplementation elements as effectively as possible. /on0t expect to learn about all the

    technical details of the Enhancement Framework in this particular weblog, though. !his

    weblog will solely cover the basics of the framework. 1nce you have a clearer concept of

    the basics, you will see that the complex structures of the whole framework serve a lot of

    different functions and still not feel lost within these structures.

    What S! +oes to Bridge the "ap ,etween Standard So-tware and

    !roprietary Solutions

    -o much for the aim of this weblog2 now let0s start to understand the basic gap between

    standard software and customi*ed software and how the Enhancement Framework brings

    you the best of both worlds.

    -ubscribe

    rint

    ermalink 

    https://weblogs.sdn.sap.com/pub/u/266https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/weblogs/topic/29https://weblogs.sdn.sap.com/weblogs/topic/46http://weblogs.sdn.sap.com/pub/q/weblogs_rss?x-ver=1.0&x-mimetype=application%2Frdf%2Bxmlhttps://weblogs.sdn.sap.com/pub/wlg/3056https://weblogs.sdn.sap.com/pub/wlg/3056http://weblogs.sdn.sap.com/pub/q/weblogs_rss?x-ver=1.0&x-mimetype=application%2Frdf%2Bxmlhttps://weblogs.sdn.sap.com/pub/u/266https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/weblogs/topic/29https://weblogs.sdn.sap.com/weblogs/topic/46http://weblogs.sdn.sap.com/pub/q/weblogs_rss?x-ver=1.0&x-mimetype=application%2Frdf%2Bxmlhttps://weblogs.sdn.sap.com/pub/wlg/3056

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    2/15

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    3/15

    The .imits o- *odi-ications and Why Enhancements re *ore !ower-ul

    6odification has limits almost inherent in this very concept. ou face these limits when

    upgrading or transporting a modified ob7ect. Imagine you have a modified program in

    your system and your system is upgraded. $hat happens to your modifications? First,

    your modifications are gone, although you can re3insert them using the 6odification+ssistant. ut reinsertion means a lot of work for you. ou have to go through your

    whole program and look at all the modifications to see where they fit in the upgradedversion of your program. !aking into account the fact that you often have many modified

     programs spread over one or many solutions, modifications generate a lot of work after

    an upgrade. Further limitations surface when you consider different modifications of the

    same development ob7ect from parallel or subse4uent development systems. +ll of these problems stem from the fact that modifications are technically a part of the source code

    unit they modify. +nd one source unit exists only once in a system. +fter an upgrade, a

    modified development ob7ect is first substituted by the unmodified one that comes withthe upgrade. In order to keep the modifications, you have to reinstate them in the new

    ob7ect.

    !hough the transaction -+5 offers you good support for this task, it is not at all a trivial

    task. If relevant parts of a development ob7ect have changed, you need expert knowledgeof this ob7ect to reinsert the modifications. !he administrator who runs the upgrade is

    most probably not able to merge the modifications properly. Instead of using your

    systems at once after the upgrade you need some developers with expert knowledge ofthe relevant solutions to attend to the modifications. -o you pay for the high flexibility

    modifications offer with a lot of additional work during upgrades.

    $hen you have many modifications you surely want to organi*e them in some way.

    5nfortunately, as they technically belong to the program they enhance, there is no possibility to group modifications. ou cannot even organi*e them at all in a structure of

    their own. 8hanges to a development ob7ect should, of course, be documented.

    6odifications can have no documentation attached to them in the system. It is also not possible to track who modified which parts of a development ob7ect.

    1bviously all the limits of modifications originate from the fact that they are part of the

    ob7ect they modify. In contrast to modifications, enhancements are ob7ects in their own

    right. If you enhance -+ code these enhancements are in your namespace, not in that of-+. !hey are your ob7ects.

    6ost of the advantages the Enhancement Framework offers are based on the fact thatenhancements are ob7ects in their own right. ou can organi*e enhancements in a

    structure of their own and document them in the system. ou can transport them in unitsof their own. +s far as upgrades and transports are concerned, you can transport

    enhancements from different systems into one system and keep all these enhancements,

     plus the ones that exist in your target system. #o enhancement gets lost.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    4/15

    !his is the basic conceptual advantage that enhancements have over modifications. +

    ma7or advantage of the new Enhancement Framework is that it unifies all the new

    enhancement technologies in one framework. It is this framework that reali*es theadvantages that are possible because enhancements are ob7ects in their own right' !he

    enhancement framework enables management of different types of enhancements from

    different systems. !hey survive an upgrade without a lot of additional work. ou canorgani*e them in a structure of their own and document all the enhancements in the

    system.

    Why and When to Change S! So-tware

    +t this point you might ask yourself' $hy should I change an -+ software solution at

    all? ou should change a -+ solution only if you have come to the conclusion that noneof the possibilities of customi*ing meet your specific re4uirements. First try out

    everything that is possible by means of customi*ing. If you are still in need of

    ad7ustments of the standard you should consider enhancements as the means of your

    choice. +s enhancements are ob7ects of their own they are 4uite robust in an upgrade.!hey will cause you far less work than modifications. In addition to this advantage

    concerning the work necessary for an upgrade, the new Enhancement Framework offers

    you a variety of useful features to manage, organi*e and document your enhancements.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    5/15

    an enhancement to a hook, at runtime the enhancement is processed when the control

    flow reaches the hook. In other words' +t runtime the enhancement behaves as if it

     belonged to the development ob7ect it enhances, while the enhancement as a transportob7ect does not belong to the enhanced ob7ect.

    +s this probably sounds a bit abstract let us have a look at a specific enhancement, thesource code plug3in. +t predefined positions in the source code (for example, in a report)

    you have a particular type of enhancement option, that is an enhancement point. +t these points you can insert an enhancement that is called a source code plug3in. !he respective

     plug3in is processed after the enhancement point is reached by the control flow. !hat is,

    the source code plug3in behaves at runtime as if it were part of the report while in fact itcan belong to another package.

    !his is what a source3code plug in looks like'

    Ignore the details of the source code enhancement for the moment. !his particularexample only serves to illustrate the point of how enhancements function' ou have the

    anchor point or enhancement option, which is an enhancement point in our particular

    example. +t this enhancement point which is in the orange marked line the enhancement

    element = (in grey colour) is inserted. !he spot flights>display>b and the enhancementflights>display are units you should not be interested in at this point.

    .

    In some way you can compare the enhancement technology with a closet system whereyou can insert different elements at particular positions. ou need not drill the wood inthe side walls, but nevertheless you can attach boards and other elements where there are

    already hooks or holders at important positions. !he boards and other elements such as

    drawer or 8/3holder look as if they were integral parts of the closet system while in factthey are only attached to the walls by hooks or holders.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    6/15

    !he holder in our analogy corresponds to the enhancement options. !he different

    elements you can attach there such as boards, drawers, 8/3 elements etc. behave like the

    enhancements. ou can not attach a board to the closet system everywhere you like, butrather only where a holder is prepared. In the same way you cannot enhance a

    development ob7ect anywhere, but only at predefined positions, which are called

    enhancement options.

    -o irrespective of all further refinements, superimposed containers and their respectiveconnections, the basic structure of how an enhancement functions is as simple as could

     be'

    • 1n the one hand, there are hooks or enhancement options where you can insert

    enhancement elements. Further on I will also speak of the definition side of the

    Enhancement Framework because it is there that the enhancement options are

    defined.

    • 1n the other hand, there are the enhancement implementation elements that you

    can attach to a hook or an enhancement option.

    The Comple2ity o- the Enhancement Framework 

    /espite this simple structure the Enhancement Framework as a whole is pretty complex'

    ou have different kind of enhancement technologies. +t different kind of enhancement

    options you can attach different types of enhancement elements. !he enhancement

    options are divided in two different classes' Implicit enhancement options which are provided by the framework and exist without any particular preparation by a developer.

    Explicit enhancement options have to be inserted explicitly in the source code. !hese

    explicit enhancement options must belong to a container.

    1n the implementation side all implementation elements, regardless of whether they

    enhance implicit or explicit enhancement options, belong to other containers. !he

    containers on the definition side and those on the implementation side are assigned to

    each other with a particular cardinality.

    +ll these different units form a complex structure despite the fact, that the basic concept

    of a single enhancement is so simple, as I have 7ust shown you. ut this structure is

    indispensable to accomplish all the aims the framework is made for. !he Enhancement

    Framework is made to organi*e and manage a huge mass of enhancement options andimplementations of different types. +nd it is mainly this aspect that re4uires the high

    complexity.

    ou might ask yourself why you need the containers if you 7ust want to create a singleenhancement option and implement it. !he answer is that you hardly ever need only one

    enhancement. +s good software is usually divided in components, one change (for

    example an additional field in a structure) necessitates a lot of other changes. +nd in real

    life programming it is not 7ust you, but your team and many other teams that create andso have to mangage their enhancements options and implementations.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    7/15

    !he framework not only offers you that structure to organi*e and manage your

    enhancement options and enhancements, but the compliance with the framework is

    enforced by the tools. y adhering to the rules you can be sure that you can fully takeadvantage of the framework and you will never face a situation in which you have lots of

    unorgani*ed enhancements in your system.

    In the next weblog I will explain to you something further about the Enhancement

    Framework. I want to show you in which way it is complex and why this level ofcomplexity is needed. !he aim of this weblog simply was to tell you what the

    Enhancement Framework is about, why it was developed and what the basic structure of

    an enhancement is like.

    Thomas Weiss works in the SAP NetWeaver Product Management and has built elearningtutorials on ABAP topics.

    +dd to' del.icio.us  /igg  @eddit 

    Comment on this we,log

    -howing messages = through A of A.

    !itles 1nly  6ain !opics  1ldest First 

    • great architecture;&&:3&=3;: &:'9B'=; ertrand C+F15DE@E usiness 8ard @eply

    I0m pretty impress by that new "enhancement framework" and as facing customerspecifics needs every day It0s clearly the -+ respons I was waiting.

    !oday there is ; sides concerning the implementation of specifics needs (to extend

    -+ standards).

    !he "holy" side "copy the standard" (ma7ority of people I think) and the other side"modify the standard".

    @eal implementation show most of the time that evolution, maintenability andupgrade are less "costly" with modifying the standard than copying it. However

    modifying a standard make it loose it0s -+ support (or an urban legend said so

    ...).

    https://weblogs.sdn.sap.com/pub/u/266http://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttp://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttp://digg.com/submit?phase=2&url=https://weblogs.sdn.sap.com/pub/wlg/3056http://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttp://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_disc/2410&x-lr2=wlg/3056&page=https://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-showcontent=off#threadhttps://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-maxdepth=0#threadhttps://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-order=date#threadhttps://weblogs.sdn.sap.com/cs/user/view/cs_msg/7885https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=WYjD3jUSjP8%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/7885&x-lr2=wlg/3056https://weblogs.sdn.sap.com/pub/u/266http://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttp://digg.com/submit?phase=2&url=https://weblogs.sdn.sap.com/pub/wlg/3056http://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3056&title=What%20the%20New%20Enhancement%20Framework%20Is%20For%20-%20Its%20Basic%20Structure%20and%20Elements%20For%20Beginnershttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_disc/2410&x-lr2=wlg/3056&page=https://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-showcontent=off#threadhttps://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-maxdepth=0#threadhttps://weblogs.sdn.sap.com/pub/wlg/3056?page=last&x-order=date#threadhttps://weblogs.sdn.sap.com/cs/user/view/cs_msg/7885https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=WYjD3jUSjP8%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/7885&x-lr2=wlg/3056

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    8/15

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    9/15

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    10/15

    !he Enhancement Framework imposes a useful, complex structure of containers on the

    different enhancement options and enhancement implementation elements. In this weblog

    I want to introduce the different enhancement options and explain both the structure ofthe containers and motivation behind it. It is important to understand right from the

     beginning why this structure is very useful for you. 1nly if you understand the benefits of

    this structure, you will be able to take maximal advantage of it. 6oreover the complianceto this structure is enforced by the tools. !his means as soon as you build your first

    enhancement you have to find your way within this structure. -o I have decided to

    explain another piece of theory before really showing you how to build a new +dI inthe next weblog.

    The +i--erent Enhancement Technologies

    Cet me start by giving a sketch of the different enhancement technologies that are part of

    the Enhancement Framework. !here are different kinds of technologies that provide

    enhancement options'

    • 8lass Enhancements' ou can add additional methods, optional parameters, pre3

    and post3methods to existing methods.

    • Function group enhancements' ou can enhance the interface of a function

    module by additional parameters using function group enhancements.

    • -ource code enhancements' Enhancement points are positions in the source code

    where you can attach source code plug3ins that enhance the source code at these positions. $hile a source code plug3in at an enhancement point is processed in

    addition to the original code, the code of a so3called Enhancement -ection is

    substituted by the respective source code plug3in.

    • !he +dI is an ob7ect3oriented enhancement option. !he +dI defines an

    interface that can be implemented by classes that are transport ob7ects of theirown. !he new +dI is fully integrated into the Enhancement Framework. $ithinthe Enhancement Framework a +dI is an enhancement option or an anchor point

    for an ob7ect plug3in.

    Implicit and E2plicit Enhancements

    !here is one ma7or distinction among the enhancement technologies' !he implicit

    enhancement options are provided by the framework without any effort on the

    developer0s part. !his means' !he enhancement definition is for free, while, of course, theimplementation has to be inserted. Implicit enhancements comprise class enhancements,

    function group enhancements and predefined enhancement points at particular predefined positions such as the end of a report, a function module, an include or a structure and the

     beginning and the end of a method. If there is a need for more or other enhancementoptions than those provided by the framework, you can use so3called explicit

    enhancement options' !hey have to be inserted explicitly by the developer. !here are two

    types of explicit enhancement options' +dIs and explicit enhancement points orsections, where you can insert source code plug3ins.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    11/15

    The Nature o- +e7eloping Enhancements or Why to "roup Enhancements

    Enhancements are sociable beings. !hey hardly ever come alone, in particular when you

    write your programs according to sound modulari*ation principles. Imagine, you

    introduce an additional variable as an enhancement. robably you will work with this

    variable, transport it to all the different procedures that need the new variable for doingtheir 7ob and maybe show its value in the user interface. !hat means, you have to enhance

    the interface of all these procedures, call these procedures using the new variable and alsohave to enhance the respective interface. !hese considerations corroborate the fact that

    you will probably have a large number of enhancements once you start using this

    technology.

    If you have a large number of things, you need some organi*ing. !his is a reason why it isa good idea to group enhancements.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    12/15

    -o it seems we need at least two containers' one for the enhancement options on the

    definition side and another one for the implementation side. $ithin the Enhancement

    Framework there are even more container types.

    !here are simple containers that can only contain enhancement options or enhancement

    implementation elements respectively. +s a conse4uence these containers cannot benested. 6oreover, one basic container can only hold elements of one type' !hat is a

    simple container cannot, for example, hold +dIs and enhancement points at the sametime. !o make room for a nested structure there are composite containers that can hold

     basic containers and other composite containers. !hese composite containers can contain

     basic containers of different enhancement types. +s these composite containers can benested, you can build a structure that really fulfills the needs of your pro7ect. + simple

    structure looks like this'

    It is important that you have a clear idea of this structure in mind because everything you

    do when creating an enhancement happens within this structure. !his is due to the factthat the compliance to the rules is enforced by the framework. !his means for you' Every

    enhancement element has to be part of an enhancement spot. $hen you create an

    enhancement from scratch you always have first to create the respective containers. ou

    can compare this to creating a method. !here is no such thing as a method on its own. +method is always part of a class. In the same way there is no stand3alone +dI. Every

    +dI is part of an enhancement spot and it is the spot that is the transport ob7ect. It is

     because of this fact that you cannot build a new +dI and 7ust forget about the

    framework in the way you might be accustomed to from the classic +dI. It is also not possible to build the +dI first and take care later of how it fits in the structure of

    containers. $hen building a +dI you have to put the +dI within the relevant structurefrom the very beginning. ut it is only mandatory to have simple containers. 8omposite

    enhancements spots and composite enhancement implementations are not enforced by the

    tools.

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    13/15

    I mention this explicitly because, at first, it might be a bit astonishing for you when you

    want to create an enhancement point and you first have to create an enhancement spot.

    $hen this happens, you should keep in mind two things'

    • Experience has shown that structure has to be imposed by tools. 1therwise when

     programming it is tempting to forget about the structure because it is time savingin the beginning. ou see the real costs later when you get in trouble trying tokeep an overview of all the different enhancements.

    • ou should be aware of the fact that you have only the containers after having

    created an enhancement spot and a simple enhancement implementation. ou

    have prepared the ground for building enhancements, but that is all. /on0t deludeyourself into thinking that you have already an enhancement option or the

    respective implementation.

    reviously, in my last weblog you have learnt the basic concept of an enhancement. In

    this weblog you have seen the different kinds of enhancement options, you understand

    the difference between implicit and explicit enhancement option and you know thestructure where the enhancements fit in. In other words, now you have everything you

    need at hand to build a +dI. +nd this is what I will show you in the next weblog. $e

    will build a +dI and see all the pieces of theory at work that you have becomeac4uainted with by now.

    Thomas Weiss works in the SAP NetWeaver Product Management and has built elearning

    tutorials on ABAP topics.

    +dd to' del.icio.us  /igg  @eddit 

    Comment on this we,log

    -howing messages = through : of :.

    !itles 1nly  6ain !opics  1ldest First 

    • explicit enhancements

    ;&&:3&%3=N &;'&='BB Dlen -palding usiness 8ard @eply

    hi thomas, thanks for the blog first.

    my 4uestion regarding explicit enhancements is this.

    if the developer has to manually program the explicit enhancement (hook), and itis re4uired in amoungst standard -+ code, would that be considered a

    modification?

    https://weblogs.sdn.sap.com/pub/u/266http://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttp://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttp://digg.com/submit?phase=2&url=https://weblogs.sdn.sap.com/pub/wlg/3336http://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttp://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_disc/2690&x-lr2=wlg/3336&page=https://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-showcontent=off#threadhttps://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-maxdepth=0#threadhttps://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-order=date#threadhttps://weblogs.sdn.sap.com/cs/user/view/cs_msg/11920https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=5wG9cR9g%2BgsYELzwcrlbOQ%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/11920&x-lr2=wlg/3336https://weblogs.sdn.sap.com/pub/u/266http://del.icio.us/post?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttp://digg.com/submit?phase=2&url=https://weblogs.sdn.sap.com/pub/wlg/3336http://reddit.com/submit?url=https://weblogs.sdn.sap.com/pub/wlg/3336&title=The%20new%20Enhancement%20Framework%20Part%202%20-%20What%20Else%20You%20Need%20to%20Know%20Before%20Building%20an%20Enhancementhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_disc/2690&x-lr2=wlg/3336&page=https://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-showcontent=off#threadhttps://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-maxdepth=0#threadhttps://weblogs.sdn.sap.com/pub/wlg/3336?page=last&x-order=date#threadhttps://weblogs.sdn.sap.com/cs/user/view/cs_msg/11920https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=5wG9cR9g%2BgsYELzwcrlbOQ%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/11920&x-lr2=wlg/3336

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    14/15

    thanks

    glen

    o explicit enhancements

    ;&&:3&%3=N ;B'9&'9A !homas $eiss usiness 8ard @eply

    1f course, if a customer inserts an enhancement point in -+ code, it is amodification. In principle, customers should preferably implement

    enhancement points. ut in some situations creating an enhancement point

    as a modifcation will help to keep the modification small. !he idea behindthis is' Instead of writing a large modification, add an enhancement point

    (of course, as modification) and put all the rest of the code you need to add

    in the source code plug3in that implements the respective enhancement point. !his way, all the code in the source code plug3in profits from the

    features of the Enhancement Framework.

    •  part LLL please

    ;&&:3&B3;= &B'=K'&: ertrand C+F15DE@E usiness 8ard @eply

    @eally nice serie !homas.

    8oncerning the different enhancement technologies I0m a bit surprised by theclass one.

    !he sentence "add additional methods, optional parameters, pre and post methods

    to existing methods" does not sound ob7ect oriented. $ill the enhancement inherit

    the standard ob7ect or will it use a kind of "append" ?

    o  part LLL please

    ;&&:3&B3;; &:'=K'=B !homas $eiss usiness 8ard @eply

    From a technical point of view, pre3 and post methods of classes are

    implemented as methods of a local class. -o they are perfectly ob7ect

    oriented. It was a deliberate decision, that class enhancements should notuse inheritance. !he enhancement implementation elements do not inherit

    the standard ob7ect, but are compiled at runtime together with the class

    that is enhanced in one compilation unit. 5p to now pre3 and post methods

    have only access to the public attributes of the class, but this will bechanged in the next release.

    • Enhancement vs. -witching Framework

    ;&&:3&B3=: &=';:'&% -ergio Ferrari usiness 8ard @eply

    !hanks a lot !homas for this great series.

    I0m looking forward to the next weblog and I want to ask you if you can explain

    https://weblogs.sdn.sap.com/cs/user/view/cs_msg/11945https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/11945&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/11945&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9007https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=DxD6DlqltOUoMmFymQSs2g%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9007&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9038https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9038&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9038&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/8936https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=gpLTsZHMilgDbwR8d43B3Q%3D%3Dhttps://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=gpLTsZHMilgDbwR8d43B3Q%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/8936&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/8936&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/11945https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/11945&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9007https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=DxD6DlqltOUoMmFymQSs2g%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9007&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9038https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9038&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/8936https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=gpLTsZHMilgDbwR8d43B3Q%3D%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/8936&x-lr2=wlg/3336

  • 8/9/2019 7250573 What the New Enhancement Framework is For

    15/15

    the relation between Enhancement and -witching Framework (related to Industry

    -olution).

    o Enhancement vs. -witching Framework

    ;&&:3&B3;; &:'=:';N !homas $eiss usiness 8ard @eply

    !here is a close relationship between the Enhancement O and the -witchFramework. +ll enhancement implementation elements are switchable.

    !he switch is assigned to the package of the respective simple

    enhancement implementation, that is the container the enhancementimplementation element belongs to. -o it is important to pack

    enhancement implementation elements that should be switched differently

    in separate enhancement implementations.

    ut you can also switch many other ob7ects' +ppends, -I3 and 8I3includes

    for //I8 structures, fixed value appends to domains, secondary indexes,

    append search helps are switched by package assignment. -creen elementsand flow logic in the screen, menu entries and functions, I6D nodes and

    customi*ing can be assigned directly to a switch.

    https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9037https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9037&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9037&x-lr2=wlg/3336https://weblogs.sdn.sap.com/cs/user/view/cs_msg/9037https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.sdn.businesscard.SDNBusinessCard?u=cjBuThA7qc4%3Dhttps://weblogs.sdn.sap.com/cs/user/create/cs_msg?x-lr=cs_msg/9037&x-lr2=wlg/3336