SAPmvc is an Open Source framework created to introduce the MVC design pattern to the ABAP Classical Dynpro using the pure ABAP Objects.
Model-view-controller (MVC) is a classic design pattern often used by applications that need the ability to maintain multiple views of the same data. The MVC pattern hinges on a clean separation of objects into one of three categories:
- Model - The model represents data and the rules that govern access to and updates of this data. In enterprise software, a model often serves as a software approximation of a real-world process.
- View - The view renders the contents of a model. It specifies exactly how the model data should be presented. If the model data changes, the view must update its presentation as needed. This can be achieved by using a push model, in which the view registers itself with the model for change notifications, or a pull model, in which the view is responsible for calling the model when it needs to retrieve the most current data.
- Controller - The controller translates the user's interactions with the view into actions that the model will perform. Depending on the context, a controller may also select a new view.
The controller represents system input, the model represents processing and the view represents the output of the system.
By decoupling models and views, MVC helps to reduce the complexity in architectural design, and to increase flexibility and reuse. Because of this separation, multiple views and controllers can interface with the same model. Even new types of views and controllers that never existed before can interface with a model without forcing a change in the model design.
SAPmvc can be used for application in the ABAP Platform up to release SAP Netweaver 7.0(2004s).
*/===================================================================\* *| _____ _____ |* *| / ____| /\ | __ \ __ __ __ __ _____ |* *| | (___ / \ | |__) || \ / |\ \ / / / ____| |* *| \___ \ / /\ \ | ___/ | \/ | \ \ / / | | |* *| ____) |/ ____ \ | | | |\ /| | \ / | |____ |* *| |_____//_/ \_\|_| |_| \/ |_| \_/ \ ____| |* *| |* *| Version 0.1.0 |* *| |* *\===================================================================/* */===================================================================\* *| SAPmvc is free software: you can redistribute it and/or modify |* *| it under the terms of the GNU General Public License as published |* *| by the Free Software Foundation, either version 3 of the License, |* *| or (at your option) any later version. |* *| |* *| SAPmvc is distributed in the hope that it will be useful, |* *| but WITHOUT ANY WARRANTY; without even the implied warranty of |* *| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |* *| GNU General Public License for more details. |* *| |* *| You should have received a copy of the GNU General Public License |* *| along with this program. If not, see http://www.gnu.org/licenses. |* *| |* *\===================================================================/* */===================================================================\* *| Developers: |* *| + Marcelo Araujo Ramos ( firstname.lastname@example.org ) |* *| |* *| Tester: |* *| + Marcelo Araujo Ramos ( email@example.com ) |* *| Changelog: |* *| |* *\===================================================================/*
- SAPmvc is available in SAPlink format. To get the most recent version of SAPmvc go to SAPmvc page
- SAPmvc is compatible with release Netweaver 7.0 (2004s), It may not work in previous version.
- Screen and Subscreens
- Dynpro Events
- PF-Status and Titlebar
- Data Change Notifications
- Controls like ALV and HTML, Table Control, TabStrip, etc...
- On Value Request Event
- On Value Help Event
Currently I am evaluating this framework. I am really impressed by its design but I am not sure if I should use it for production systems.
How would I extend this solution to make use of ALV events (e.g. on double click)? Do I have to extend SAPmvc for it or can I do it using my own classes inheriting from SAPmvc?
And how can I implement drag & drop?
Is there anyone out there who actually uses this framework?
Any hints appreciated...
I posted a thread on the subject of Classic Dynpros vs. OO and MVC at http://forums.sdn.sap.com/thread.jspa?threadID=2145906. I'd appreciate postings at it from people interested in this subject.