Diese Seite erläutert die Empfehlungen zu einer QPPD Software Architektur.
VART-Klassen
Grundsätzlich empfiehlt es sich, die Funktionen für alle Objekte einer Vorschriftenart in einer kundeneigenen ABAP-Klasse zu kapseln. Diese Klassen werden auch Z-VART-Klassen genannt, welche von der Standard-QPPD ABAP-Klasse zur Vorschriftenart, sog. Standard VART-Klasse, /SCT/QP_CL_VART, erbt und ihr kundeneigenes Interface implementiert. Dies ist genauer in Funktionalität zu Vorschriftenarten implementieren (P) beschrieben. Die Z-VART-Klasse benutzt die Methoden der Standard VART-Klasse und/oder der API des QPPD, den BUS, sowie eigenes Coding, um die benötigten Funktionen zu implementieren. Der BUS ist hier weiter beschrieben: Business Service - BUS (P). Es sollte das Ziel sein, das benötigte Coding möglichst in die Z-VART-Klassen auszulagern. D.h. das Codings, bspw. in Reports, Funktionsbausteinen, Modulen usw., auf das notwendigste beschränkt werden und möglichst viel Coding in den Z-VART-Klassen implementiert wird.
BADIS/Ereignisbehandler
Das QPPD stellt diverse BADIs zur Verfügung, welche in BADI's (P) beschrieben sind. Wir empfehlen, dass die o.g. Z-VART-Klasse die BADI-Interfaces implementiert. Somit entsteht eine zentrale Stelle für alle relevanten BADI-Implementierungen zu einer Vorschriftenart. Darüber hinaus gibt es noch eine Reihe von Ereignissen, worauf die VART-Klasse mit ON-Methoden reagiert und welche kundenindividuell implementiert werden können.
Generierung
Wir empfehlen eine SUPER-Klasse für alle kundeneigenen Generierungsklassen zu erstellen, die von der Standard-Generierungsklasse /SCT/QP_CL_GEN_STD erbt, und wo alle gemeinsamen Attribute instantiiert und gemeinsame Methoden zur Verfügung gestellt werden. Für die Implementierung der Generierung sollen die Methoden der Z-VART-Klasse genutzt werden.
Berechtigungsklasse
Die zentrale Klasse zur Prozessierung von Berechtigungen, /SCT/QP_CL_AUTHORITY, kann kundenindividuell erweitert werden, um zusätzliche Prüfungen zu realisieren.
INFO-Provider
Wir empfehlen die Erstellung einer Z-Klasse als "INFO-Provider". Diese Klasse stellt einen vereinfachten Zugriff auf Funktionen des QPPD Standards und insbesondere der Z-VART-Klassen zur Verfügung. Dieses Vorgehen hat den Vorteil, dass die QPPD-spezifische Programmierung möglichst gekapselt bleibt und kaum QPPD-Wissen notwendig ist, um QPPD-Funktionen benutzen zu können.
Das nachfolgende Bild veranschaulicht die Implementierung.
