Most of the abap code samples I am seeing online are really lengthy reports not structured in any way. Everything except screen flow management is coded into one file. All data and class declarations are in the beginning of this large file making it difficult to understand which part does what. Maintaining or expanding such code will not be easy. The alternative: an MVC implementation.
With this custom data explorer I am implementing the MVC (model-view-controller) design pattern in an abap report. The report will only contain references to model and controller classes and be responsible for displaying the first screen. All programming logic will go into model and control classes. Each report screen is independent of the others and only cares about displaying model data for its elements. This approach makes it very easy to modify or add new functionalities.
Custom data explorer features:
- ddic table search by name and description using wildcards
- define and display select where clauses for a given selected table
- display table entries for a given selected table and query
I will split my custom data explorer MVC implementation across several posts, there are lots of things I want to mention:
- MVC class structure
- MVC package structure
- Model overview – working with ddic data
- Controller overview – defining, listening and acting on events
- View elements: screen and subscreens, using the screen painter and screen menu
- Dynamic internal tables
Update: Complete source files can be downloaded here. The zip archive contains both a sap transport request and a saplink nugget.