Enhancement Point - Enhancement Spot - Differences

Hi all,
I am new at ABAP Development. I am wondering the differences between enc. point and enc. spot.
Is there any good source to learn about enhancements ?
Regards,
Ozgur

Hi,
Enhancement spot is general name and it conceptually contain enhancement points too. More important point may be focusing on explicit and implicit enhancement points. For all new enhancement concepts below document is very usefull. You'll also find many other document if you search "enhancement framework" keyword in SDN.
http://www.adfahrer.com/workplace/Sem/2006-11-28-ADSIG-SBN-WalldorfABAP/MikaelAcker-EFW-4-nordic.pdf
Regards,
Edited by: Gungor Ozcelebi on Jul 20, 2009 9:56 PM

Similar Messages

  • ENHANCEMENT-POINT / Enhancement in ECC 6.0

    Hi all!
    I have been searching for an answer.  I have yet to find anything.
    Anyway here's my question:
    I am using an SAP provided enhancement point.  (I think)
    It looks like this in the code:
    ENHANCEMENT-POINT me_print_po_01 SPOTS es_saplmedruck.
    $$-Start: ME_PRINT_PO_01----
    $$
    ENHANCEMENT 16  ISAUTO_SCH_EMM_SAPLMEDRUCK.
    I double click on the 16 and entered my code.  Then I looked at the properties and found the switch AM_SCH_MM was off.
    So I created a business function via sfw2 included the switch AM_SCH_MM and activated the business function.  Since I've been reading the forum.  I activated my new business function in sfw5 as well.
    I put my program into debug.  It is still skipping over the enhancement.   I'm sure I've missed a step somewhere as we are just implmenting from 4.5C.
    Does anyone know why this isn't working?  Or simply how to activate an SAP supplied enhancement.   I've been reading on creating a custom enhacement and using a BADI.   Do I have to do the same thing for the SAP supplied one?
    Thank you,
    Michelle

    Sure.
    I went into the SAP code.  Then I used the menu path:
    Function Module -> Enhanceme source code
    -OR-
    Program -> Enhance.
    I determined where in the source code that I wanted my code to be at then I right clicked.
    Enhancement Implementation -> Create
    Entered the name and text, package.
    Selected the implementation.
    Entered my code.
    Activated the enhancement or Ctrl-F3.

  • How debug an enhancement-point / enhancement section

    Hi Experts,
    how can I debug a standard enhancemnt-point / enhancement-section?
    how can I debug a custom  enhancemnt-point / enhancement-section?
    I put break, I wrote statement "break-point" but nothing.........
    Any suggestions??
    Thanks in advance,
    Frank

    Frank,
    See the following blogs,
    /people/thomas.weiss/blog/2006/01/24/what-the-new-enhancement-framework-is-for-150-its-basic-structure-and-elements-for-beginners
    /people/thomas.weiss/blog/2006/03/15/the-new-enhancement-framework-part-2--what-else-you-need-to-know-before-building-an-enhancement
    /people/thomas.weiss/blog/2006/04/03/how-to-define-a-new-badi-within-the-enhancement-framework--part-3-of-the-series
    /people/thomas.weiss/blog/2006/04/18/how-to-implement-a-badi-and-how-to-use-a-filter--part-4-of-the-series-on-the-new-enhancement-framework
    /people/thomas.weiss/blog/2006/05/03/source-code-enhancements--part-5-of-the-series-on-the-new-enhancement-framework
    Regards,
    Satish

  • Enhancement Point Creation in Internal table

    Hi,
    I want to create a Enhancement Point in Internal table declared in Customize Program.
    This is more related to clarification of concept related to Enhancment Point.
    But when i am putting the cursor inside the internal table and right click and Enhancment -> create ,it is giving me a message
    that "Position of enhancement section/point statement is not allowed".
    This means that we can't create Enhancement point or Enhancement Section inside the Internal table and solution is we can use
    only Implicit Enhancement point.
    But the doubt is that i had seen SAP programs where they have created the Enhancement point in the internal table declarations.
    How that is possible then?
    Please provide your helpful answers to get me more clarification on Enhancement Point/
    Thanks,
    Manish

    Hi Afzal,
    Below is the code from standard program :-
    DATA: BEGIN OF lbbes OCCURS 10,        "Tabelle für LB-Bestände
            lifnr LIKE ekko-lifnr,
            matnr LIKE mdpm-matnr,
            werks LIKE mdpm-werks,
            charg LIKE lifbe-charg,        " SC-batch: Key-Feld
            lgort LIKE resb-lgort,         " SC-batch
            lbmng LIKE lifbe-lblab,        "LB-Bestandsmenge
            erfmg LIKE mdpm-bdmng,         "Verfügbare Menge
            erfme LIKE mdpm-lagme,         "Basismengeneinheit
            wamng LIKE mdpm-bdmng,
            waame LIKE mdpm-lagme,
            vstel LIKE tvstz-vstel,
            ladgr LIKE marc-ladgr,
            sernp LIKE marc-sernp,
            lblfa LIKE t161v-lblfa,
            bdmng LIKE mdpm-bdmng,   "sum of dep. requirements from SC POs
            bdbam LIKE mdpm-bdmng,   "sum of dep. requirements from SC req's
            rsmng LIKE mdpm-bdmng,         "sum of transfer reservations
            slbbm LIKE mdpm-bdmng,   "sum of third-party SC requisitions
            slbmg LIKE mdpm-bdmng,         "sum of third-party SC POs
            lfimg LIKE komdlgn-lfimg,      "sum of open deliveries
            maktx LIKE mdpm-maktx,
            selkz LIKE sy-calld.
    ENHANCEMENT-POINT rm06ellb_03 SPOTS es_rm06ellb STATIC.
    $$-Start: RM06ELLB_03----
    $$
    ENHANCEMENT 3  /CWM/APPL_MM_RM06ELLB.    "active version
    DATA:   /cwm/waame LIKE mdpm-lagme,
            /cwm/lbmng LIKE lifbe-lblab,    "LB-Bestandsmenge in ParallelME
            /cwm/erfmg LIKE mdpm-bdmng,     "Verfügbare Menge in ParallelME
            /cwm/erfme LIKE mdpm-lagme,     "ParallelME
            /cwm/meins LIKE mdpm-lagme,     "CW-BasisME
            /cwm/bdmng LIKE mdpm-bdmng,     "sum of dep.req.< SC POs in PME
            /cwm/lfimg LIKE komdlgn-lfimg,  "sum of open deliveries in PME
            /cwm/rsmng LIKE mdpm-bdmng,     "sum of transfer reservations
            /cwm/slbbm LIKE mdpm-bdmng, "sum of third-party SC requisitions
            /cwm/slbmg LIKE mdpm-bdmng,     "sum of third-party SC POs
            /cwm/bdbam LIKE mdpm-bdmng.  "sum of dep. req´s from SC req's
    ENDENHANCEMENT.
    $$-End:   RM06ELLB_03----
    $$
    DATA:
          END OF lbbes.
    Now in the internal table lbbes they have created the enhancement point and in implementation of enhancement point they have declare some extra fields.This is not a implicit enhancement but it is a explicit enhancment implementation with the help of enhancement point.
    Similarly if i have to do in my customize program then how to go ahead?
    I knew that it is possible with Implicit Enhancement point and i can implement that also.
    Let me know your views about this.
    Thanks,
    Manish

  • Activate Standard Enhancement using Enhancement Spot

    I am trying to activate Standard Enhancement objects provided in the Standard Transactions, but unable to activate it.
    Can u pl. share any documentation through which i can use standard code by modifying at predefined enhancement spots.
    Like in transaction "WPS1" it call function module MEB_FUNC_ACTIVE
    FUNCTION MEB_FUNC_ACTIVE.
    ""Local Interface:
    *"  EXPORTING
    *"     REFERENCE(E_MEB_ACTIVE) TYPE  C
    Set the export parameter 'e_meb_active' to blank means: deactivation
      e_meb_active = ' '.
    ENHANCEMENT-POINT MEB_FUNC_ACTIVE_01 SPOTS ES_SAPLDIMP_PROXY.
    $$-Start: MEB_FUNC_ACTIVE_01----
    $$
    ENHANCEMENT 3  AD_GENERAL_SAPLDIMP_PROXY.    "active version
    Set the export parameter 'e_meb_active' to 'X' means: activation
      BREAK-POINT.
      e_meb_active = 'X'.
    ENDENHANCEMENT.
    $$-End:   MEB_FUNC_ACTIVE_01----
    $$
    ENDFUNCTION.
    There are predefined Enhancement spot which are not active so how can i activate the same.
    Regards

    Hello,
    Any enhancement related to Model/Service Implementation which includes adding of custom code/manual code, then it has to be done in MPC_EXT & DPC_EXT class.
    The reason is when ever u change the Model or Service implementation in your GW Service builder, again run-time object should be regenerated in-order to incorporate the new changes.During this time your MPC & DPC will be loaded with the new code.If at all if u had any manually written code directly in MPC/DPC then that code gets over written with the new code.
    So changes to be done always in MPC_EXT/DPC_EXT classes.
    I do not see any blog as such about the topic u r asking, its just that u need to do necessary declarations, redefine the appropriate methods and add ur custom code to enhance the standard code generated by service builder.
    Generated Classes for Model Provider Class - SAP NetWeaver Gateway - SAP Library
    Regards,
    Ashwin

  • Enhancement point in FM RV_INVOICE_DOCUMENT_ADD not updating ZUONR

    Hi,
    I am working with FM RV_INVOICE_DOCUMENT_ADD.
    inside the FM, I have an enhancement point rv_invoice_document_add_15 SPOTS es_saplv60a.
    Here I am setting the value of ZUONR by a custom value. This perhaps should update table VBRK for the corresponding VBELN.
    however, it is not updating..
    This is my code....
    zvbrk ] = xvbrk [.
    sort zvbrk by zukri.
    sort xvbrk by zukri.
    loop at zvbrk into k_vbrk.
    l_index = sy-tabix.
    k_VBRK-ZUONR = k_vbrk-zukri.
    k_vbrk-updkz = 'U'.
    modify xvbrk index l_index from k_vbrk transporting zuonr updkz.
    endloop.

    Hi,
    Can you tell that how had you solved this issue?
    Thanks

  • ENHANCEMENT-POINT in reprot RM06EPS0

    HI ALL,
    I want to change report 'RM06EPS0' that is price comparson list, i think of copying this into a z report and then make changes. But when i open the source code it contains statements like this.
    [code]ENHANCEMENT-POINT RM06EPS0_G4 SPOTS ES_RM06EPS0 STATIC.
    $$-Start: RM06EPS0_G4----
    $$
    ENHANCEMENT 4  MGV_GENERATED_RM06EPS0.    "active version
    INITIALIZATION.
    DATA: mgv_matnr_prog LIKE rsvar-report,
          mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
    FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.
    ENDENHANCEMENT.[/code]
    What are these ENHANCEMENT statement, can we use it to put our logic in standard report if yes when HOW ?
    Thanks,

    Hi
    See the doc
    ENHANCEMENT
    Syntax
    ENHANCEMENT id.
    ENDENHANCEMENT.
    Effect
    : These statements define a source code plug-in with the ID id. Between the statements, a source code enhancement can be implemented. The control structures and processing blocks contained in the implementation must be complete.
    The statements ENHANCEMENT and ENDENHANCEMENT can not be entered and edited directly. Instead, they are generated by the ABAP Workbench when enhancements are created as a part of the enhancement concept. The ID id is also assigned by the Workbench.
    Notes
    : In the terminology of the enhancement concept, a source code plug-in is an enhancement implementation element of a (simple) enhancement implementation.
    Although source code plug-ins are displayed in the same source code as the corresponding enhancement options ENHANCEMENT-POINT or ENHANCEMENT-SECTION, they are actually stored in other Include programs that are administrated by the Enhancement Builder.
    It is not yet possible to enhance a source code plug-in using further source code plug-ins. This means it is not currently possible to use the statements ENHANCEMENT-POINT and ENHANCEMENT-SECTION between ENHANCEMENT and ENDENHANCEMENT.
    Reward points if useful
    Regards
    Anji

  • Shared enhancement point problem.

    Hi Experts,
              I am facing a complex problem:
    (1) I have a requirement to make a specific enhancement for a specific transaction.
    (2) In the primary program of the transaction I have placed all my custom subroutines.
    (3) Now in one of the INCLUDE's of the program the above subroutines are being accessed.
      The problem is that the INCLUDE discussed in point 3 is being shared by many other transactions. So when I am running the other transactions - they are giving me a dump saying that the SAP standard program is now syntactically incorrect. I think this is arising since the other transactions cannot find the custom subroutine that I had made in the main program discussed in point 1. Can anyone help me with the solution to this problem??

    Hi Prabhu,
    See the code below:
    ENHANCEMENT-POINT create_fieldgroups_l_01 SPOTS es_miolvc20 INCLUDE BOUND.
    $$-Start: CREATE_FIELDGROUPS_L_01----
    $$
    ENHANCEMENT 27  OIO_MIOLVC20.    "active version
            CASE h_fieldcat_wa-fieldname.
              when 'OIO_HOLD'.                              "SOGK004254 AN
                h_fieldcat_wa-sp_group = 'B'.               "SOGK004254 AN
                h_fieldcat_wa-just = 'C'.                   "SOGK004254 AN
                h_fieldcat_wa-seltext_s = 'H'.              "SOGK004254 AN
            ENDCASE.
    ENDENHANCEMENT.
    ENHANCEMENT 28  Z_CUSTOM_WO.    "active version
    IF sy-tcode = 'IW37'.
      PERFORM zinitstat.
    ENDIF.
    ENDENHANCEMENT.
    Require a solutions ASAP. Thanks in advance.
    Edited by: Aditya  Niyogi on Aug 22, 2008 12:40 PM

  • Deleting Enhancement Point

    Hello Friends,
    In Enhancement Implementation   /NFM/SD_SALES_BASIC in Method
    IF_EX_BADI_SD_SALES_BASIC~HEADER_STATUS i have created a New Enhancement Spot
    *{   INSERT         DEVK904735                                        1
    ENHANCEMENT-POINT ZSALES1 SPOTS ZSALES1.
    *}   INSERT
    method IF_EX_BADI_SD_SALES_BASIC~HEADER_STATUS .
    endmethod.
    At the time of compilation it is giving the error.
    I have tried to delete the enhancement through tcode se80 by giving Package name and under enhancement node but it gives me a message "Enhancement Spot is not Empty".
    How can i activate or delete the above enhancement ?

    hello , amit if u want to delete the enhancement point
    in the menu bar go to edit then enhancement operations there is a undo option
    just click on the enhancement point and edit>enhancementoperations>undo
    or u can do from righ clicking on point and enahncments and then  undo
    hope thsi resolves ur problem

  • Enhancement Point

    Hi
    I have to disable/hide  the check box Display no values in MB52 kindly tell me how can i do that what i saw is enhancement point
    ENHANCEMENT-POINT RM07MLBS_G4 SPOTS ES_RM07MLBS STATIC.
    should i create implementation for above enhancement point and just disable that check box ?
    Regards,
    Ammad

    Hi
    Try to do this with transaction variants using SHD0
    search in SDN for transaction variants
    if it is not working we can try with code as well
    let me know how it goes...
    Regards

  • Creating an enhancement point

    hello
    i have to add some codes in enhancement ENHANCEMENT-POINT ZUORDNUNG_DURCHFUEHREN_01 SPOTS ES_SAPLMR1M.
    what im not sure is whether im doing it in the right way coz its the first time im doing that
    i right click on the ENHANCEMENT-POINT ZUORDNUNG_DURCHFUEHREN_01 SPOTS ES_SAPLMR1M.
    where i can create the enhancement or is there another way coz i was following a tutorial, im not getting the same screens
    plz confirm

    hi sia anjali,
    The better way to start with a Enhancement is;
    1) Go to SE18
    2) Give Enhancement Spots and click Display.
    3) Scroll the list for your Enhancement Point   (ZUORDNUNG_DURCHFUEHREN_01) and Double click on it.
    4) Now The code will be opened in ABAP Editor.
    5) Before modifying switch to "enhancement mode" by pressing the "Enhance Sourcecode" Button( Shift + F4).
    6) Now Right Click -> Enhancement Implementation -> Create
    7) Click on the Create icon and Give Name and description
    8) Assign Package
    9) Now select the newly created Enhan. implementation and press enter.
    10) Now start writing code as usual.
    Regards
    Karthik D

  • SAP note - delete enhancement-point

    hi,
    I would like to implement a note ("992605"). In this note there were some correction instructions (e.g. "ES_MRYF_COMMON_ROUTINES_ALV"; Objecttype ENHS). If I open the link to the object (click on objectname), there are no details what to do. Now what should I do?
    If I open the object-link to "MRYF_COMMON_ROUTINES_ALV" in the note, I get the information to delete following line (include MRYF_COMMON_ROUTINES_ALV) :
    ENHANCEMENT-POINT MRYF_COMMON_ROUTINES_ALV_01 SPOTS ES_MRYF_COMMON_ROUTINES_ALV INCLUDE BOUND.
    It's an enhancement-point which I can't delete because it's not modifiable (Info: ("Components of enhancements and sections cannot be modified"). What should I do?
    Thanks Michael

    Hello Michael,
    Does the note state that you are supposed to perform this action manually? If not, then why are you not using SNOTE to have the note applied automatically to your system?
    Just go to transaction SNOTE, download the note and then mark it and click implement note. That should do it.
    Regards,
    Michael

  • Import note - enhancement-point

    hi,
    I would like to implement a note ("992605"). In this note there were some correction instruction (e.g. "ES_MRYF_COMMON_ROUTINES_ALV"; Objecttype ENHS). If I open the link to the object (click on objectname), there are no details what to do. Now what should I do?
    If I open the object-link to "MRYF_COMMON_ROUTINES_ALV" in the note, I get the information to delete following line:
    ENHANCEMENT-POINT MRYF_COMMON_ROUTINES_ALV_01 SPOTS ES_MRYF_COMMON_ROUTINES_ALV INCLUDE BOUND.
    It's an enhancement-point which I can't delete, because it's not modifiable. What should I do?
    Thanks Michael

    Hello Michael,
    As this note is quite complex (it modifies ENHO and ENHS objects) why do you want to implement it manually? If you use the transaction SNOTE, it will be done automatically.
    Please implement note 875986 first that corrects all the SNOTE problems.
    Regards,
    Walter

  • About Enhancement Point

    Hi,
    I want a clarity on enhancement point. Where we can see that a code written under a enhancement point will get trigger.
    For ex,
    ENHANCEMENT-POINT RM07II31_G4 SPOTS ES_RM07II31 STATIC.
    $$-Start: RM07II31_G4----
    $$
    ENHANCEMENT 1  MGV_GENERATED_RM07II31.    "active version
    INITIALIZATION.
    DATA: mgv_matnr_prog LIKE rsvar-report,
          mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
    FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.
    ENDENHANCEMENT.
    This is code from standard tcode MI31. I have put breakpoint in this code. but while i run mi31 the control didnt reach at this breakpoint. So please tell me where we can see that a particular enhancement code will be called?
    Regards,
    Krishan

    >
    Krishan Kumar wrote:
    > Hi,
    >
    > I want a clarity on enhancement point. Where we can see that a code written under a enhancement point will get trigger.
    >
    > For ex,
    >
    >  ENHANCEMENT-POINT RM07II31_G4 SPOTS ES_RM07II31 STATIC.
    > $$-Start: RM07II31_G4----
    $$
    > ENHANCEMENT 1  MGV_GENERATED_RM07II31.    "active version
    > INITIALIZATION.
    > DATA: mgv_matnr_prog LIKE rsvar-report,
    >       mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
    > FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.
    > ENDENHANCEMENT.
    >
    > This is code from standard tcode MI31. I have put breakpoint in this code. but while i run mi31 the control didnt reach at this breakpoint. So please tell me where we can see that a particular enhancement code will be called?
    >
    > Regards,
    >
    > Krishan
    If the related busines function switch for these enhancement points is turned on then you new code writtne in enhancement points will be executed else old code will be executed. Just keep pressing F5 and you will go to the code being executed.
    If you want to debug new code written under enhancment point just put a break point on enahcement point and press F5.
    ENHANCEMENT-POINT RM07II31_G4 SPOTS ES_RM07II31 STATIC.
    $$-Start: RM07II31_G4----
    $$
    ENHANCEMENT 1  MGV_GENERATED_RM07II31001.    "active version
    INITIALIZATION.
    DATA: mgv_matnr_prog LIKE rsvar-report,
          mgv_matnr_selopt_tab like rsldbdfs occurs 0 with header line.
    FIELD-SYMBOLS <mgv_matnr_selopt_conv> TYPE STANDARD TABLE.
    ENDENHANCEMENT.
    If you put a breakpoint inside code in bold it will not reach there if switch is on. In this case program flow will go to new code mentioned by enhancement spot.
    To naviagte to new code wirtten under enhancement spot just double click on 'ES_RM07II31'.
    It will open a tabular display of all 4 spots declared in program, select the first spot which we clicked and click on ABAP editor button in table menue on top to see the new code.
    this is the code which will be executed if switch is on.
    Hope this helps
    Regards
    Manas Dua

  • Medruck Enhancement-point

    I have to make to multiple Sapscript changes to MEDRUCK for RFQ. I have copied the include LMEDRUCKTOP to LZSC_MEDRUCKTOP.
    When I add new tables and data declaration in LZSC_MEDRUCKTOP, it give a message ENHANCEMENT POINT will be created for LMEDRUCKTOP_04. It does not allow me to delete the the line of code
    ENHANCEMENT-POINT LMEDRUCKTOP_04 SPOTS ES_SAPLMEDRUCK STATIC.
    What is enhancement-point and how can I proceed further ?
    Thanks.

    The enhancement spots are used to manage explicit enhancement options
    Enhancement options are positions in Repository objects where enhancements can be made. These options are either explicitly defined (by the developer) or exist implicitly. Explicit enhancement options are generally defined in a central initial system. Enhancements are made in follow-on systems.
    Explicit enhancement options can currently be defined by:
    &#9679;     Explicitly flagging source code points or sections in ABAP programs. For an enhancement, these can be enhanced or replaced by source code plug-ins.
    &#9679;     Including Business Add-Ins (BAdIs) in ABAP programs. These programs are then enhanced by object plug-ins with predefined interfaces.
    Explicit enhancement options are managed by  enhancement implementations
    Currently, implicit enhancement options are:
    &#9679;     Specific options in ABAP programs – such as the end of the program – which can be enhanced by source code plug-ins.
    &#9679;     Parameter interfaces of function modules, which can be enhanced with parameters.
    &#9679;     Attributes and parameter interfaces of global classes, which can be enhanced with attributes or parameters.
    Implicit enhancement options always exist and do not require enhancement spots. They are also enhanced by enhancement implementations.
    Incase if you want to delete the enhancement spot
    After the program has been saved, the enhancement option is managed by the Enhancement Builder, and can only be deleted using the function Enhancements ® Remove Enhancement.
    Pl follow the documentation link provided below for further info on Enhancement spots.
    link

Maybe you are looking for