Um eine externe Tabelle, die bereits benutzerspezifische Daten enthalten, für die Benutzer- bzw. Rollenpflege zugänglich zu machen, muß eine Klasse implementiert werden, die das Interface IF_PERS_EXTERNAL_TABLE realisiert. Zur Implementation des Interfaces steht die Klasse CL_SUPER_PERS_ACCESS zur Verfügung, von der sämtliche nötigen Methoden geerbt werden können. Es ist aus Kompatibilitätsgründen empfehlenswert, die eigene Implementation immer von dieser Klasse abzuleiten. Dadurch kann die Stabilität bei eventuellen Erweiterungen des Interfaces besser gewährleistet werden.
Im folgenden wird kurz die Bedeutung der enthaltenen Methoden erläutert.
Methode USER_COPY | ||
P_USER_SOURCE |
UNAME |
Name des Quellbenutzers |
P_USER_TARGET |
UNAME |
Name des Zielbenutzers |
P_PERS_KEY |
SPERS_KEY |
Schlüssel für das Personalisierungsobjekt |
P_NO_BUFFER |
CHAR1 |
Flag für die Umgehung der Pufferung |
Methode USER_DELETE | ||
P_USER |
UNAME |
Name des Benutzers, dessen Personalisierungsdaten gelöscht werden sollen |
P_PERS_KEY |
SPERS_KEY |
Schlüssel für das Personalisierungsobjekt |
Methode USER_RENAME | ||
P_USER_SOURCE |
UNAME |
Alter Benutzername |
P_USER_TARGET |
UNAME |
Neuer Benutzername |
P_PERS_KEY |
SPERS_KEY |
Schlüssel für das Personalisierungsobjekt |
Aufrufen eines Dialoges zum Benutzer
Methode USER_COPY | ||
P_UNAME |
UNAME |
Name des Quellbenutzers |
P_PERS_KEY |
SPERS_KEY |
Schlüssel für das Personalisierungsobjekt |
P_COMMIT |
CHAR1 |
Flag für die Pufferung: Wenn das Flag auf 'X' gesetzt ist, werden die Daten nicht gepuffert. |
Dialog, Löschen, Kopieren und Umbennen von Rollen
Die Methoden für den Dialog, das Löschen, Kopieren und Umbenennen von Rollen müssen analog implementiert werden.
Methode USER_COPY | ||
P_ROLE_NAME |
AGR_NAME |
Name der zu transportierenden Rolle |
P_PERS_KEY |
SPERS_KEY |
Schlüssel für das Personalisierungsobjekt |
P_ORDER |
TRKORR |
Transportauftrag, mit dem die Daten transportiert werden. |
Die Dialogmethode zur Systemebene kann analog zu der Methode zur Benutzer- und Rollenebene implementiert werden.
Transport von Daten zum System
Die Methode zum Transport von Daten zur Systemebene kann analog zur entsprechenden Methode auf Rollenebene implementiert werden.
Mit Hilfe dieser Methode werden alle Daten vom Puffer auf die Datenbank geschrieben.
Die Methode SAVE_BUFFER sollte implementiert sein. Für die Integration in die Benutzer- bzw. Rollenpflege wird eine Pufferung der Daten benötigt.
Ableiten der eigenen Interface-Implementation
Die Implementation der eigenen Zugriffsmethoden kann mit Hilfe von Vererbung realisiert werden.
Dazu steht die Klasse CL_SUPER_PERS_ACCESS zur Verfügung. In der eigenen abgeleiteten Klasse muß lediglich der Konstruktor implementiert werden. Im Konstruktor müssen die Bezeichner für den Tabellennamen und für das Feld, das den Benutzer- bzw. Rollennamen enthält, zugewiesen werden. Außerdem müssen für den Zugriff eine Kopfzeile und eine interne Tabelle dynamisch erzeugt werden.
In Release 4.6C gibt es noch keine generische Methode zur Pufferung und keinen generischen Dialog. Die Methode zur Pufferung ist zwar implementiert, besitzt aber nicht die volle Funktionalität.
In der Beispielklasse SPERSD_REUSE_EXTERNAL ist dies für die Tabelle SPERS_FAV realisiert.
In dem Beispiel werden zunächst die Tabellentypen für die benutzer- und die rollenabhängigen Daten definiert und die entsprechenden Puffertabellen angelegt. Außerdem werden die Namen der Tabellenfelder spezifiziert, die bei Benutzung des generischen Dialogs nicht angezeigt werden sollen.