How Do Modification-Free Enhancements
Work?
The basic idea of the Enhancement Framework is to make modification-free enhancements of development objects such as programs, function modules, and global classes. The question that arises is how enhancements without modifications work.
You can perform modification-free enhancements at predefined positions in code. There you have anchor points or enhancement options, as they are called in the terminology. At these points you can insert your enhancements. You can do this without changing the compilation unit that you are enhancing. The inserted implementations are processed at the appropriate position in the compilation unit, but are themselves not part of this unit. Therefore they can, for example, belong to another package. Let us take a look at the example of a source code enhancement in a report in order to illustrate this better. We are not looking at details of coding, but want to give you a first impression of the working method of this enhancement technology.

You can – to a certain extent – compare this enhancement technology with a closet system where you can insert various elements at particular positions. Instead of drilling the wood in the side walls, you can insert various boards and other elements where the manufacturer has already inserted hooks or holders at important positions.
There are different types of holders or attachments at various positions. At each holder type, you can insert exactly one type of element: boards at small dowel positions, CD elements at wider dowel positions, and drawer elements at multiple dowels. It seems like the elements are an integral part of the entire closet but, in fact, they are attached to the closet parts through holders. The different enhancement technologies correspond to these different types of elements described above. These technologies become attached at different types of anchor points or enhancement options of the Repository objects.
Therefore, you cannot simply insert enhancements into Repository objects at any position you like without modifications, but only where there are so-called enhancement options in place. At these enhancement options, you can also attach only certain elements – so-called enhancement implementation elements.
A concept that standardizes and structures all previous enhancement possibilities cannot do without a certain amount of complexity. The structure it is based on, however, is extremely simple.
● On the one hand, you have hooks or, to put it correctly, enhancement options where you can insert enhancements. There you define enhancement options, which is why one can speak of the definition side.
● On the other hand, you have enhancement implementation elements that you can affix to these hooks or enhancement options.
The rest is simple detail: There are various types of hooks or enhancement options, and there are also various enhancement implementation elements. The enhancement options are grouped together to enhancement spots and these, in turn, to even larger units. The same applies to units on the implementation side. Between the different units of a side and between those of the implementation and definition side, you have assignments of different cardinality.