Principles

The concept of using userexits is a central component of object-oriented programming.

Traditional programming techniques are characterized by an unchangeable flow structure of the integrated modules within an exactly defined calling hierarchy:

The advantage of this technique is its relative clearness in case of complex and widely branched program structures.

When developing window-controlled user interfaces, the number of defined dialog objects containing the biggest part of functionality is limited. Thus it is useful to create the constraints of the responsible program modules via userexits at the places where they are needed by the application because of user actions.

No complex structures have to be gone through in order to understand the program structure. The use of the functionality can be read directly from the application. For this reason this programming technique is ideal for comprehensive software projects that include a number of programmers at different places working at one big homogeneous system.

Another important argument for programming using userexits is the possibility to create data-driven applications. Because the structure of the program is not inflexible but can be altered at runtime by flexible definitions at the object , the functionality of the program can be controlled by external data. Thus it is not necessary, any more, to re-compile the altered source code.

Complex functionality can be realized by summarizing and integrating simple basic objects into complex generic objects. Thus the transparency of the basic object's flow logics remains unchanged.