Um Ihnen die Programmierung mit dem MVC Design zu erleichtern, stellt Ihnen das Framework für das Model einer Anwendung eine Basisklasse
CL_BSP_MODEL zur Verfügung, die Sie als vererbende Klasse für Ihre eigene Model-Klasse verwenden. Die Model-Klasse stellt den Datenkontext Ihrer Anwendung dar und enthält somit eine Kopie (oder Referenzen auf die Daten) der für den View relevanten Daten aus dem Datenbank-Modell.Die Model-Klasse stellt zur Verfügung:
Ein Controller kann eine Model-Klasse oder auch mehrere Model-Klassen instantiieren (siehe auch
Aufruf der Model-Klasse durch den Controller). Der Controller hält sich zur Laufzeit eine Liste aller Modell-Instanzen, analog zur Liste der Unter-Controller.Der Controller vergibt eindeutige Ids an jede Model-Instanz.

Wenn Sie das MVC Design Pattern verwenden, besteht keinerlei Notwendigkeit, die
Applikationsklasse einzusetzen. Anstelle der bei rein seitenbasierten BSP-Applikationen üblichen Applikationsklasse verwenden Sie im MVC-Umfeld Controller und Model-Klassen.
Die Datenbindung ist insbesondere bei den
HTMLB-Extension-Elementen inputField und label von Bedeutung (siehe auch Dokumentation zu diesen Elementen im System). Außerdem ist sie für die HTMLB-Elemente dropdownListBox, radioButtonGroup, checkbox, textEdit und tableView implementiert.Eine Model-Klasse kann entweder ganz einfach gestaltet sein oder aber für komplexere Anwendungsfälle ausgeprägt sein.
Einfache Model-Klasse
Die Datenbindung ist insbesondere für die Wertübergabe von Ein- und Ausgabedaten nützlich. Sie fügen die von dem View benötigten Daten in Form von Attributen Ihrer Model-Klasse hinzu. Diese Attribute sind alle vom Sichtbarkeitsbereich public und können Folgendes sein:
Im einfachsten Fall besitzt die Model-Klasse lediglich diese Attribute und kann somit im Rahmen einer BSP-Applikation sehr leicht für die Datenbindung eingesetzt werden.
Eine solche ganz einfache Model-Klasse bietet die folgende Funktionalität:

Beispiel:
In einer BSP-Applikation gibt es ein über
Der Verarbeitungsablauf ist nun folgendermaßen:
Im Standardfall wird, falls für ein Feld im Data Dictionary ein Konvertierungsexit besteht, dieser Konvertierungsexit aufgerufen. Alle Daten, die in der Data-Dictionary-Struktur für das Feld enthalten sind, stehen zur Verfügung. Wenn jedoch eigene Setter- /Getter-Methoden (siehe nächster Abschnitt) geschrieben werden, kann der Konvertierungsexit ausgeschaltet werden.
Bei Bedarf können Sie auch Ihrer Model-Klasse eigene Methoden für die weitere Bearbeitung der Attribute hinzufügen.
Komplexe Model-Klasse
Es kann vorkommen, dass einfache Model-Klassen nicht ausreichen. Dies ist z.B. dann der Fall, wenn mit generischen Daten gearbeitet wird oder wenn besondere Methoden zum Setzen (
SET) und Holen (GET) von Attributen benötigt werden. Also können Sie über diese Methoden eigene Implementierungen festlegen, die für Ihre spezifische Anwendung wichtig sind.Für derartige Anwendungsfälle gibt es auf der Basisklasse Kopiervorlagen für Setter- und Getter-Methoden:
_SET_<Attribut> und _GET_<Attribut> . Diese Vorlagen beginnen alle mit _. Die Namenskonventionen für die eigentlichen Methoden sind folgendermaßen:
Namenskonventionen für Setter-Methoden:
SET_<Attribut>
für ein Feld

Namenskonventionen für Getter-Methoden:
GET_<Attribut>
für ein Feld
Beispiel für eine Implementierung einer Getter-Methode für Strukturfelder/Strukturattribute:
method GET_S_FLIGHT .
field-symbols: <l_comp> type any.
Hier wird durch das ABAP-Schlüsselwort
assign component die Strukturkomponente component des strukturierten Feldes flight (das den Bezugstyp sflight hat) dem Feldsymbol <l_comp> zugewiesen. Der Wert von <l_comp> wird folgendermaßen ausgegeben: Zeigt die Strukturkomponente component auf eine Fluggesellschaft (CARRID), dann wird der Name der Fluggesellschaft in Kleinbuchstaben übersetzt. Zeigt dagegen die Strukturkomponente component auf eine Einzelflugverbindung (CONNID), dann werden eventuelle führende Nullen gelöscht.

Beachten Sie, dass Sie in einem SAP Web AS System unter 6.30 bei der Verwendung von Setter- und Getter-Methoden die Metadaten explizit durch Getter-Methoden beschaffen müssen. Hierfür lautet die Syntax:
GET_M <Attribut>
für ein FeldAb SAP Web AS 6.30 geschieht dies automatisch.
Sobald eine Setter- oder eine Getter-Methode gesetzt wurde, kommt sie automatisch zum Einsatz.
Aufgrund der Namensgleichheit ist die Datenbindung automatisch verfügbar. In der Methode
DO_HANDLE_DATA (siehe auch Verarbeitungsablauf) der Klasse CL_BSP_CONTROLLER2 werden die Daten der Models automatisch aus den Form-Feldern gefüllt.Die Pfadangaben für die Model-Daten haben folgende Syntax:
value="//<Feldname>"
value="//<Strukturname>.<Feldname>"
value="//<Tabellenname>[<Zeilenindex>].<Feldname>"