Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to find enhancement spots

Former Member
0 Kudos

Hi there,

I have often implemented user exits and BADIs in the application. I search such definitions with SE84 within the package or application component.

Now I am again in a situation where nothing suitable is to be found but enhancement-spots exist.

How to find a suitable enhancement spot in general?

If i try to find some with SE84, e.g. within PP-SFC to do something when saving a service order, i get a long list of undescribed includes to programs and function groups. So I must understand the context for everyone to know, if it is useful to me. Within each of them I find plenty of enhancement spots which are also not documented. So if anyone knows: This is a part of the program where I want do enhance something, i will find there perhaps an enhancement spot. If I don't know the application program but just the application there seems to be no chance to find out: This is the enhancement spot suitable to check or to do manipulations before save or what ever like this applies to BADIs.

How to overcome this and to find suitable enhancement spots?

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Axel,

Enhancement spots are assigned to packages, and the spots themselves can contain the new BADI definitions for semantic grouping and this is already provided for you by the developers who prepared the enhancement. You can navigate them via SE80/84 and browse by package.

In order to implement a new BADI within the enhancement framework, you will need to implement an enhancement spot, which you can then assign the badi implementation.

Implementing the BADI is much the same as before, which is to first find the BADI suitable for your purpose (ie. search for "GET BADI"), but with the additional step of creating or assigning to an enhancement implementation. You can always refer to: http://help.sap.com/saphelp_nw04s/helpdata/en/91/f1e540f8648431e10000000a1550b0/frameset.htm

12 REPLIES 12

Former Member
0 Kudos

Hi Axel,

Enhancement spots are assigned to packages, and the spots themselves can contain the new BADI definitions for semantic grouping and this is already provided for you by the developers who prepared the enhancement. You can navigate them via SE80/84 and browse by package.

In order to implement a new BADI within the enhancement framework, you will need to implement an enhancement spot, which you can then assign the badi implementation.

Implementing the BADI is much the same as before, which is to first find the BADI suitable for your purpose (ie. search for "GET BADI"), but with the additional step of creating or assigning to an enhancement implementation. You can always refer to: http://help.sap.com/saphelp_nw04s/helpdata/en/91/f1e540f8648431e10000000a1550b0/frameset.htm

0 Kudos

Hi Daniel,

an enhancement Spot CAN contain a new BADI. I suppose that means, that if it contains a new BADI i will find the BADI and its probably more useful description when searching for BADIs in SE81/SE84. If it does not contain a BADI it is like it was: I find a huge number of spots with no meaningful description and have no idea about the environment at this location in the coding. That means I would have to analyse or to debug there for every of these locations to find out, what happens where and for what this spot may be useful and what data is available there. I also have to clarify if this location is called shared from different applications and would cause harmful things at other parts of the application. Is this true? Is this the concept?

0 Kudos

Hi Axel,

An enhancement spot only contains the definition for the BADI, NOT the implementation. It is just a logical container required for new BADI definitions, much like SMOD is used to group the possible function module enhancements. Compare it to customer exits where you use SMOD.

Working with customer exits, you first find the enhancement in SMOD, which you can think of as the enhancement spot (definition) then implement it in CMOD, which you can think of as the enhancement implementation. The concept is similar with the enhancement spot and the implementation.

If you are having difficulty finding the spot that contains the badi definitions, first find the badi you need to work with by identifying the program and source ("CALL BADI "), then you can forward navigate using the declared badi interface to get to the definition.

Thomas Weiss has some great blog entries on the new enhancement framework that is really helpful.

/people/thomas.weiss/blog/2006/01/24/what-the-new-enhancement-framework-is-for-150-its-basic-structure-and-elements-for-beginners

0 Kudos

Hi Daniel,

I know everything you have written but what has this do to with my question???

Again: In all classic enhancement technologies it is possible to find the definitions acompanied with useful descriptions. Here the definitions description states that an include can be enhanced - whereever this include is used for and whenever this include is called from whereever. This is an important difference. That's the problem.

ravishankar_reddy2
Active Participant
0 Kudos

hi axel,

first debug that tcode and in debugging mode u can find the enhamcement spot. Implement the enhancement spot and assign it a package, switch, bussiness function and put it in on mode. than only it will work.

hope it may helpful,

regards,

sirisha reddy

0 Kudos

Hi Sirisha,

that's what I also thought. So you confirm that all these spots are integrated into SE81/SE84 but the provided information there is so useless und less meaningful commented that debugging of the application is the only chance, to find a suitable exit to implement? Does anyone else think, that there exists more meaningful support as that what I could find or is it really like this?

0 Kudos

hi axel,

If u find by se84 also, but how can u know that particular enhancement is triggering at that location. Is there any process for finding that particular enhancement is triggering at that point. please tell me if any.

iam also new to this abap.

regards,

sirisha

Former Member
0 Kudos

Hi,

You may use the following code to find user exits available with a transaction. Give transaction code as input.

TABLES: modsap, modact, tstc.

PARAMETERS: input1 LIKE tstc-tcode DEFAULT ' ',

input2 LIKE modsap-typ DEFAULT ' '.

DATA: search1(6),

search2(3),

search3 LIKE modsap-member.

DATA : first_row VALUE 'Y'.

CONCATENATE: '%' input1 '%' INTO search1,

'%' input2 INTO search2.

SELECT * FROM tstc WHERE tcode LIKE search1.

first_row = 'Y'.

CHECK tstc-pgmna NE space.

CONCATENATE '%' tstc-pgmna '%' INTO search3.

SELECT * FROM modsap WHERE typ LIKE search2

AND member LIKE search3.

SELECT SINGLE * FROM modact WHERE member = modsap-name.

IF first_row EQ 'Y'.

WRITE: /0 tstc-tcode, 6 tstc-pgmna, 16 modsap-name, 32 modsap-typ,

45 modsap-member, 70 modact-name.

first_row = 'N'.

ELSE.

WRITE: /16 modsap-name, 32 modsap-typ, 45 modsap-member, 70 modact-name.

ENDIF.

CLEAR : modsap, modact.

ENDSELECT.

IF sy-subrc NE 0.

WRITE : /0 tstc-tcode, 6 tstc-pgmna, 30 'No exits found'.

ENDIF.

CLEAR tstc.

ENDSELECT.

END-OF-SELECTION.

CLEAR: search1, search2, search3.

make a report with the above code.

Hope this helps.

Regards,

Renjith Michael.

Former Member
0 Kudos

HI,

often the name of an enhancement spot is the name of the report with the prefix ES.

for example: for program saplmegui there is the enahancement spot is ES_SAPLMEGUI.

Other way, in the code of the program find the string "Enhancement"

Bye

Enzo

Former Member
0 Kudos

Hi ,

enhancement spot

A repository object for the administration of explicitly created enhancement options. Enhancement spots are components of a tree structure hierarchy, of which the branches represent composite enhancement spots and the leaves are simple enhancement spots. Implicitly available enhancement options do not have any enhancement spots.

composite enhancement spot

Semantic combination of simple and other composite enhancement spots with the aim of providing structure.

simple enhancement spot

Reference to a set of enhancement spot element definitions. A simple enhancement spot can occur independently or as a component of a composite enhancement spot.

ENHANCEMENT-POINT

Defines a position in an ABAP program as an enhancement option,

at which one or more source code plug-ins can be inserted.

the syntax will be like

ENHANCEMENT-POINT enh_id SPOTS spot1 spot2 ...

STATIC

INCLUDE BOUND.

Enhancement Options

Definition

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.

Use

Explicit enhancement options can currently be defined by:

1. Explicitly flagging source code points or sections in ABAP programs. For an enhancement, these can be enhanced or replaced by source code plug-ins.

2. 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 spots and enhanced by enhancement implementations.

Currently, implicit enhancement options are:

1. Specific options in ABAP programs – such as the end of the program – which can be enhanced by source code plug-ins.

2. Parameter interfaces of function modules, which can be enhanced with parameters.

3. 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.

REWARD IF USEFUL

thanks and regards

suma sailaja pvn

0 Kudos

What are you doing guys? Searching for keywords and posting standard answers without reading the question? For whom? Who wants to read this?

0 Kudos

Hi Alex,

It's been quite a while since you posted this message and I could not see any relevant reply other than debugging the application and try with all the enhancment spots available around the point where the enhancement is required.

Did you manage getting any better & quicker way of finding out enhancement spots for an application.

I would appreciate your reply on this.

Thanks,

Ashok